有几种
公钥算法能用作
数字签名。在一些算法中,例如RSA,
公钥或者
私钥都可用作加密。用你的
私钥加密文件,你就拥有安全的
数字签名。在其它情况下,如DSA,算法便区分开来了,也就是
数字签名算法不能用于加密。这种思想首先由Diffie和Hellman提出 。
这个协议中,只需要证明A的
公钥的确是她的。如果B不能完成第(3)步,那么他知道签名是无效的。
(4) 被签名的文件是不可改变的。如果文件有任何改变,文件就不可能用A的
公钥验证。
在实际应用中,因为公共
密码算法的速度太慢,签名者往往是对消息的散列签名而不是对消息本身签名。这样做并不会降低签名的可信性。