论文部分内容阅读
杂凑函数在密码学中具有重要的地位,被广泛应用在数字签名,消息认证,数据完整性检测等领域。杂凑函数通常被认为需要满足三个基本特性:碰撞稳固性,原根稳固性和第二原根稳固性。2005年,Wang等人给出了MD5算法和SHA-1算法的碰撞攻击方法。被广泛应用的MD5算法和SHA-1算法不再是安全的算法。由此,美国国家标准与技术研究所(NIST)于2007年开始了新一轮的杂凑函数的征集活动(SHA-3),并于2012年10月公布了新一代的美国杂凑算法标准一—Keccak算法。SM3密码杂凑算法是中国国家密码管理局2010年公布的中国商用密码杂凑算法标准。该算法由王小云等人设计,消息分组512比特,输出杂凑值256比特,采用Merkle-Damgard结构。SM3密码杂凑算法的压缩函数与SHA-256的压缩函数具有相似的结构,但是SM3密码杂凑算法的设计更加复杂,比如压缩函数的每一轮都使用2个消息字。目前对SM3密码杂凑算法的攻击还比较少。在2011年的International Conference on Information Security and Cryptology (ICISC)国际会议上,Zou等人首次给出了减少轮数的SM3密码杂凑算法的原根攻击。其中,从第1轮开始的28轮减少轮数的SM3密码杂凑算法的原根攻击的时间复杂度为2241.5,从第7轮开始的30轮减少轮数的SM3密码杂凑算法的原根攻击的时间复杂度为2249。随着密码分析技术的发展,对杂凑函数的分析不再局限于最初的三个基本特性上。对杂凑函数的分析还出现了随机性分析,伪原根攻击(自由起始原根攻击)和近似碰撞攻击等分析方法。本文通过研究SM3密码杂凑算法的特点,运用下列二种分析方法对SM3密码杂凑算法的安全性进行分析,取得了以下成果:1.研究了SM3密码杂凑算法的28轮伪原根攻击方法。使用伪原根攻击转化伪碰撞攻击的方法,将已有的28轮伪原根攻击转化成伪碰撞攻击方法,攻击的时间复杂度为2112.5,空间复杂度为231。给出了SM3密码杂凑算法不能抵御28轮伪碰撞攻击的证明。2.分析了减少轮数的SM3密码杂凑算法随机性。使用飞来去器(Boomerang)攻击并结合消息修改技术找到了32轮、33轮、34轮和35轮减少轮数的SM3密码杂凑算法的飞来去器区分器。给出了32轮、33轮、34轮和35轮减少轮数的SM3密码杂凑算法的飞来去器攻击,攻击的复杂度分别为2144、2324、253.1和2117.1。