Journal of Information Security Research ›› 2015, Vol. 1 ›› Issue (1): 19-30.

Previous Articles     Next Articles

Survey of Hash Functions


  1. 1(Institute for Advanced Study, Tsinghua University, Beijing 100084) 2(Key Laboatory of Cryptologic Technology and Inofrmation Security, Ministry of Education, Shandong University, Jinan 250100) 3(Department of Computer Science and Technology, Tsinghua University, Beijing 100084)
  • Received:2015-09-20 Online:2015-10-05 Published:2016-01-18



  1. 1(清华大学高等研究院 北京 100084) 2(山东大学密码技术与信息安全教育部重点实验室 济南 250100) 3(清华大学计算机系 北京 100084
  • 基金资助:
    国家“九七三”重点基础研究发展计划基金项目(2013CB834205);国家自然科学基金项目(61133013, 61373142)

Abstract: One of the fundamental primitives in modern cryptography is the cryptographic hash functions, often informally called hash functions. They are used to compress messages of arbitrary length to fixed length hash values which are also called hash codes, message digests or digital fingerprints. A primary motivation for cryptographic hash functions is that they serve as compact representative images of input messages, which they can uniquely identify. Changing a single letter will change most of the digits in the hash code. The most common cryptographic uses of hash functions are with digital signature and for data integrity. Hash functions are frequently used in digital signature schemes to compress large messages for processing by public-key cryptosystems such as RSA. They are also used to design message authentication codes (MACs) and many secure cryptographic protocols. Hash functions occur as components in various cryptographic applications (e.g. protection of pass-phrases, protocols for payment, broadcast authentication etc.), where usually their property as a computational one-way function is used. So the study of the hash functions is of great significance in the cryptanalysis field.

Key words: cryptographic hash function, collision attack, preimage attack, MD5 algorithm, SHA-1 algorithm, SHA-3 algorithm

摘要: 密码杂凑算法是现代密码学中的基本工具,它能够将任意长度的消息压缩成固定长度的摘要. 杂凑值又称为杂凑码,消息摘要或数字指纹. 通常密码杂凑算法被非正式地称为杂凑算法. 杂凑算法的重要性就是能够赋予每个消息唯一的“数字指纹”,即使更改该消息的一个字母,对应的杂凑之也会变为截然不同的“指纹”. 杂凑算法在现代密码学中有着极其重要的作用,它最常用的用途是用在数字签名和数据完整性保护中. 杂凑算法是数字签名的核心技术,通常用公钥密码算法如RSA进行数字签名时,一般不是对消息直接签名,而是对消息的杂凑值进行签名,这样既可以减少计算量,提高效率,也可以破坏数字签名算法的某些代数结构,保障其安全性. 杂凑算法还是许多密码算法密码系统安全的基本前提条件,它可以用来设计消息认证码以及众多可证明安全协议,还广泛应用于口令保护协议、电子支付协议、广播认证协议等密码协议中. 因此对杂凑算法进行研究在密码学领域具有重要的意义.

关键词: 密码杂凑算法, 碰撞攻击, 原像攻击, MD5算法, SHA-1算法, SHA-3算法