文章目录
- 一、Hash函数概述
-
- 1.1、什么是Hash函数?
- 1.2、Hash函数分类
- 1.3、Hash函数应满足的条件(重点):
- 1.4、对称MAC的一种Hash函数的一般结构
- 二、MD5(Message Digest,消息摘要)
-
- 2.1、特点:
- 2.2、产生散列值的过程
- 三、SHA1(Security Hash Algorithm,安全Hash算法)
-
- 3.1、参数信息及MD5比较(重点)
- 3.2、产生报文摘要的过程
- 四、MAC
-
- 4.1、**消息认证码(MAC)是如何实现消息认证的?**
- 4.2、常见的三种MAC构造方式
一、Hash函数概述 1.1、什么是Hash函数? Hash函数(也称散列函数)是一个将 任意长度的消息x序列映射为较短的、 固定长度的一个值y的函数。
1.2、Hash函数分类
- 带密钥的Hash函数:可将y和消息x一起在不安全的信道中传输
- 不带密钥的Hash函数:y必须安全存放,确保y不被篡改
- 从实用的角度:
- 已知x,求H(x)较为容易, 并可用硬件或软件快速实现
- 输入的消息可以任意长;输出的“指纹”固定长
- 从安全的角度**(重点)**:
- 原像问题:给定H(x),恢复x在计算上是不可行的;
- 第二原像问题:给定 (x, H(x)),找到一个x1(x != x1
),使得H(x1) = H(x) 在计算上不可行
- 碰撞问题:找到两个有意义的消息x1和x2,使得H(x1)=H(x2)几乎是不可能的。
- 原像问题:给定H(x),恢复x在计算上是不可行的;
文章图片
二、MD5(Message Digest,消息摘要) MD5是由密码学家 Rivest在1992年公布的单向散列函数;
2.1、特点:
- MD5采用了Merkle提出的迭代模型;
- 输入消息可以任意长;
- 每一次迭代处理512bit的消息分组;
- 最终输出散列值为128bit
文章图片
文章图片
三、SHA1(Security Hash Algorithm,安全Hash算法) 3.1、参数信息及MD5比较(重点)
SHA-1 | MD5 | |
---|---|---|
最大消息长度 | < 2^64 | 不限 |
消息分组长度 | 512 | 512 |
结构 | MerKle迭代 | MerKle迭代 |
链接变量长度 | 160 | 128 |
散列值长度 | 160 | 128 |
文章图片
四、MAC
- 消息认证码(MAC):一种确认完整性并进行认证的技术
- MAC是一种带密钥的函数h = MAC k(X)
- 两个输入:消息x和共享密钥K
- 输出:固定长度的数组,称之为MAC值或认证码
文章图片
4.2、常见的三种MAC构造方式
- 基于分组密码的MAC
- CBC-MAC : 认证码的长度 = 分组密码的密文长度
- 基于序列的MAC
- ZUC算法:密钥长度可选128,256 (两个算法只在密钥加载 方式及常数设置上有一些的差别)
- 基于密码hash函数的MAC——HMAC
- HMAC-MD5
- HMAC-SHA-1
推荐阅读
- 算法|永远退出机器学习界!从业八年,Reddit网友放弃高薪转投数学(风气太浮夸)
- NLP|2022搜狐校园 情感分析 × 推荐排序 算法大赛 baseline
- 神经科学工具箱|如何提取差异脑区的灰质体积与临床量表算相关(——基于体素的形态学方法(VBM))
- 算法|神经网络——优化器算法
- #|基于优化的离散点平滑算法
- 数据库|谷歌、斯坦福联合发文(我们为什么一定要用大模型())
- 机器学习|推荐系统,特征学习,协同过滤算法,均值归一化
- C语言经典100题|C语言经典100题——求一个二维数组的鞍点
- 数据结构|【八大排序④】归并排序、不基于比较的排序(计数排序、基数排序、桶排序)