IST-3-哈希函数Hashes

本文详细介绍了哈希函数在数据完整性保护中的应用,包括加密哈希函数、生日攻击和存储密码的方法。讨论了哈希函数的安全需求,如原像抵抗和抗碰撞,并提及了MD5和SHA系列哈希函数。同时,阐述了使用HMAC来保护消息完整性和真实性的机制。
摘要由CSDN通过智能技术生成

哈希函数Hashes

数据完整性保护

  • 场景与问题
  • Alice通过一个不安全的通道向Bob发送消息M。
  • 消息M的完整性可能由于以下原因被破坏:
    • a. 由于噪声或错误而损坏,
    • b. 被攻击者篡改(内容修改),
    • c. 其他原因
  • 假设Bob接收到的消息为M’,那么Bob要如何确定M’的完整性,保证它与原M相同呢?
  • 方法:
    • 校验和,循环冗余码(CRC)
    • 消息摘要-密码哈希函数的输出

加密哈希函数

  • 可以使用加密哈希函数h(·)来保护数据完整性
  • 密码哈希函数h(·)的属性:
    • 给定任意x,很容易计算,y = h(x)
    • 固定长度输出y从任意长度输入x
    • 雪崩效应- x的微小变化会引起y的巨大变化
  • 安全需求
    • 原象阻力(单向,不可逆)-不能找到x给定y
    • 抗碰撞- 2种:弱、强

哈希函数的安全要求

  • 原像电阻(单向)
    给定哈希函数h(·),且z = h(x),不能得到x = h−1(z)
  • 第二预像(弱碰撞)抗
    给定x1,求出x2是不可行的,其中x2 = x1使h(x1) = h(x2)
  • 抗碰撞(或强抗碰撞):
    不能找到任意一对x1和x2使h(x1) = h(x2)
  • 常用的哈希函数:MD5, SHA-1, SHA-256, RIPEMD

生日攻击Birthday attack

  • 在一个可以取N个可能值的总体中,总是有可能在t个成员大小的样本中找到至少一对具有相同值的成员。

例子:
考虑一个人的生日,只包括日和月,不包括年,只有N = 365个可能的值。
可以看出,在t =23人的样本容量下,找到2个人生日相同的概率≈50%。

  • 对于n位哈希,对于任意输入x,可能的输出数是2n。总是有可能找到x的t个样本,使它们中的一对具有相同的哈希输出。这就是所谓的生日袭击。

碰撞的概率

•从N个样本中选取t个样本,发现无碰撞的概率PnoCollision
在这里插入图片描述

•因此在t个样本中发现碰撞/s的概率为
在这里插入图片描述

生日攻击碰撞概率

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

星野时雨

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

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

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

打赏作者

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

抵扣说明:

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

余额充值