SHA-1(安全散列算法1)是一种密码散列函数,SHA-1可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。
SHA-1(英语:Secure Hash Algorithm 1,中文名:安全散列算法 1)是一种密码散列函数,美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦数据处理标准(FIPS)。SHA-1 可以生成一个被称为消息摘要的 160 位(20 字节)散列值,散列值通常的呈现形式为 40 个十六进制数。
介绍
SHA-1(英语:Secure Hash Algorithm 1,中文名:安全散列算法 1)是一种密码散列函数,美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦数据处理标准(FIPS)。SHA-1 可以生成一个被称为消息摘要的 160 位(20 字节)散列值,散列值通常的呈现形式为 40 个十六进制数。
SHA-1 已经不再视为可抵御有充足资金、充足计算资源的攻击者。2005 年,密码分析人员发现了对 SHA-1 的有效攻击方法,这表明该算法可能不够安全,不能继续使用,自 2010 年以来,许多组织建议用 SHA-2 或 SHA-3 来替换 SHA-1。Microsoft、Google 以及 Mozilla 都宣布,它们旗下的浏览器将在 2017 年前停止接受使用 SHA-1 算法签名的 SSL 证书。
2017 年 2 月 23 日,CWI Amsterdam 与 Google 宣布了一个成功的 SHA-1 碰撞攻击,发布了两份内容不同但 SHA-1 散列值相同的 PDF 文件作为概念证明。
SHA-0 和 SHA-1
最初载明的算法于 1993 年发布,称做安全散列标准(Secure Hash Standard),FIPSPUB 180。这个版本现在常被称为 SHA-0。它在发布之后很快就被 NSA 撤回,并且由 1995 年发布的修订版本 FIPS PUB 180-1(通常称为 SHA-1)取代。SHA-1 和 SHA-0 的算法只在压缩函数的消息转换部分差了一个比特的循环位移。根据 NSA 的说法,它修正了一个在原始算法中会降低散列安全性的弱点。然而 NSA 并没有提供任何进一步的解释或证明该弱点已被修正。而后 SHA-0 和 SHA-1 的弱点相继被攻破,SHA-1 似乎是显得比 SHA-0 有抵抗性,这多少证实了 NSA 当初修正算法以增进安全性的声明。
SHA-0 和 SHA-1 可将一个最大 2 比特的消息,转换成一串 160 位的消息摘要;其设计原理相似于 MIT 教授 Ronald L. Rivest 所设计的密码学散列算法 MD4 和 MD5。