密码学系列之:生日攻击

简介: 密码学系列之:生日攻击

密码学系列之:生日攻击


简介


生日攻击其实是一个概率论的问题,也就是说一个看起来很难发生的事情,事实上它发生的概率却很大。这种主观上和事实上的概率差距,让随机攻击成功的几率变的更高,这样的攻击就叫做生日攻击。


生日问题的由来


生日问题也叫做生日悖论,它是这样这样描述的。


假如随机选择n个人,那么这个n个人中有两个人的生日相同的概率是多少。如果要想概率是100%,那么只需要选择367个人就够了。因为只有366个生日日期(包括2月29日)。


如果想要概率达到99.9% ,那么只需要70个人就够了。50%的概率只需要23个人。


对于现在的幼儿园小朋友来说,一个班上差不多有30人,那么将会有大于50%的几率,班上有两个人的生日是一样的。


听起来是不是很神奇?跟我们第一映像中的基数是不是要少很多。


我们看一张概率图:


image.png


在实际应用中,可以应用生日问题中的概率模型,从而减少碰撞攻击的复杂度,或者来评估一个hash函数中可能出现碰撞攻击的几率。


怎么计算呢?


假如P(A) 是生日相同的概率,那么P(A) = 1 - P(A’) ,其中P(A’)是生日不同的概率。


一个人生日不同的概率是365/365,两个人生日不同的概率就是365/365 * 364/365 ,依次类推。


我们可以得到23个人生日不同的概率大概就是 0.492703。


也就是说23个人中有两个人生日相同的概率可以大于50%。


再看一张表来个更加直观的描述:


image.png

生日问题的衍生


生日问题的取值范围是在一年的365天之内,也就是说生日只可能有365种可能性。


我们将这个问题扩展一下到一般的情况,假设有一个函数f,它的输出范围是H,那么我们的攻击就是找到两个不同的x,y,让f(x)=f(y)。


这时候,我们可以称x和y发生了碰撞。


根据概率论的公式,我们想要达到50%的几率,那么需要尝试的次数是:


image.png

如果以bits位来表示可能计算出的结果的话,我们可以参考下面的概率表:


image.png

生日攻击的应用


生日攻击一般应用在数字签名中。一般来说为了对机密消息进行签名,因为加密的限制,如果消息很大的情况下,不可能对所有的消息进行签名,通常会对消息计算hash值,然后对这个hash值进行签名。


比如有人想做一个欺诈性的合同,那么会在原合同的基础上进行修改,不断的进行尝试,从而找到一个修改后的合同,让合同和之前合同的hash是一样的,从而导致两者的签名也是一样的。


怎么抵御这种攻击呢?根据我们生日攻击的公式,当然是将签名方案使用的哈希函数的输出长度选择得足够大,以使生日攻击在计算上变得不可行。


相关文章
|
机器学习/深度学习 算法 安全
密码学系列之五:MD5、SHA1——一文搞懂哈希函数
密码学系列之五:MD5、SHA1——一文搞懂哈希函数
11368 113
|
算法 数据安全/隐私保护
【密码学】一文读懂Whirlpool
首先呢,祝大家今晚节日快乐,Whirlpool是由Vincent Rijmen(高级加密标准的联合创始人)和Paulo S.L.M.Barreto设计的,后者于2000年首次提出了它。
1968 152
【密码学】一文读懂Whirlpool
|
数据可视化 数据挖掘
基于Bert的文本聚类工具:BERTopic
基于Bert的文本聚类工具:BERTopic
2594 0
基于Bert的文本聚类工具:BERTopic
|
安全 物联网 数据安全/隐私保护
智能家居安全:未来技术与隐私保护的平衡
在智能科技飞速发展的今天,智能家居已成为日常生活的一部分。然而,随着设备智能化程度的提高,数据安全问题也日益凸显。本文将探讨智能家居技术的最新发展趋势,并分析如何在提升生活便利性的同时,确保用户隐私和数据安全不被侵犯。我们将从技术层面剖析智能家居系统的潜在风险,并提出有效的防护策略,旨在为读者提供一个既先进又安全的智能家居使用环境。
|
机器学习/深度学习 存储 安全
YOLOv8火灾和烟雾检测
YOLOv8火灾和烟雾检测
|
PyTorch Shell API
Ascend Extension for PyTorch的源码解析
本文介绍了Ascend对PyTorch代码的适配过程,包括源码下载、编译步骤及常见问题,详细解析了torch-npu编译后的文件结构和三种实现昇腾NPU算子调用的方式:通过torch的register方式、定义算子方式和API重定向映射方式。这对于开发者理解和使用Ascend平台上的PyTorch具有重要指导意义。
|
JSON 数据格式 索引
实际使用Elasticdump工具对Elasticsearch集群进行数据备份和数据还原
就可以通过Elasticsearch的导入导出工具Elasticdump来实现,可以将Elasticsearch不同集群的数据进行索引备份和还原。
759 0
|
边缘计算 自动驾驶 5G
5G赋能多接入边缘计算 (MEC):加速万物互联的未来
5G赋能多接入边缘计算 (MEC):加速万物互联的未来
1632 6
|
存储 缓存 Windows
软件体系结构 - 流水线技术
软件体系结构 - 流水线技术
906 0
|
存储 算法 安全
MD5哈希算法:原理、应用与安全性深入解析
MD5哈希算法:原理、应用与安全性深入解析