数字签名和数字信封的区别[转]

时间:2024-03-11 08:11:25

转自:http://free.banzhu.com/s/salinelove/prog/ShowDetail.asp?id=37 

 

一、数字签名

数字签名使用双钥密码加密和散列函数. 消息用散列函数处理得到消息搞要,再用双钥密码*的私钥对其进行加密,称为数字签名.

数字签名的原理如下:消息M用散列函数H得到的消息摘要h1=H(M),然后发送方用自己的双钥密码*的私钥KSA对这个消息摘要进行加密h’=EKSA(h1),形成发送方的数字签名.然后这个数字签名将作为消息M的附件随消息一起发送给消息的接收方,消息的接收方首先从接收方的原始消息M中计算出散列函数值h2=H(M),接着用发送双钥密码*的公钥KPA对数字签名进行解密DKPA(h’),得h1,如果h1=h2,则表明接收方收到的消息确实是发送方发送的,而且还可以确定此消息没有被修改过.

用表达式表示如下:

发送方: h1=H(M)

          h’=EKSA(h1)

接收方: h2=H(M)

          h1= DKPA(h’)

如果h1=h2则表明接收方收到的消息确实是发送方发送的,而且还可以确定此消息没有被修改过.

二、数字信封

发送方用一个随机产生的DES密钥加密原始数据(消息),然后用接受方的公钥加密DES密钥,称为消息的数字信封。将数字信封同DES加密的消息一起发送给接受方,接受者在接收到消息后,先用其私钥对数字信封进行解密(打开数字信封),得到发送方的DES密钥,再用此密钥去解密消息。只有用接受方的RSA私钥才能打开数字信封,这样确保了接受者的身份。

用表达式表示如下:

发送方:C1=EKDES(M)

        C2=EKPB(KDES)

接收方: KDES=DKSB(C2)

         M= DKDES(C1)

数字信封既克服了两种加密*的缺点,发挥了两种密码*的优点,又妥善解决了密钥传送的安全问题。