哈希函数简史

2020-09-15 09:20 栏目:经验之谈 来源:网络整理 查看()

平面艺术学院第五单元开始了!在本单元中,我们将学习散列函数及其在区块链的应用。

散列函数的定义

哈希函数(Hash Function)是一个开放函数,用于将任意长的消息M映射到较短的固定长度值H(M),也称为哈希函数和哈希函数。我们称函数值H(M)为哈希值、哈希值、哈希码或消息摘要。

哈希函数简史

哈希值是消息中所有位的函数,因此它提供了错误检测能力,也就是说,更改消息中的任何一位或几位都会更改哈希值。

散列函数的性质

哈希函数具有以下属性:

h可以作用于任意长度的数据块(无论它实际上是否是任意的,例如,SHA-1要求不超过264)。

h产生固定长度的输出(例如,SHA-1的输出是160位,SHA-256的输出是256位)。

计算任何给定的x,H(x)都相对容易,无论是用软件还是硬件实现。

单向:很容易计算任何给定消息的哈希值。然而,对于给定的散列值h,计算上不可能找到m,因此h (m)=h。

前三个是实用要求,后三个是安全要求。

单向性:给定的消息可以产生哈希值,但给定的哈希值不能产生对应的消息;否则,让传输数据C=M,H(M‖K),K是关键。攻击者可以截取C,求散列函数的逆,然后得到H-1(C),再从m和m ‖ k中得到k。

弱防碰撞:是为了保证给定消息的哈希值找不到与它相同的另一条消息,即防止伪造。否则,攻击者可以截取消息M及其hash函数值H(M),并找到另一条消息M’,使H(M)=H(M)。这样,攻击者可以用M '冒充M,但接收者找不到。

强防碰撞:是针对已知生日攻击方式的防御能力,强防碰撞自然包含弱防碰撞。

密码安全散列函数h应该具有以下属性:

对于任何消息x都很容易计算H(x)。

h是单向的

h是高度抗碰撞的

散列函数的发展

1978年,Merkle和Damagad设计了MD迭代结构。

1993年,我向贾和梅塞学习,以改进和加强总经理结构。

20世纪90年代初,麻省理工学院计算机科学实验室和RSA数据安全公司的Rivest设计了MD系列散列算法,MD代表消息摘要。

MD家族中的MD2、MD4、MD5都产生一个128位的信息摘要。

哈希函数简史

MD2(1989)、MD4(1990)和MD5(1991):由美国密码学家罗纳德林瑞文斯特(Ronald Linn Rivest)设计,由MD2、MD3和MD4开发,输出为128位固定长度字符串。

RIPEMD-128/160/320:国际知名的密码学家汉斯多伯坦(Hans Dobbertin)在1996年破解了MD4算法,但也对MD5的安全性提出质疑,促使他设计了类似MD5的RIPEMD-160。在结构上,RIPEMD-160可以看作是两个并行的类似MD5的算法,大大提高了RIPEMD-160的安全性。

值得注意的是,MD4和MD5已于2004年8月被中国密码学家王小云在Crypto2004上破译,即在有效时间内发现大量碰撞。

SHA系列算法由国家标准与技术研究所(NIST)根据Rivest设计的MD4和MD5开发。国家安全局(NSA)已经将SHA发布为美国政府标准。

SHA-0-SHA-0官方叫SHA,这个版本发布不久就被指出有弱点。

SHA-1-SHA-1于1994年由NIST发行。它与MD4和MD5算法非常相似,被认为是MD4和MD5的继承者。

实际上,SHA-2-SHA-2分为SHA-224、SHA-256、SHA-384和SHA-512算法。

哈希函数简史

2017年2月23日,谷歌宣布,谷歌研究人员和阿姆斯特丹CWI研究所联合发布了一项新的研究,详细描述了成功的SHA1碰撞攻击。

SHA-256/384/512和惠而浦(由文森特里曼和保罗巴雷托于2000年设计,被选入国际标准ISO/IEC 10118-3)被推荐用于NESSIE项目。(NESSIE是欧洲的三年密码标准项目,详见http://www.nessieproject.com/)

日本密码学研究与评估委员会推荐的算法是RIPEMD-160和SHA-256/384/512。

此外,NIST在2008年开始收集新的哈希标准。

迭代结构以外的结构

适用于任何平台的压缩功能

2008年10月,提交了文件,收到64个算法,公布了56个,51个进入第一轮评估。2009年10月开始第二轮评估,还剩14个算法。第三轮还剩五个算法。2012年10月2日,Keccak入选SHA-3。

哈希函数简史

微信二维码
售前客服二维码

文章均源于网络收集编辑侵删

提示:仅接受技术开发咨询!

郑重申明:资讯文章为网络收集整理,官方公告以外的资讯内容与本站无关!
NFT开发,NFT交易所开发,DAPP开发 Keywords: NFT开发 NFT交易所开发 DAPP开发