数字签名是我们保护数据时的灵活的工具。名字上有一个问题,它不是签名。签名是个密码技术上的动作,不是你签信用卡时的笔迹。你签了以后就意味着产生了法律效力。你签什么是次要的:就像传说中的一样X, 佐罗的Z, 或其它的。我对在一些现金出纳机的签名扫描仪觉的很麻烦。我在里面尽可能快的写了一个“签名”,如果签名是一系列线段时,它被识别的就不是很好。在我看来其它的方式和签名是一样的。
比如T是一个有权的、值得依赖的仲裁者。他能同时与A和B(也可以是其他想对数据文件签名的任何人)通信。他和A共享秘密密钥KA,和B共享另一个不同的秘密密钥KB。这些密钥在协议开始前就早已建好,并且为了多次签名可多次重复使用。
T怎么知道信息是从A而不是从其他人冒名顶替者那里来的呢?从信息的加密推断出来。由于只有他和A共享他们两人的秘密密钥,所以只有A能用这个密钥加密信息。
这和文件签名一样好吗?让我们看看我们需要的特点:
(1)这个签名是可信的,T是可信的仲裁者,并且知道信息是从A那里来的,T的证书对B起着证明的作用。
(2)这个签名是不可伪造的。只有A(和T,但每个人都相信他)知道KA,因此只有A才能把用KA加密的信息传给T。如果有人冒充A,T在第(2)步马上就会察觉,并且不会去证明它的可靠性。
(3)这个签名是不能重新使用的。如果B想把T的证书附到另一个信息上,A可能就会大叫受骗了。仲裁者(可能是T或者可存取同一信息的完全不同的仲裁者)就会要求B同时提供信息和A加密后的信息,然后仲裁者就用KA加密信息,他 马上就会发现它与B提供的加密信息不相同。很显然,B由于不知道KA,他不可能提供加密信息使它与用KA加密的信息相符。
(4)签名文件是不能改变的。B想在接收后改变文件,T就可用刚才描述的同样办法证明B的愚蠢行为。
(5)签名是不能抵赖的,即使A以后声称她没有发信息给B,T的证书会说明不是这样。记住:T是每个人都信任的,他说的都是正确的。