数字签名原理( 二 )


签名验签方案
方案一:
签名方采用公钥密码算法和自己的私钥对明文进行加密,产生一个签名数据,这就是签名方的数字签名;
验签方采用公钥密码算法和签名方的公钥对签名数据进行解密,得到原文 。
方案二:
发送方Alice:发送方采用某种摘要算法从报文中生成一个散列值(称为报文摘要);发送方用RSA算法(公钥算法、SM2等)和自己的私钥对这个散列值进行加密,产生一个签名数据,这就是发送方的数字签名;将这个签名数据作为报文的附件和报文一起发送给接收方 。发送方含有:签名者、原文、算法(Hash算法、公钥算法)、签名方私钥;
接收方Bob:接收方从接收到的原始报文中采用相同的摘要算法计算出一个散列值;报文的接收方用RSA算法(公钥算法、SM2等)和发送方的公钥对报文附加的签名数据进行解密得到解密数据;如果解密数据和计算出的散列值相同,那么接收方就能确认报文是由发送方签名的 。验签者、原文+签名、算法(Hash算法、公钥算法)、签名方公钥(数字证书)
方案三:
示例如下,SM2签名验签方案:
数字签名报文规范
PCKS7、PCKS 1、P7b
数字签名安全性数字签名应用数字签名无法解决的问题
无法确认公钥的合法性:数字证书
如何构建一个可信的数字签名链条?由谁来颁发可信的数字证书?PKI