单向散列函数算法

1 概述

单向散列函数算法也称Hash(哈希)算法,是一种将任意长度的消息压缩到某一固定长度(消息摘要的)的函数(该过程不可逆)。

特性:

  • 根据任意长度的信息计算固定长度的散列值;
  • 具备单向性(通过散列值不能反算出消息来)
  • 抗碰撞性

常用的算法包括:

  • MD4、MD5系列;
  • SHA系列;
  • 杂凑算法-国密SM3。

2 算法原理

2.1 MD5

MD5消息摘要算法对输入的任意长度的消息进行运算,产生一个128位的消息摘要。
(1)数据填充
在这里插入图片描述
(2)添加长度
在这里插入图片描述
(3)初始化变量
在这里插入图片描述
在这里插入图片描述
(4)数据处理
在这里插入图片描述
(5)输出
在这里插入图片描述

2.2 SHA系列

  • SHA-1:1995年发布,曾被视为是MD5(更早之前被广为使用的杂凑函数)的后继者。但SHA-1的安全性在2000年以后已经不被大多数的加密场景所接受。2017年荷兰密码学研究小组CWI和Google正式宣布攻破了SHA-1
  • SHA-2:2001年发布,包括SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256。它的演算法跟SHA-1基本上仍然相似。
  • SHA-3:2015年正式发布,SHA-3并不是要取代SHA-2,因为SHA-2目前并没有出现明显的弱点。由于对MD5出现成功的破解,以及对SHA-0和SHA-1出现理论上破解的方法,NIST感觉需要一个与之前演算法不同的,可替换的加密杂凑演算法,也就是现在的SHA-3。

SHA算法设计基于和MD5相同的原理,根据不同的初始化和逻辑运算,进而产生不同位数的固定串。

2.3 国密SM3

SM3是在SHA-256的基础上改进得到的,添加了压缩和消息扩展两个部分。生成的是一个固定的256位的串。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3 总结

单向散列函数算法具有以下几个共同特性:

  • 实现流程相同,都是数据填充、添加长度、初始化变量、数据处理、输出的过程;
  • 相同的实现原理,定义初始化变量及逻辑运算函数进行数据处理;
  • 在向前衍生发展的,在数据处理中进行改进。

该类算法的关键点是:定义逻辑运算函数,数据移位,运算过程迭代。

4 参考

[1]《加密与解密 第4版》单向散列算法
[2]《SM3密码杂凑算法》

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皮皮姑娘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值