5.4.2 基于传统密钥明文可见的仲裁方案

5.4.2 基于传统密钥明文可见的仲裁方案

第一种方案,利用传统密钥(对称密钥)进行数字签名,仲裁者可以看到消息明文。X代表签名的发送方,Y代表签名的接收方,A代表仲裁者,M代表待签消息,发送方X和仲裁者A之间的对称密钥记为KXA,接收方Y和仲裁者A之间的对称密钥为KAY,则主要过程包括:

X→A:M‖EKXA[IDX‖H(M)]

A→Y:EKAY IDX‖M‖EKXA[IDX‖H(M)]‖T

发送方X创建一条消息M,计算该消息的Hash值H(M),然后将该消息M以及对该消息的签名发送给仲裁者A。签名包括消息的Hash值H(M)和发送方X的ID值,并用发送方X和仲裁者A之间的对称密钥KXA进行加密。

仲裁者A收到发送方X发送的信息后,用对称密钥KXA进行解密,然后对签名进行验证,若为真,则构建一条信息并用KAY加密后发送给接收方Y。该消息包括发送方X的ID、原始消息M、数字签名和时间戳T。

接收方Y收到仲裁者A发送的消息后,解密该消息,得到原始消息M、时间戳T和签名。通过消息中的时间戳T,接收方Y可以得知该消息是最新的而不是重放攻击。然后接收方Y将原始消息以及签名保存起来,以便在以后发生争端时作为验证的依据。

在解决纠纷时,声称接收到由发送方X发送的消息的接收方Y将消息T发送给仲裁者A。仲裁者A将根据这个消息判断Y接收到的消息是否的确来自X:仲裁者利用对称密钥KAY对该消息解密,得到发送方X的ID、原始消息M以及签名,然后利用对称密钥KXA对签名进行验证,判断消息M的Hash值是否相等。

例5-1 以移位密码体制为基础介绍上述签名实施过程。移位密码是对称加密方法的一种,它的明文空间和密文空间都是26个英文字母的集合,密钥空间。设m为待加密的明文,k为加密密钥,c为对应的密文。

加密过程:

Ek m()=(m+k)mod 26

解密过程:

Dk c()=(c-k)mod 26

在数字签名过程中,假定发送方X和仲裁者A之间的对称密钥KXA=3,接收方Y和仲裁者A之间对称密钥KAY=5。为简单起见,设消息m的Hash函数值H(m)=m,消息m=8,对应的字母为I。在此把身份信息和时间信息都略去,身份信息的验证与消息的验证过程一样。

首先,X对消息m=8进行签名

(8+3)mod 26=11

对应的字母为L,于是

X→A:I‖L

其次,A收到X发送的信息后,验证消息的有效性,得到

8=(11-3)mod 26

从而确认该消息有效。于是,A对消息m=8进行加密得到

(8+5)mod 26=12

对应的字母为M,

(11+5)mod 26=15

对应字母P,于是

A→Y:M‖P

最后,Y收到A发送的信息后,进行解密得到

(12-5)mod 26=8

对应字母I,

(15-5)mod 26=11

对应字母L,则原消息为I,签名为L。

在这个方案中,接收方无法直接对签名进行验证,签名是解决分歧的唯一凭证。只要消息来自仲裁者,接收方就认为消息已经得到了验证。因此在这个方案中,收发双方都对仲裁者有很高的信任度。发送方必须相信仲裁者不会泄露它们之间的密钥并且不会利用它的密钥伪造合法签名;接收方必须相信只有当消息的Hash值正确且签名确实来自发送方X时,仲裁者才将消息转发给他;收发双方都必须信任仲裁者在解决分歧时是公正无私的。

在这个方案中,由于仲裁者可以看到发送消息的明文,因而不利于确保消息的保密性。因此又产生了两种仲裁体系,在这两种体系中仲裁者均不能看到消息明文。下面分别介绍这两种方法。