当前位置: 首页 > news >正文

美国第1代哈希散列算法SHA-1

美国第1代哈希散列算法SHA-1

SHA-1(英语:Secure Hash Algorithm 1,中文名:安全散列算法1)是一种密码散列函数,美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦数据处理标准(FIPS)。SHA-1是SHA家族的第一个成员,后续还有SHA-224、SHA-256、SHA-384、SHA-512等版本。SHA-1与SHA-0几乎相同,除了前者比后者多了个循环移位。SHA-1采用了MD结构,其压缩函数的输入为512比特的消息块和160比特的链接变量。

SHA-1算法的哈希计算过程为:先执行消息填充算法(假设填充后的消息可以分为N个512bit的消息块),然后对每一个512bit消息块,先执行消息扩展算法(输入为16个消息字,输出为80个消息字),然后执行消息压缩算法(输入为80个消息字和5个移位寄存器值,输出为5个移位寄存器值)。循环N次后,5个移位寄存器的值即为SHA-1计算的Hash值。

SHA-1杂凑函数的三大操作:消息填充算法、消息扩展算法、消息压缩算法。

(1)消息填充算法

在运算之前先要对信息进行处理,在原始信息中增加填充位(1-512位,由一个1位和多个0位组成),使填充后的消息长度等于一个值,即比512的倍数少64位。然后在最后添加64比特的原始消息长度。例如消息为“Hello,World!”,则消息完整填充如下表:

长度小于264比特的消息M,经过填充,长度变为512比特的整数倍M*=M||1000||length,再分为512比特的消息块M*=M1||M2||||Mn,作为压缩函数的迭代输入。迭代链接变量的初始值取固定常数IV=(A0,B0,C0,D0,E0),当所有消息块都经过压缩函数处理后,得到的链值就作为最终的杂凑值。

(2)消息扩展算法

填充后的消息是512位的整数倍,把它们划分成512bit的分组,对于每一个512bit的分组分割成16个字(32bit),记为(M0,M1,……,M14,M15)。然后将这16个字用如下的扩展方式扩展成80个消息字。扩展方式为:

(3)消息压缩算法

SHA-1的压缩迭代函数一共需要80步,分成四轮来实现,每20步迭代称作一轮,每一轮使用不同的布尔函数Fj和常数Kj。第j轮第i步的步函数如下。

其中

等价于

链接变量的初始值IV为:

Kj为固定常数:

当80步迭代完成后,将初值和迭代值模加作为压缩函数的输出值(A0+A80,B0+B80,C0+C80,D0+D80,E0+E80)。

对每一个消息块依次进行上述80步迭代运算,当所有消息块计算完成之后,链接变量的值即为Hash运算的结果。

SHA-1算法(摘要值160bit)的安全性被认为强于MD5算法(摘要值128bit),但是弱于SHA-256(摘要值256bit)和SHA-512(摘要值512bit)等算法。随着国内外密码学者相继宣布找到SHA-1的实际碰撞,其已不再被推荐在有安全需求的环境中使用,因此大家转向使用安全性更高的SHA2算法。

相关文章:

  • 【自动化脚本工具】AutoHotkey (Windows)
  • 力扣的第34题 在排序数组中查找元素的第一个和最后一个位置
  • 深入理解 MySQL 8 C++ 源码:SELECT MOD(MONTH(NOW()), 2) 的函数执行过程
  • Cross-correlation 加速算法公式推导
  • 算法从0到100之【专题一】- 双指针第一练(数组划分、数组分块)
  • mysql云上安装慢问题解决
  • nasm - BasicWindow_64
  • 关于重启Pod后,CNI网络插件问题报错
  • AI 内容检测工具全解析,助力内容创作无忧
  • 蓝桥杯备考策略
  • Linux常用操作
  • java每日精进 2.20 MQ相关复健
  • 【量化策略】均值回归策略
  • 蓝桥杯 2.基础算法
  • gen_gauss_filter用于检测带方向的线条
  • 运维脚本——6.资源优化
  • 斐波那契数列模型:在动态规划的丝绸之路上追寻斐波那契的足迹(下)
  • 系统思考—价格策略
  • 【CSS】---- CSS 变量,实现样式和动画函数复用
  • MyBatis框架七:缓存
  • 商务部:外贸优品中华行活动采购意向超167亿元
  • 江西望仙谷回应“游客凌晨等不到接驳车”:已限流,接驳车运行时间延长
  • 苹果第二财季营收增长5%,受关税政策影响预计下一财季新增9亿美元成本
  • 张建华评《俄国和法国》|埃莲娜·唐科斯的俄法关系史研究
  • “译通天下·言立寰宇”:华东师大翻译家的精神传承
  • 解放日报:让算力像“水电煤”赋能千行百业