【密码学】五、消息认证和杂凑(hash)算法

1. 一些基本概念
1.1 抗击攻击的方式

抗击被动攻击:加密
抗击主动攻击:消息认证

消息认证是一个过程,用以验证接收消息的真实性和完整性,同时还用于验证消息的顺序性和时间性。


认证符:用于认证消息的数值
认证符的产生方法:消息认证码 MAC 和杂凑 hash 函数

1.2 消息认证功能

如果计算的 MAC 与接收到的 MAC 一致,则实现了以下功能:
①接收方相信发送方发来的消息未被篡改
②接收方相信发送方不是冒充的。

2. 杂凑函数应满足的条件(简答题)

杂凑函数的目的是为需认证的数据产生一个“指纹”。为了能够实现对数据的认证,杂凑函数应满足以下条件:

①函数的输入可以是任意长。

②函数的输出是固定长。

③已知 x,求 H(x) = h 较为容易,可用硬件或软件实现。

④已知 h,不能反推出 H(x),这一性质称为函数的单向性,称 H(x) 为单向杂凑函数

⑤已知 x,找出 y(y ≠ x) 使得 H(y) = H(x) 在计算上是不可行的。如果单向杂凑函数满足这一性质,则称其为弱单向杂凑函数

⑥找出任意两个不同的输入 x、y ,使得 H(y) = H(x) 在计算上是不可行的。强单向杂凑函数

3. 生日攻击(可能选择填空)

第Ⅰ类生日攻击问题描述:已知一杂凑函数 H 有 n 个可能的输出,H(x) 是一个特定的输出,如果对 H 随机取 k 个输入,则至少有一个输入 y 使得 H(y) = H(x) 的概率为 0.5 时,k 有多大?

根据概率论公式,想要达到 50% 的几率,那么需要尝试的次数是:
H 表示输入的可能数量
在这里插入图片描述

4. 一些 Hash 算法的参数
MD5SHA-1RIPEMD-160
输出长度128 bits160 bits160 bits
处理基本单位512 bits512 bits512 bits
步数64(4 rounds of 16)80(4 rounds of 20)160(5paired rounds of 16)
最大消息长度2^64 - 1 bits2^64 -1 bits
轮数445
5. MD5 杂凑算法
  • 输入:任意长的消息
  • 分组:512 比特
  • 输出:128 比特的消息摘要

处理过程:
①对消息填充
②附加消息的长度
③对MD缓冲区初始化
④以分组为单位对消息进行处理
⑤输出

6. SHA 算法
  • 输入:小于 2^64 比特长的任意消息,分为 512 比特长的分组
  • 输出:160比特长的消息摘要

处理过程:
①对消息填充
②附加消息的长度
③对 MD 缓冲区初始化
④以分组为单位对消息进行处理

7. SHA与MD5的比较

两个算法极为相似

  1. 抗穷搜索攻击的强度
    SHA 抗击穷搜索攻击的强度高于 MD5 抗击穷搜索攻击的强度。

  2. 抗击密码分析攻击的强度
    由于 SHA 的设计准则未被公开,所以它抗击密码分析攻击的强度较难判断,似乎高于 MD5 的强度。

  3. 速度
    SHA 的速度要比 MD5 的速度慢。

  4. 简洁与紧致性
    两个算法描述简单,实现也较为简单

  5. 数据的存储方式
    MD5 使用 little-endian 方式,SHA 使用 big-endian 方式。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值