密码学家工具箱中的6个重要的工具:
有了消息认证码为什么还要有数字签名?
因为消息认证码无法防止否认。消息认证码可以识别消息是否被篡改或者发送者身份是否被伪装。(消息认证码保证完整性、可以进行认证)
为什么消息认证码无法防止否认,数字签名就能够否认呢?
消息认证码中,能够计算出MAC值的密钥(共享密钥)是由发送者和接受者双方共同持有的,因此发送者和接受者中的任何一方都能够计算MAC值,发送者也就可以声称“这个MAC值不是我计算的,而是接收者计算的”。
相反的,在数字签名中,能够生成签名的密钥(私钥)是只有发送者才持有的,只有发送者才能够生成签名,因此发送者也就没办法说“这个签名不是我生成的”了。
发送者用私钥对消息进行签名并把签名和消息发送给接收者,接收者用公钥解密得到消息原文并和收到的消息进行匹配。
对散列值签名就是多了一步,先计算消息的散列值,再计算签名。
(1)验证软件是否有被修改。
(2)一种名为带签名的Applet的软件就是一个具体的例子。这种软件就是用Java编写的(一种浏览器进行下载并执行的软件),并加上了作者的签名,而浏览器会在下载之后对签名进行验证。
密码学初级教程(五)数字签名 Digital Signature
原文:http://www.cnblogs.com/yaochc/p/5176553.html