《深入浅出HTTPS》读书笔记(26):数字签名
《深入浅出HTTPS》读书笔记(26):数字签名
公开密钥算法的另外一种用途就是数字签名技术
RSA签名算法和DSA签名算法都可以实现数字签名
(1)数字签名的用途
简单地说,数字签名技术有以下几个特点。
◎防篡改:数据不会被修改,MAC算法也有这个特点。
◎防抵赖:消息签署者不能抵赖。
◎防伪造:发送的消息不能够伪造,MAC算法也有这个特点。
(2)数字签名的流程
主要分为签名生成和签名验证
签名生成流程:
◎发送者对消息计算摘要值。
◎发送者用私钥对摘要值进行签名得到签名值。
◎发送者将原始消息和签名值一同发给接收者。
签名验证流程:
◎接收者接收到消息后,拆分出消息和消息签名值A。
◎接收者使用公钥对消息进行运算得到摘要值B。
◎接收者对摘要值B和签名值A进行比较,如果相同表示签名验证成功,否则就是验证失败。
为什么不直接对消息进行签名,而是对消息的摘要值进行签名?
考虑到公开密钥算法运行是相对缓慢的,数字签名算法建议对消息摘要值进行签名,因为摘要值的长度是固定的,运算的时候速度会比较快。