定制一款国密浏览器(12):分析SM2签名算法的实现
SM2 是一种非对称加密算法,除了用来进行加密解密外,主要作用还用作数字签名。数字签名是私钥签名,公钥用来验签。由于私钥是不公开的,所以私钥签名还可以防抵赖。
一般的签名流程如下:
- 发送者对消息计算摘要值。
- 发送者用私钥对摘要值进行签名得到签名值。
- 发送者将原始消息和签名值一同发给接收者。
出于效率的考虑,一般是对消息的摘要进行签名。
SM2数字签名算法在《GMT 0003.2-2012 SM2椭圆曲线公钥密码算法第2部分:数字签名算法》这份文档中有详细的描述。其中签名的流程为:
上面的流程 A1 中,首先需要计算 ZA,而 ZA 的计算方法为:
在铜锁项目中,SM