(2) 给定 h ,根据 H(M) = h 计算 M 很难 ;
(3) 给定 M ,要找到另一个消息 M‘ 并满足 H(M) = H(M’) 很难 。
在许多应用中,仅有单向性是不够的,还需要称之为“抗碰撞的条件:
要找出两个随机的消息 M 和 M‘,使 H(M) = H(M’) 满足很难 。
由于散列函数的这些特性,由于公开密码算法的计算速度往往很慢,所以,在一些密码协议中,它可以作为一个消息 M 的摘要,代替原始消息 M,让发送者为 H(M) 签名而不是对 M 签名。
如 SHA 散列算法用于数字签名协议 DSA中 。
2.5 数字签名
提到数字签名就离不开公开密码系统和散列技术 。
有几种公钥算法能用作数字签名 。在一些算法中,例如RSA,公钥或者私钥都可用作加密 。用你的私钥加密文件,你就拥有安全的数字签名 。在其它情况下,如DSA,算法便区分开来了??数字签名算法不能用于加密 。这种思想首先由Diffie和Hellman提出。
基本协议是简单的 :
(1) A 用她的私钥对文件加密,从而对文件签名 。
(2) A 将签名的文件传给B 。
(3) B用A的公钥解密文件,从而验证签名 。
这个协议中,只需要证明A的公钥的确是她的 。如果B不能完成第(3)步,那么他知道签名是无效的 。
这个协议也满足以下特征:
(1) 签名是可信的 。当B用A的公钥验证信息时,他知道是由A签名的 。
(2) 签名是不可伪造的 。只有A知道她的私钥 。
(3) 签名是不可重用的 。签名是文件的函数,并且不可能转换成另外的文件 。
(4) 被签名的文件是不可改变的 。如果文件有任何改变,文件就不可能用A的公钥验证 。
(5) 签名是不可抵赖的 。B不用A的帮助就能验证A的签名 。
在实际应用中,因为公共密码算法的速度太慢,签名者往往是对消息的散列签名而不是对消息本身签名 。这样做并不会降低签名的可信性 。
注:本文由计算机专业相关教材整理
推荐阅读
- 软件加密技术和注册机制
- 服务器数据存储纵技术杂谈
- 思科路由交换命令总结
- 路由器基础:路由器转发机制改变
- 经典:路由器设置基础知识学习
- bmr是什么
- 路由器常用接口
- 鄯善县经济基础是什么
- 《网络基础学习之十七》路由器原理、分类和选购
- 路由器基础知识与常见术语解释