5.2 生日攻击

5.2 生日攻击

生日攻击相关问题

问题1---第Ⅰ类生日攻击问题

已知一杂凑函数H有n个可能的输出,H(x)是一个特定的输出,如果随机取k个输入,则至少有一个输入y使得H(y)=H(x)的概率为0.5时,k有多大?

问题2---生日悖论--第Ⅱ类生日攻击:寻找函数H的具有相同输出的两个任意输入的攻击方式。

在k个人中至少有两个人的生日相同的概率大于0.5时,k至少多大?

解释

  • 设有k个整数项,每一项都在1到n之间等可能地取值。
  • P(n, k): k个整数项中至少有两个取值相同的概率生日悖论就是求使得P(365,k)≥0.5的最小k。
  • Q(365,k): k个数据项中任意两个取值都不同的概率。

如果k>365,则不可能使得任意两个数据都不相同,因此假定k<365。

k个数据项中任意两个都不相同的所有取值方式数为

365×364×·×(365k+1)=365!(365k)!

如果去掉任意两个都不相同这一限制条件,可得k个数据项中所有取值方式数为365^k。所以可得

Q(365,k)=365!(365k)!365k

P(365,k)=1Q(365,k)=1365!(365k)!365k

结果

  • 当k=23时,P(365,23)=0.5073,即上述问题只需23人,人数如此之少。
  • 若k=100,则P(365,100)=0.9999997,即获得如此大的概率。
  • 之所以称这一问题是悖论是因为当人数k给定时,得到的至少有两个人的生日相同的概率比想象的要大得多。

问题--生日悖论推广问题

已知一个在1到n之间均匀分布的整数型随机变量,若该变量的k个取值中至少有两个取值相同的概率大千0.5,则k至少多大?

P(n,k)=1n!(nk)!nk

令P(n,k) > 0.5 可得

k=1.18nn

若取n=365,则

k=1.1836522.54

生日攻击

设杂凑函数H有2^m个可能的输出(即输出长m比特),如果H的k个随机输入中至少有两个产生相同输出的概率大于0.5,则

k2m

安全应用

输出长度与碰撞

  • 这种生日攻击给出了消息摘要长度的下界,一个40比特的消息摘要是非常不安全的。
  • 因为在大约220个(大约100万)个随机值中就能以1/2的概率找到一个碰撞。
  • 通常建议消息摘要的最小可接受的长度为128比特,在DSS签名标准中使用160比特的消息摘要就是基于这个考虑。
posted @   Dinesaw  阅读(279)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示