什么是安全哈希算法?SHA系列算法核心思想和特点?

2023年2月27日15:38:55什么是安全哈希算法?SHA系列算法核心思想和特点?已关闭评论

SHA算法概述

SHA算法(Security Hash Algorithm,安全哈希算法)是美国的NIST(National Institute of Standards and Technology,美国国家标准与技术研究院)和NSA(National Security Agency,美国国家安全局)设计的一种标准的Hash算法,是安全性很高的一种Hash算法。SHA算法经过密码学专家多年来的发展和改进已日益完善,现在已成为公认的、最安全的散列算法之一,并被广泛使用。

SHA是一系列的哈希算法,有SHA-1、SHA-2、SHA-3三大类,而SHA-1已经被破解,SHA-3应用较少。SHA-1是第一代SHA算法标准,后来的SHA-224、SHA-256、SHA-384和SHA-512被统称为SHA-2。目前应用广泛、相对安全的是SHA-2算法。

SHA算法是FIPS(Federal Information Processing Standards,联邦信息处理标准)所认证的安全散列算法。同SM3一样,SHA算法能对输入的消息计算出长度固定的字符串(又称消息摘要)。各种SHA算法的数据比较如图5-15所示,其中的长度单位均为比特位。

什么是安全哈希算法?SHA系列算法核心思想和特点?

图5-15

从中我们不难发现,SHA-224和SHA-256、SHA-384和SHA-512在消息长度、分组长度、计算字长以及计算步骤各方面都是一致的。事实上,通常认为SHA-224是SHA-256的缩减版,而SHA-384是SHA-512的缩减版。

SHA由美国标准与技术研究所(NIST)设计并于1993年发布,该版本称为SHA-0,不过很快被发现存在安全隐患,所以于1995年又发布了SHA-1。

2002年,NIST分别发布了SHA-256、SHA-384、SHA-512,这些算法统称SHA-2。2008年又新增了SHA-224。

SHA-1不太安全,目前SHA-2各版本已成为主流。

SHA系列算法核心思想和特点

该算法的思想是接收一段明文,然后以一种不可逆的方式将其转换成一段密文,也可以简单地理解为取一串输入码,并把它们转化为长度较短、位数固定的输出序列(散列值)的过程。

1.单向性特点

单向散列函数的安全性在于其产生散列值的操作过程具有较强的单向性。如果在输入序列中嵌入密码,那么任何人在不知道密码的情况下,都不能产生正确的散列值,从而保证其安全性。

2.主要用途

通过散列算法可实现数字签名。数字签名的原理是将要传送的明文通过一种函数运算(Hash)转换成报文摘要,报文摘要加密后与明文一起传送给接收方,接收方将接收的明文产生的新报文摘要和发送方发来的报文摘要比较,比较结果一致就表示明文未被改动,不一致则表示明文已被篡改。

  • A+
所属分类:JAVA
  • 版权声明:本篇文章(包括图片)来自网络,由程序自动采集,著作权(版权)归原作者所有,如有侵权联系我们删除,联系方式(QQ:452038415)。