密码技术
对称密码
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( ENTLA || IDA || a || b || xG || yG || xA || yA )。
E = H (ZA || M)
再使用E和私钥生成签名值。
不同的待签消息产生不同的签名值,相同的待签消息也产生不同的签名值。
签名值长度为64字节。(r,s)。r、s 各32字节。