文章横幅PC版
文章横幅iPad版
文章横幅手机版

数字签名的工作原理

TIME:2019-03-21 13:39  click: 416 次 来源: 未知

最简单的数字签名是发送方将整个消息用自己的私钥加密,接收方用发送方的公钥解密,解密成功就可验证签名的确是发送方。但这种方法存在缺陷,即被签名的文件或消息可能很长。由于公钥加密运算速度慢,如果将整个文件都用私钥加密,则会非常耗时。因此,通常先对消息用散列函数求消息摘要,然后发送方用其私钥加密该消息摘要,这个被发送方私钥加密的消息摘要就是发送方的数字签名,并附在文件后,一起发送给接收方就可以验证签名了。

接收方在验证签名时,先用发送方的公钥解密数字签名,然后将提取到的消息摘要与自已计算的消息摘要相比较,如果相同就表明该签名是有效的。由于改后消息的消息摘要和该消息的消息摘要是不同的,接收方能通过验证签名发现。这样攻击者虽然能截获并阅读明文消息,但不能将消息篡改。数字签名的基本过程如下图所示。

blob.png

上图的数字签名方案虽然解决了公钥密码体制加密长消息速度慢的问题,但又产生了一个新的问题,即消息以明文形式传输,无法实现消息的保密性。如果对消息有保密性要求,则可以不直接发送明文和数字签名,而是将明文和数字签名的组合体用一个对称密钥加密,再将加密后的组合体以及对称密钥的数字信封发送给接收方。这种方式是将数字签名与数字信封技术结合在一起,实现了带有保密性要求的数字签名。

使用公钥密码体制作为数字签名,则无法同时实现保密性;反之,如果作为加解密使用,则无法同时实现签名。如果使用公钥密码体制同时实现数字签名和加密,则需要使用两次公钥密码算法,一次用于加密,另一次用于签名。因此带有保密性的数字签名需要两对公钥/私钥才能实现,一对是发送方的,另一对是接收方的。

 

上一篇:信息安全的基本特征 下一篇:密钥管理系统介绍