HASH和HMAC(1):HASH和HMAC概述

 HASH(哈希)函数是信息安全中一个非常重要的工具,它对一个任意长度的消息m施加运算,返回一个固定长度的HASH值h(m),HASH函数h是公开的,对处理过程不用保密。HASH值又被称为哈希值、杂凑值、散列值、消息摘要等。

HASH的过程是单向的,逆向操作难以完成,而且碰撞(两个不同的输入产生相同的HASH值)发生的概率非常小。HASH函数消息中单个bit的变化将会导致哈希值中大约一半的bit发生变化。

常见的HASH算法有:

  • MD5(MD5 Message-Digest Algorithm)

MD5由美国密码学家Ronald Linn Rivest设计,于1992公开,用以取代MD4算法,在RFC 1321标准被加以规范。1996年该算法被证实存在弱点,可以被破解。2004年证实MD5无法防止碰撞,因此不适用于安全性认证。

  • SHA1(Secure Hash Algorithm 1)

SHA1由美国国家安全局设计,并由美国国家标准技术研究所(NIST)在1995年发布为联邦数据处理标准FIPS PUB180-1。SHA1已被攻破,不再适用于安全性认证。

  • SHA2(Secure Hash Algorithm 2)

SHA2由美国国家安全局设计,其下可再分为6个不同的算法标准:SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256。

NIST发布了3个额外的SHA变体,这3个函数都将消息对应到更长的消息摘要。以它们的摘要长度回在原名面来命名。NIST 2001年发布 的FIPS PUB 180-2草稿中定义了SHA-256、SHA-384和SHA-512。2002年发布 包含SHA-1的FIPS PUB180-2正式版本。2004年2月发布了一次FIPS PUB 180-2的变更通知,加入了SHA-224,为了匹配双密钥3DES所需的密钥长度而定义。

  • SHA3(Secure Hash Algorithm 3)

SHA3使用基于Keccak算法实现。

2012年10月2日Keccak算法被选为NIST散列函数竞赛的胜利者。SHA3并不是要为了取代SHA2,因为SHA2并没有出现明显的弱点。由于MD5和SHA1被成功破解,NIST需要一个与之前算法不同,可替换的HASH算法,也就是SHA3。2015年8月5日NIST发布 了FIPS 202定义了SHA3算法。SHA-3包括:SHA3-224、SHA3-256、SHA3-3-84、SHA3-512。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值