索罗笔记-信息安全工程师-2.6 数字签名
数字签名(Digital Signature)
完善的数字签名应该满足三个条件:
1、不能抵赖 2、不能伪造 3、可以仲裁
数字签名体制包括两个方面的处理:施加签名和验证签名
凡是能够确保数据的真实性的公开密钥密码都可以用来实现数字签名,例如:RSA密码,ELGamal密码,椭圆曲线密码ECC等都可以实现数字签名。
上图:数字签名体制包括施加签名和验证签名两个方面:
签名的过程:
1、A使用“摘要”算法(例如SHA-1、MD5等)对发送信息进行摘要。
2、使用A的私钥对消息摘要进行加密运算,将加密摘要和原文一并发送给B
验证签名的过程:
1、B接收到加密摘要和原文后,使用和A同样的“摘要”算法对原文在此进行摘要计算,生成新的摘要。
2、利用A的公钥对加密摘要进行解密。还原成原摘要。
3、对比新摘要和还原的原摘要,一致则说明由A发出且没有经过任何篡改。
为了同时保证机密性和真实性,应该先签名后加密。