图解密码技术------第7章 单向散列函数

当需要比较两条消息是否一致 时,我们不必直接对比消息本身的内容,只要对比它们的“指”就可以了。

 

 

单向散列函数(one-way hash function)有一个输入和一个输出,其中输入称为消息(message), 输岀称为散列值(hash value)。单向散列函数可以根据消息的内容计算出散列值,而散列值就可以被用来检查消息的完整性

 

 

SHA-256单向散列函数为例,它所计算岀的散列值 的长度永远是256比特(32字节

 

 

 

两个不同的消息产生同一个散列值的情况称为碰撞(collision

 

 

 

难以发现碰撞的性质称为抗碰撞性(collision resistance

当给定某条消息的散列值时,单向散列函数必须确保要找到和该条消息具有相同散列值的另外一条消息是非常困难的:这一性质称为弱抗碰撞性

 

和弱抗碰撞性相对的,还有强抗碰撞性。所谓强抗碰撞性,是指要找到散列值相同的两条不同的消息是非常困难的这一性质。在这里,散列值可以是任意值

 

 

单向散列函数也称为消息摘要函数(message digest function ).哈希函数或者杂凑函数

输入单向散列函数的消息也称为原像(pre-image )

单向散列函数输出的散列值也称为消息摘要(message digest)或者指纹(fingerprint )o

完整性也称为一致性

顺便说一句,单向散列函数中的“散”的英文“hash一词,原意是古法语中的“斧”,后来被引申为“剁碎的肉末”,也许是用斧子一通乱剁再搅在一起的那种感觉吧。单向散列函数的作用,实际上就是将很长的消息剁碎,然后再混合成固定长度的散列值。

 

单向散列函数的实际应用

检测软件是否被篡改为了减轻服务器的压力, 很多软件作者都会借助多个网站(镜像站点)来发布软件,在这种情况下,单向散列函数就会在检测软件是否被篡改方面发挥重要作用。

 

基于口令的加密单向散列函数也被用于基于口令的加密(Password Based Encryption, PBE )

PBE的原理是将口令和盐(salt,通过伪随机数生成器产生的随机值)混合后计算其散列值,然后将这个散列值用作加密的密钥。

数字签名

伪随机数生成器密码技术中所使用的随机数需要具备实上不可能根据过去的随机数列预测未来的随机数列这样的性质。为了保证不可预测性,可以利用单向散列函数的单向性。

 一次性口令(one-time password)

 

MD5

MD4是由Rivest1990年设计的单向散列函数,能够产生128比特的散列值(RFC1186, 修订版RFC1320)o不过,随着Dobbertin提岀寻找MD4散列碰撞的方法,现在它已经不安全了。

MD5是由Rivest1991年设计的单项散列函数,能够产生128比特的散列值(RFC1321)

MD5的强抗碰撞性已经被攻破,也就是说,现在已经能够产生具备相同散列值的两条不同 的消息,因此它也已经不安全了。

MD4MD5中的MD是消息摘要(Message Digest的缩写。

 

SHA-3

2005SHA-1的强抗碰撞性被攻破的背景下,NIST开始着手制定用于取代SHA-1的下一代单向散列函数SHA-3SHA-3AES一样采用公开竞争的方式进行标准化。SHA-3的选拔于5年后的2012年尘埃落定,一个名叫Keccak的算法胜出,最终成为了SHA-3

2012 年,由 Guido BertoniJoan Daemen x Gilles Van Asschex Michael Peeters 共同设计的 Keccak算法被最终确定为SHA.3标准,其中Joan Daemen也是对称密码算法AES的设计者之一。

基于NIST所设定的条件,我们能够免费、自由地使用SHA-3算法,这与AES的情形完全相同。

 

 

 

 

暴力破解

利用文件的冗余性生成具有相同散列值的另一个文件,这就是一种针对单向散列函数的攻击。

找出具有指定散列值的消息的攻击分为两种,即“原像攻击”和“第二原像攻击”。原像攻击(Pre-Image Attack)是指给定一个散列值,找出具有该散列值的任意消息;第二原像攻击 (Second Pre-Image Attack )是指给定一条消息1,找出另外一条消息2,消息2的散列值和消息 1相同。

生日攻击

在这里,Mallory所进行的攻击不是寻找生成特定散列值的消息,而是要找到散列值相同的两条消息,而散列值则可以是任意值。这样的攻击,一般称为生日攻击(birthday attack)或者冲突攻击(collision attack),这是一种试图破解单向散列函数的“强抗碰撞性”的攻击

2020-05-18

猜你喜欢

转载自www.cnblogs.com/lemo123/p/12943978.html
今日推荐