SHA-3花落Keccak

——2012年10月安全天下事

江海客

2012年10月3日,美国国家标准与技术研究院(NIST)宣布新一代hash算法SHA-3的漫长遴选已经产生结果,经过4年的时间,Keccak算法最终摘得正果。这毫无疑问是本月安全业界最重量级的消息。

从整体结构上看,Keccak算法主要依靠基于海绵结构(sponge construction)的海绵函数(sponge function),状态更新使用的是作用在三维数组上的五步迭代排列。学习和赏鉴Keccak的设计时,我不禁想起在2010年12月冲击最后一轮评选的五个算法产生之后,一名业内友人对我作出了如下预言:

“SHA-3的结果将宣告M-D(Merkle-Damgard)迭代结构甚至部分进化变形彻底的失败。 Grøstl和JH的出局将是必然;Skien的设计巧妙,但书卷气太重,硬件性能也不算理想;而BLAKE进入本轮本身就有些意外。最终Keccak必然胜出。”

回看起来,在M-D迭代结构逐步被算法研究者吃透的情况下,多个通用性攻击方式先后重挫了MD4、MD5和SHA-1。尽管采用宽管道M-D等改进设计在对抗类似攻击时有了明显的提高,但从NIST本次对算法的要求来看,明显存在寻求M-D之外设计的倾向。

Keccak的设计团队也值得我们分析和关注。按照Keccak算法的官方排名,其署名次序为Guido Bertoni、Joan Daemen、Michaël Peeters和Gilles Van Assche。其中,我们对Joan Daemen并不陌生,他正是AES中选算法Rijndael的两位作者之一。在这四位作者中,Guido Bertoni是意大利人,其他三位都是比利时人。在第三轮与Keccak竞争的其他四个算法中,BLAKE和Grøstl也分别来自丹麦和瑞士。继AES之后,欧洲大陆再次证明了其在信息安全基础研究方面的实力。

Keccak也具有非常鲜明的“硬件化”色彩。四位作者中三位都来自意法半导体(STMicroelectronics),Michaël Peeters则来自恩智半导体(NXP Semiconductor)。这也可以理解,由于hash算法在电子认证领域有比较广泛的应用,因此SHA-3算法的在硬件实现方面的特性,包括复杂度、实现成本和效率等,都将成为非常重要的指标。不知道是否因为海绵结构在硬件实现上有特殊的优势,在51个备选算法中,另外一个采用了Sponge的算法Luffa,也是由硬件厂商日本日立(Hitachi)的研究者提交的。

值得我们思考的一个细节是,SHA-3的51个入围算法中,有多个借鉴了AES的思想和部分设计,其中也包括最终5个入围算法之一的Grøstl;反而是AES作者之一所在的Keccak团队相对另辟蹊径,突破了自我。这个情况令人感慨不已。

目前在Keccak算法的官方网站keccak.noekeon.org,可以下载到这个算法用C、Python和 VDHL语言的实现代码。但需要提醒使用者的是,那些认为将MD5替换成Keccak来保存口令就会更安全的想法是愚蠢的,正如我们多次所说,hash算法的设计初衷并非用于保存口令,而是用于完整性验证。Keccak的彩虹表(rainbow table)一定正被高速地计算着。

在最开始的SHA-3的候选名单中,我们也高兴地看到有中国的研究者提交算法,并进入了第一轮51个入围的算法名单。尽管似乎这是两份比较传统的基于M-D迭代结构的改进算法,但对于保守的中国密码学界来说,有人参与这种互动尝试,不能说是一件坏事。我们曾赞叹过美国创造这种全世界智慧为美国打工模式的先见,而对中国,在注定是艰难和孤独的大国崛起之路,也必须要有构建自己的智慧创造模式的抱负与行动。

2012年10月 《SHA-3花落Keccak》相关推荐

  1. 还款每个月90.85元, 到 2012年10月,2012 11月 2256元,共 5799.25元

    还款每个月90.85元, 到 2012年10月,2012 11月 2256元,共 5799.25元

  2. JAVA月数输入24回车后变成12_Java语言程序设计(一)自考2012年10月真题

    Java语言程序设计(一)自考2012年10月真题及答案解析 本试卷为单选题型,填空题,程序填空题,程序分析题,程序设计等题型. 一.单项选择题在每小题列出的四个备选项中只有一个是符合题目要求的,请将 ...

  3. abcdefg顺序Java打印,全国2012年10月自考JAVA语言程序设计(一)试题及答案

    全国2012年10月自考Java语言程序设计(一)试题 课程代码:04747 选择题部分 一.单项选择题(本大题共10小题,每小题1分,共10分) 在每小题列出的四个备选项中只有一个是符合题目要求的, ...

  4. 2012年10月国庆长假天津-内蒙古自驾游之我们在路上

    本文转自 哪玩网 2012年10月国庆长假天津-内蒙古-中蒙边境自驾游之我们在路上... 出发后抵达北京八达岭高速,十一中秋国庆长假8天出游的人非常多,高速成了停车场. 我们一行单车,4人,10月3日 ...

  5. 最新县及县以上行政区划代码(截止2012年10月31日)

    最新县及县以上行政区划代码(截止2012年10月31日) http://www.stats.gov.cn/tjbz/xzqhdm/t20130118_402867249.htm 对应数据: --TRU ...

  6. C语言三位数反序且if,2012年10月14日江苏省高校计算机等级考试二级C语言上机题(C02)及其解答_张柏雄...

    [上机题命题评述]2012年10月14日C01套编程试题是求三位数的水仙花数及其反序数分别存入数组a和b.为本作者于2011年6月15日在豆丁网上发布的"★预测江苏省计算机C语言等级考试的八 ...

  7. 2013年10月20日江苏省高校计算机等级考试二级c语言,2012年10月14日江苏省高校计算机等级考试二级C语言上机题(C02)及其解答_张柏雄.doc...

    2012年10月14日江苏省高校计算机等级考试二级C语言上机题(C02)及其解答_张柏雄 [上机题命题评述]2012年10月14日C01套编程试题是求三位数的水仙花数及其反序数分别存入数组a和b.为本 ...

  8. 2012年10月3日

    2012年10月3日 今天是国庆后的第三天, 10 月 3 日,一夜没有睡好,可能是头痛的原因吧,屋外的阳光也没有让我的心情好起来,当然,我更觉得是凌晨一点多那位网友问我的一句话"我为什么会 ...

  9. 2012年10月27日沈阳WebLogicFans论坛User Group线下活动

    沈阳User Group成立活动WebLogicFans论坛沈阳线下活动 值此金秋十月,在WebLogicFans论坛的支持下,东北地区终于有了第一个属于甲骨文用户和技术爱好者自己的技术社区-沈阳 U ...

最新文章

  1. loadrunner中的c函数----从参数列表中取参数并与特定字符进行字符串比较。
  2. Entity Framework Core 2.0的新特性
  3. 商汤科技2020年校园招聘丨以你所AI,创无界未来
  4. 《Adobe Premiere Pro CC经典教程》——14.6 特殊颜色效果
  5. 如何比较 Java 的字符串
  6. 简单易用高性能!一文了解开源迁移学习框架EasyTransfer
  7. 朴素贝叶斯算法--过滤垃圾短信
  8. Python 按坐标进行文字剪裁
  9. mysql删除所有存储过程_mysql 删除所有存储过程
  10. nginx html 不缓存,nginx如何实现js和css不缓存
  11. Scaleform在游戏制作中的使用
  12. gcc编译器下载各版本下载
  13. Google Chrome Top60 实用插件集合
  14. highmem 分配使用与物理地址的对应关系
  15. 我TM用了假的PanDownload吧!
  16. 快速将有文件的FAT32格式的U盘转NTFS格式(Windows)
  17. Nsca安装简单步骤
  18. python坐标表示_已知经纬度坐标求两点间距离,用python表示
  19. 基矢量的协变导数、矢量的协变导数
  20. 绩效面谈的4种技巧二

热门文章

  1. 金融低代码开发平台建设要点与方法论
  2. 量子计算机九章人民日报,超越“量子霸权”100亿倍!中国“九章”为何后来居上?...
  3. Cannot instantiate objects with a parent which is persistent.
  4. 正则表达式验证可发短信的号码,如手机号和小灵通号码(106+区号+号码)
  5. 财务报销管理平台的产品设计思路
  6. OA和KM知识管理的区别
  7. 新视野大学英语 1 综合训练1(第3版)(高清)扫描版
  8. yubikey入手体验
  9. App下载展示页模板
  10. DevExpress chartControl 基本结构说明