这一系列知识的内容很容易理解。这里有知识和故事,从趣味性到趣味性,国课等着你去学习。
本系列课程内容从比特币的介绍开始,延伸到区块链的相关技术原理和发展趋势,然后简单介绍区块链中应用的各种密码技术。欢迎您订阅官方账号,继续学习。
[本课程内容全部选自武汉大学网络安全研究所教授、博士生导师、平台首席密码学家何德彪教授从区块链与密码学的讲义、教材、互联网中选取。版权归原作者所有。如有侵权行为,请立即与我们联系,我们会及时处理。]
五点一
散列函数的定义与性质
图学院第五单元开学了!在本单元中,我们将学习哈希函数及其在区块链中的应用。
散列函数定义
哈希函数是一个公共函数,用于将任何长消息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=,K为密钥。攻击者可以截获C,找到hash函数的倒数,然后得到H-1(C),然后从m和m∥k中得到k。
弱防冲突:确保给定消息的哈希值找不到另一个具有相同哈希值的消息,即防止伪造。否则,攻击者可以截获消息M及其散列函数值H(M),并找到另一条消息M’,使得H(M’)=H(M)。这样,攻击者可以使用M’来模拟M,但是接收方找不到它。
强大的抗碰撞能力:它是对已知的生日攻击方法的防御能力。强防撞自然包括弱防撞。
加密安全哈希函数H应具有以下属性:
对于任何消息x,很容易计算H(x)
H是单向的
H具有很强的抗碰撞性
五点二
散列函数的发展
1978年,Merkle和damagad设计了MD迭代结构。
1993年,赖学佳和梅赛伊对MD结构进行了改进和加强。
上世纪90年代初,麻省理工学院计算机科学实验室和RSA数据安全公司Rivest设计了MD哈希算法家族。MD代表消息摘要。
MD家族中的MD2、MD4和MD5都产生128位的信息摘要。
哈希函数结构图
MD2(1989)、MD4(1990)、MD5(1991):由美国密码学家罗纳德·林恩·里维斯特设计,MD2、MD3、MD4开发,输出128位定长字符串。
Ripemd-128/160/320:Hans dobbertin是国际**的密码学,他在1996年打破了MD4算法,但也对MD5的安全性提出了质疑,这促使他设计了类似Ripemd-160的MD5。在结构上,ripemd-160可以看作两个类似MD5的并行算法,大大提高了ripemd-160的安全性。
值得注意的是,中国密码学家王晓云于2004年8月在crypto2004上对MD4和MD5进行了破译,也就是说,在有效时间内发现了它们之间的大量碰撞。
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算法。
Sha系列散列函数的参数比较
2017年2月23日,谷歌宣布谷歌研究人员和阿姆斯特丹CWI研究所联合发布了一项新研究,详细介绍了一次成功的SHA1碰撞攻击。
SHA-256/384/512和惠而浦(Vincent Rijmen和Paulo S.L.M.Barreto于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。
哈希函数冲突攻击复杂性图
今天是大学第五单元的第一课!在本单元中,我们将深入探讨散列函数。请期待~
文章标题:带你了解区块链和密码学:哈希函数的简史
文章链接:https://www.btchangqing.cn/103962.html
更新时间:2020年09月15日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。