自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 问答 (1)
  • 收藏
  • 关注

原创 sm2签名与sm4加密(四)证书特辑篇

直到最后意外的发现这个文件的格式为pem格式文件,顺着这个线索摸索下去,先是找到了openssl的读取pem文件的函数,但是因为我是基于gmssl实现的,参考着openssl找到了gmssl里的读取pem格式的函数,sm2_public_key_info_from_pem,名字很清楚,sm2从pem中读取公钥,而读取公钥使用sm2_private_key_from_pem函数,代码参考的大概这个样子。在csdn上也没有文章指出这些命令生成的文件究竟是什么格式,也咨询过相关大佬。

2023-04-10 14:22:12 892 2

原创 sm2签名与sm4加密(三)

而验签是当报文收到之后,对报文再次进行摘要(sm3生成杂凑数据),而签名串则拿去用公钥去解密,解密结果如果报文没有被篡改,那么将是相同的,验签通过,如果原报文经过篡改,那么sm3生成杂凑数据会变化,以至于对比结果不相同,验签无法通过。原报文通过sm3算法(没错,sm2签名用了sm3算法)生成杂凑数据(也就是e值,e值好像是个通用的叫法?)(也叫做摘要),再将杂凑数据传递到签名函数中,通过私钥进行签名得到签名串。标准,他的特点是,将原数据不可逆的生成一串256位长度数据。这样签名起来就变得很简单。

2023-04-07 16:26:41 1605 1

原创 sm2签名与sm4加密(二)

SM2其实就是ECC的一种,y²=x³+ax²+b这个曲线中,a和b这两个参数并没有给出,而怎样选取a和b更科学就是一个问题。首先kG的关系并不是简单的相乘,这也是我当时走入的第一个误区,如果是简单相乘是极易从公钥推断出私钥的。这个曲线有一个特点,就是曲线上一点A和曲线另一点B相连必然与曲线相交于一点C,C作垂线与曲线相较于一点D,这个D才是这次A+B的结果D,所以以上整个运算的公式为A+B=D。先说下sm2,sm2是ECC算法,也就是椭圆曲线加密算法。它的核心就是Q=kG,k是私钥,Q是公钥,G是基点。

2023-04-06 15:12:45 1019 1

原创 sm2签名与sm4加密(一)

2.将报文进行分组,每16个字也就是128bit为一组,这里采用最简单的ECB分组方式,对不足16位的最后一组进行补位,采用pkcs7方式进行补位,就是差几位就补几位的几,比如8位差八位,就补八个八,对于16整数倍补16位的16(方便解码)4.进行加密,同样将一组16个字也是32位分成八位一组的四组,轮加密Bi⊕F(B(i-1)⊕B(i-2)⊕B(i-3)⊕k(i-4))得到下一组,最终得到B31-B35,拼成一个串返回这一组的加密结果,单组加密完毕。收到报文后,先进行sm4解密,解密后将报文进行验签。

2023-03-20 16:21:06 3072 2

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除