论文部分内容阅读
密码哈希函数(简称哈希函数)是密码学领域三大原语之一(其他两个分别是加密算法与签名算法),它在现代通信、金融以及安全计算等领域起着基础作用。哈希函数的传统而且重要的安全性质是抗碰撞性、抗第二原像性与抗原像性。本文使用中间相遇方法对六个哈希函数MD4、Extended MD4、3轮HAVAL、SM3、DHA-256与SShash的抗第二原像性与抗原像性进行了分析。MD4是由Ronald L. Rivest设计的在1990年CRYPTO会议上提出的哈希函数,许多重要的哈希函数比如广泛应用的MD5、SHA-1与SHA-2的设计理念都是来源于MD4。MD4目前仍在被使用。我们提出了中间相遇原像攻击MD4的复杂度计算公式,提出了多中性字部分固定技术并设计了自动化计算复杂度的算法,对Kazumaro Aoki等人在SAC2008会议上提出的一块的MD4原像攻击进行了改进,由原先的2107的时间复杂度改进为295。Extended MD4是MD4的256比特的扩展版本,我们也应用类似的方法对Yu Sasaki等人在ACISP2009会议提出的对Extended MD4伪原像与原像攻击进行了改进,时间复杂度分别降低了225.2与212.6。这是目前最好的MD4与Extended MD4原像攻击。一块的原像攻击没有利用Merkle-Damg ard性质,它直接攻击的是压缩函数,这是令人兴趣的地方。HAVAL是郑玉良等人在1992年AUSCRYPT会议上提出的哈希函数,包括3轮、4轮与5轮的版本。我们组合了各种方法,对Yu Sasaki等人在ASIACRYPT2008会议中的对3轮的HAVAL的伪原像与原像攻击进行了改进,相应的时间复杂度由原先的2192与2225分别降低到2172与2209.6。SM3是中国国家密码管理局在2010年12月发布的国家标准哈希算法,总共64步,哈希输出256位。我们提出了对30步的SM3的原像攻击,这是对SM3抗原像性分析的第一个结果。DHA-256是由Jesang Lee等人在2005年11月由美国国家标准技术研究院主办的密码哈希算法的讨论会上提出的哈希函数,总共64步,哈希输出256位。我们分别提出了对一块的27步的DHA-256与两块的35步的DHA-256的原像攻击。这是对DHA-256的抗原像性进行分析的第一个结果。SShash是由Somitra Kumar Sanadhya等人在ASIACCS2009会议上提出的哈希函数,包括SShash-256与SShash-512,分别包含64与80步。我们对SShash的28步进行了原像攻击。这是对SShash的安全性进行分析的第一个结果。本文提出的所有原像攻击都能处理消息填充与原始消息长度添加等相关的消息处理操作,因此也能平凡地转化为相应的第二原像攻击。