安全算法知识

密码技术

对称密码

SM4、DES、3DES、AES

公钥密码(非对称密码)

ECC、SM2

单向散列函数(摘要算法

SHA1、SHA256、MD5、SM3

消息认证码

数字签名

伪随机数发生器

信息安全面临的威胁和应对威胁的密码技术

 数据长度

   
SHA1输出 160位=20字节
SHA256输出 256位=32字节
MD5输出 128位=16字节
SM3输出 256位=32字节
SM2签名值长度 64字节
SM2生成私钥长度 32字节
SM2生成公钥长度 64字节

 

 

 

SM2签名

数字签名

数字签名算法有一个签名者对数据产生数字签名,并由一个验证者验证签名的可靠性。

每个签名者有一个攻牙和一个私钥,其中私钥用于产生签名,验证者用签名者的公钥验证签名。

在签名的生成过程之前,要用密码杂凑函数对M1(包含Za和待验消息M11)进行压缩;

在验证过程之前,要用密码杂凑函数对M2(包含Za和待验消息M22)进行压缩

SM2使用的杂凑算法是SM3。

作为签名者的用户A具有长度为entlenA 比特的可辨别标识IDA,记ENTLA是由整数entlenA转换而成的两个字节。签名者也验证者都需要用密码杂凑函数求得用户A的杂凑只ZA。将椭圆曲线方程参数a、b、G的坐标xG、yG和PA的坐标xA、yA的数据类型转换为比特串。ZA = H256( ENTL||  ID||  a  ||  b  || xG || yG || xA ||  yA )。

E = H (ZA || M)

再使用E和私钥生成签名值。

不同的待签消息产生不同的签名值,相同的待签消息也产生不同的签名值。

签名值长度为64字节。(r,s)。r、s 各32字节。

原文地址:https://www.cnblogs.com/doitjust/p/12625580.html