Hash函数的设计与分析开题报告
2020-04-19 21:09:15
1. 研究目的与意义(文献综述)
密码学是一门既古老又年轻的学科,数千年前便诞生了最为原始的密码技术,然而直到二十世纪,密码学才迎来了它蓬勃发展的黄金时期。在前人的聪明才智与不懈探索下,密码学逐渐发展,在密码家族里有了古典密码、分组密码、对称密码、公钥密码、序列密码等新成员,渐渐地有了较为完善的体系,而本文主要就密码学体系的一大支柱——hash函数,来进行简单的研究与分析。
hash函数,一般翻译为“散列函数”,又称“杂凑函数”,也有直接音译为"哈希"的,它是一种单项密码体制,是一个从明文到密文的不可逆映射,只有加密过程,没有解密过程。hash函数把任意长度的输入消息(message),通过散列算法,变换成固定长度的输出(散列,或称消息摘要)。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
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-2算法是2002年美国nist根据实际情况在sha-1的基础之上增加了输出长度,形成的sha-224、sha-256、sha-384、sha-512算法等一系列算法。
2. 研究的基本内容与方案
本次设计旨在:通过查阅文献资料,自我消化与理解后,了解当前多种hash函数算法的构造,掌握hash函数的基本原理,深刻分析这些hash函数,针对具体环境,提出hash函数的设计方法,并对它进行安全性分析。
现有的hash算法很多,md5 和 sha1 可以说是目前应用最广泛的hash算法,本次研究将以这两者为核心,分析其原理、构造、实现以及优缺点,并设法改进或者提出改进思路。 而md5与sha1都是以 md4 为基础设计的,本次设计思路为:由简入深、由易而难、逐步深入,通过较为基础的md算法,推广到应用较为广泛的md5以及sha1等其他算法。散列函数的基本原理将会在论文中具体描述与分析,下面仅就当前应用较多的md算法与sha1算法作简单的描述与介绍,深入的分析与设计在后文中也会具体给出。
1) md4
3. 研究计划与安排
1-3周:查阅文献,完成开题报告
4-6周:总体设计,完成论文综述
7-10周:设计算法,功能模块设计
4. 参考文献(12篇以上)
[1]龚征.轻量级hash函数研究[j].密码学报,2016,3(01):1-11.
[2]洪琪,周琴琴,王永亮,陈高峰.基于hash函数的md5算法研究和硬件实现[j].计算机工程,2013,39(03):137-141.
[3]张绍兰. 几类密码hash函数的设计和安全性分析[d].北京邮电大学,2011.