数字签名
引言
消息认证可以保护双方不受第三方的攻击,但是消息认证不能处理双方自身发生的攻击。如接受方可以伪造接到的信息,发送方可以否认自己曾经发送过的消息。
数字签名
数字签名 Digital Signature, 也称之为电子签名。所谓数字签名是指,发件人在被自己的私密钥匙加密过的消息中,加入签名,把签名和消息一起发送给接收人。接收人把发送人用公开钥匙加密的签名进行解密,才能得到消息,然后将经过解密的消息与另一个接收信息进行比较,若解密得到的两个签名一致,则认为该消息是真实正确的。
数字签名的特点:
- 只有签名者本人可以对消息生成签名
- 任何人都可以验证签名者对消息的签名
一个合格的数字签名,应当能够验证签名者,签名日期和时间,能够认证施加数字签名的消息内容,能够由第三方仲裁,以规避消息认证可能遇到的伪造,否认等争执问题。
电子签名具有如下优点:
- 便于检验消息的正确性
- 可以确认发送人,确认没有人冒充消息发送者,使消息发送者无法否认消息由自己发送。
签名方案
签名方案通常由3种不同的算法组成。
- 密钥对生成算法:签名者生成私钥和公钥。
- 签名算法:以私钥和消息为输入,输出消息的签名。
- 验证算法:以公钥,消息和签名为输入,验证是否通过。
直接数字签名
直接数字签名指只涉及发送方和接收方的数字签名方案。在这里,假设接收方已