MD6消息摘要算法是一个密码散列函数。它使用默克尔树形式的结构,允许对很长的输入并行进行大量散列计算。作者称,在英特尔酷睿2双核CPU上,MD6-256的性能为每字节28个时钟周期,并可证明的有抗差分密码分析能力。[2]参考实现源代码MIT许可证下发布。 [3]

MD6
概述
设计者Ronald Rivest英语Ronald Rivest, Benjamin Agre, Dan Bailey, Sarah Cheng, Christopher Crutchfield, Yevgeniy Dodis, Kermin Fleming, Asif Khan, Jayant Krishnamurthy, Yuncheng Lin, Leo Reyzin, Emily Shen, Jim Sukha, Eran Tromer, Yiqun Lisa Yin英语Yiqun Lisa Yin
首次发布2008年
系列MD2MD4MD5、MD6
细节
摘要长度可变,0<d≤512位
结构默克尔树
重复回数可变,默认:Unkeyed=40+[d/4], Keyed=max(80,40+(d/4)) [1]

据介绍,在16核CPU架构上对长消息的处理速度可能超过1 GB/秒。

2008年12月,Fortify Software英语Fortify Software的Douglas Held在原始MD6哈希算法的参考实现中发现了缓冲区溢出问题。此错误后由罗纳德·李维斯特于2009年2月19日公布,Fortify的报告发布前已发布更正的参考实现。 [4]

MD6被提交到NIST SHA-3竞赛英语NIST hash function competition。但2009年7月1日,Rivest在NIST上评论说,由于速度问题,MD6尚未准备好成为SHA-3的候选者。在所提交的证明能抵抗差分攻击的MD6版本中发现了一个缺陷,且无法为速度更快的减法版本提供同样的证明。 [5]尽管Rivest在MD6网站上也表示未正式撤回,[6]MD6没有进入SHA-3竞赛的第二轮。 2011年9月,MD6网站上发布了一篇论文,提供了改进的证明,以及更快的减少回数并可抗差分攻击的版本[7][8]

参见

参考文献

  1. ^ Ronald L. Rivest等,The MD6 Hash Function页面存档备份,存于互联网档案馆), Crypto 2008
  2. ^ Ronald L. Rivest. The MD6 hash function A proposal to NIST for SHA-3. [2021-01-07]. (原始内容存档于2020-11-09). 
  3. ^ readme.txt. [2021-01-07]. (原始内容存档于2018-04-15). 
  4. ^ Fortify-SHA-3-Report (PDF). [2021-01-07]. (原始内容 (PDF)存档于2012-02-22). 
  5. ^ Rivest, Ronald. OFFICIAL COMMENT: MD6. July 1, 2009 [September 27, 2011]. (原始内容存档于2020-01-28). 
  6. ^ Schneier, Bruce. MD6 Withdrawn from SHA-3 Competition. July 1, 2009 [July 9, 2009]. (原始内容存档于2012-03-21). 
  7. ^ Heilman, Ethan. Restoring the Differential Resistance of MD6. July 10, 2011 [September 27, 2011]. (原始内容存档于2019-02-19). 
  8. ^ Heilman, Ethan. Improved Differential Analysis. September 2011 [September 27, 2011]. (原始内容存档于2020-06-07). 

外部链接