论文部分内容阅读
Hash函数是密码学领域的一个重要分支,在数字签名、身份认证、消息认证等很多领域有着广泛的应用。1989年Rivest设计出MD2算法,这是Hash函数最初的模型,后来又陆续出现了MD4、MD5、HAVAL、RIPEMD、SHA-0、SHA-1、SHA-2算法。2009年美国NIST公开征集SHA-3系列Hash函数。2010年12月,美国NIST宣布SHA-3进入决赛的五种算法:BLAKE,Gr stl,JH,Keccak,Skein。美国NIST将在2012年举行决赛并公布最终的算法。SHA-1算法在现代社会中仍然发挥着很重要的作用。但是,在2005年,王小云等人利用差分攻击将SHA-1算法的的破译由280缩减为263次压缩函数的运算。由此可见,SHA-1已经不能满足现代密码学对安全性的要求。本文从四个方面对SHA-1算法进行改进:变换原始逻辑函数、变换寄存器初始值、变换每一轮的轮常数和修改算法迭代流程。通过依赖性测试、减少轮数的雪崩效应测试、雪崩因子测试表明改进后的算法在安全性上较改进前有所提高。效率测试表明改进后的算法在效率上较改进前没有降低。SHA-2算法是2002年美国NIST根据实际情况在SHA-1的基础之上增加了输出长度,形成的SHA-224、SHA-256、SHA-384、SHA-512算法等一系列算法。本文对SHA-2算法的改进,主要是以SHA-256为代表,从压缩函数的改进和迭代流程两方面进行改进。通过模差分攻击表明,改进后的算法在安全性上较改进前有所提高。效率测试表明,改进后的算法在效率上略优于改进前。本文分析了分组长度和迭代结构对算法效率和安全性的影响,参照AES的分组长度、Whirlpool的构造方法和Festel结构,设计一个利用分组密码构造的Hash函数AWF。依赖性测试和雪崩因子的测试表明该算法满足现代Hash函数的安全性要求。分析和测试表明AWF能够抵抗现有的Hash函数的攻击。在效率上,在双核平台下,AWF略优于SHA-2算法;在四核平台下约是SHA-2算法的两倍。在单核、双核、四核平台下,AWF的效率是Whirlpool的两倍左右,在八核平台下与Whirlpool算法相当。