生日悖论与生日攻击
生日悖论公式
![生日悖论公式](https://img.taocdn.com/s3/m/655d3ad3541810a6f524ccbff121dd36a32dc4dd.png)
生日悖论公式生日悖论是指在一个群体中,只要人数达到一定数量,至少会有两个人具有相同的生日。
这个悖论在数学领域被广泛探讨,其结果却常常超出人们的直觉。
本文将从数学原理、实际示例以及对我们生活的指导意义三个方面,生动全面地解释生日悖论。
首先,我们来看看生日悖论的数学原理。
在一个群体中,假设有n 个人,那么每个人的生日都有365种可能性(不考虑闰年)。
第一个人的生日可以是任何一天,第二个人的生日也可以是任何一天……直到第n个人的生日。
因此,第n个人和前面的n-1个人必须避免选择相同的生日,即他的生日选择余地只剩下了365-(n-1)天。
这时,我们可以使用乘法原理来计算选择不同生日的概率,即P(n)=1*365/(365^1)*364/(365^2)*......*(365-(n-1))/(365^n-1)。
然而,我们更关心的是至少有两个人生日相同的概率,即1-P(n)。
通过代入不同的n值,我们可以看到,当群体中的人数超过23个时,至少有两个人生日相同的概率已经超过一半了,这是一个惊人的事实。
其次,我们可以通过实际示例来理解生日悖论。
假设我们有一个教室里有30个学生,我们随机选择一位学生,他的生日是1月1日的概率是365/365=1。
我们再选择第二位学生,如果他的生日不是1月1日,概率是364/365。
依次类推,直到选择第30位学生。
我们可以使用乘法原理来计算这个概率,即P(30)=365/365*364/365*......*336/365≈0.706。
也就是说,教室里至少有两个学生生日相同的概率是70.6%。
这个实际示例说明了生日悖论在现实生活中的应用,尤其是在人群较大的情况下,生日相同的可能性更大。
最后,生日悖论给我们生活中的某些方面带来了指导意义。
首先,生日悖论提醒我们在安排活动或集会时要慎重考虑,因为可能出现生日相同的情况。
这对于组织生日派对、选举日期等都具有重要意义。
其次,生日悖论也提醒我们对于大数据和统计结果要保持理性和客观。
生日悖论
![生日悖论](https://img.taocdn.com/s3/m/933b5ac5bb4cf7ec4afed00f.png)
生日悖论生日悖论(Birthday paradox)生日悖论 (1)什么是生日悖论 (1)生日悖论的理解 (1)概率估计 (2)数学论证(非数字方法) (3)泛化和逼近 (5)N=365的结果 (5)泛化 (5)反算问题 (6)举例 (6)经验性测试 (7)应用 (7)近似匹配 (8)参考文献 (8)什么是生日悖论生日悖论(Birthday paradox)是指,如果一个房间里有23个或23个以上的人,那么至少有两个人的生日相同的概率要大于50%。
这就意味着在一个典型的标准小学班级(30人)中,存在两人生日相同的可能性更高。
对于60或者更多的人,这种概率要大于99%。
从引起逻辑矛盾的角度来说生日悖论并不是一种悖论,从这个数学事实与一般直觉相抵触的意义上,它才称得上是一个悖论。
大多数人会认为,23人中有2人生日相同的概率应该远远小于50%。
计算与此相关的概率被称为生日问题,在这个问题之后的数学理论已被用于设计著名的密码攻击方法:生日攻击。
生日悖论的理解理解生日悖论的关键在于领会相同生日的搭配可以是相当多的。
如在前面所提到的例子,23个人可以产生种不同的搭配,而这每一种搭配都有成功相等的可能。
从这样的角度看,在253种搭配中产生一对成功的配对也并不是那样的不可思议。
换一个角度,如果你进入了一个有着22个人的房间,房间里的人中会和你有相同生日的概率便不是50:50了,而是变得非常低。
原因是这时候只能产生22种不同的搭配。
生日问题实际上是在问任何23个人中会有两人生日相同的概率是多少。
概率估计假设有n个人在同一房间内,如果要计算有两个人在同一日出生的机率,在不考虑特殊因素的前提下,例如闰年、双胞胎,假设一年365日出生概率是平均分布的(现实生活中,出生机率不是平均分布的)。
计算机率的方法是,首先找出p(n)表示n个人中,每个人的生日日期都不同的概率。
假如n> 365,根据鸽巢原理其概率为0,假设n≤ 365,则概率为:因为第二个人不能跟第一个人有相同的生日(概率是364/365),第三个人不能跟前两个人生日相同(概率为363/365),依此类推。
密码学-散列函数
![密码学-散列函数](https://img.taocdn.com/s3/m/3270344127284b73f2425090.png)
散列函数常用于报文鉴别和数字签名; 散列函数是一个多对一的函数;
因此在理论上,必定存在不同的报文对应同样的散列, 但这种情况在实际中必须不可能出现(计算上不可行)
散列函数本身不是保密的;
散列函数没有密钥的参与,散列值仅仅是报文的函数
1)攻击者对合法报文创建 2m/2 个变种,所有这些变种本质上都和 合法报文表示同样的意思;
2)同样,攻击者再对伪造报文创建 2m/2 个变种; 3)比较这两个集合,以期发现任意一对能产生相同散列值的报文
对(合法报文变种、伪造报文变种),根据生日悖论,找到这样一对 报文的概率Pr > 0.5; 4)攻击者向签名者出示合法报文变种,让签名者对合法报文变种 的散列值签名;然后攻击者用伪造报文变种代替合法报文变种, 并声称签名者对伪造报文变种签名了。由于这两个报文具有相同 的散列值,因此欺骗总能成功。
与此相对,如要求选择 K 个人,其中至少有一个人的 生日和某个指定的生日相同的概率大于 0.5,问 k 的最 小值是多少?(结论是 k >= 365/2 ≈183)
生日攻击
生日悖论实际上是如下问题的特例:已知一个在 1 到 n 之 间均匀分布的整数型随机变量,若该变量的一个 k 个取值 的集合中至少有两个取值相同的概率大于 0.5,则 k 至少 多大? 该问题的一般结论是:k≈1.18 * n1/2 例如对于生日悖论,有 n=365,因此 k ≈ 22.5。
在计算上不可行(强抗碰撞)。
不同安全特性的比较
显然,强抗碰撞特性包含弱抗碰撞特性; 另外可以证明,强抗碰撞特性包含单向特
性; 因此,散列函数满足强抗碰撞特性是充分
浅谈“生日攻击”和“生日悖论”
![浅谈“生日攻击”和“生日悖论”](https://img.taocdn.com/s3/m/16e4b77ba417866fb84a8edd.png)
密码学课程报告学生姓名:xxxxxx学号: xxxx浅谈“生日悖论”与“生日攻击”在开始正文之前,我想先简单地说明一下,我选择这个话题的原因,主要有三点:第一,比较贴近生活和实际;第二,趣味性较强,便于讨论;第三,容易理解。
既然是谈到“生日悖论”和“生日攻击”,那么肯定是少不了“生日”二字了。
众所周知,我们每个人都有自己生日,在生活中,如果能够遇到与自己同一天生日的人,大多数的我们都会很惊喜,觉得这种缘分似乎很少见,又或者说这是一个很小的机率。
那我们是否有想过,假若在23个人当中,出现两个人是同一天生日的这种缘分的概率有多大呢?是5%?10%?还是20%?又或者是更多呢?下面我来一一和大家说明。
文章开始我不想长篇大论地把很多公式给搬上来,那样没意思,吊足了大家的胃口,却不受待见。
所以,在开始的时候,我就不打算写那么多计算过程,留着后面慢慢讨论和解释。
那么我告诉各位:23个人中,有两个人生日是同一天的概率约为50%(甚至比这个数值还高出那么一丢丢),在50个人中有相同生日的概率,竟然高达97%,这两个数值,这两个结果,各位是不是有点不太敢相信?哈哈......其实这个结果并没有算错,是经过科学计算而得出来的结果,是有理有据的,只是我们的直觉错了,科学与生活,就好比梦想和现实是一样:梦想往往是丰满的,现实呢,却常常是骨感的。
正因为经过科学方法计算出来的结果与我们日常生活的经验产生了如此大的落差,所以我们把这类问题称为“生日悖论(Birthday Paradox)”[1][2]。
什么是“生日悖论”?在很多课程中,常用“生日悖论来说明一些违背直觉的结果”。
生日悖论是指:要想使得k个人中至少有两个人生日相同的概率大于0.5的话,k最小可以是多少?[1]我们不把某一年有2月29日或者某两人是双胞胎这样的或者类似的外界因素算在内,只考虑纯粹的随机概率,也就是说每个人出生的日子都随机分布在一年365天的任何一天。
生日悖论计算公式
![生日悖论计算公式](https://img.taocdn.com/s3/m/9554c91ebf1e650e52ea551810a6f524ccbfcbe4.png)
生日悖论计算公式生日悖论是个挺有趣的数学概念呢!咱们先来说说啥是生日悖论。
比如说一个教室里有一群同学,你可能会觉得要很多很多人,才有可能出现两个人生日相同的情况。
但实际上,人数不需要特别多,就有比较大的概率会有人生日相同。
这和咱们一般的直觉不太一样,所以才叫悖论。
那生日悖论的计算公式是啥呢?假设一年 365 天,在一个有 n 个人的群体里,至少有两个人生日相同的概率可以用这个公式来计算:P =1 - 365! / [365^n * (365 - n)!] 。
这个公式看起来有点复杂,对吧?别担心,我给您举个例子来解释解释。
比如说一个班级有 23 个人,咱们来算算至少有两个人生日相同的概率。
把 23 代入到公式里,经过一番计算,您会发现这个概率居然超过了 50%!是不是很神奇?我想起之前给学生们讲这个生日悖论的时候,有个小家伙特别较真儿。
他一直说:“老师,我怎么就觉得不可能呢?”然后我就带着他们做了个小实验。
我让每个同学把自己生日的月份和日期写在小纸条上,放进一个盒子里。
等大家都写完放进去之后,我开始一张一张地拿出来念。
结果,还没念到一半呢,就发现有两个同学的生日是同一天!那个较真儿的小家伙眼睛瞪得大大的,一脸的不可思议。
其实生日悖论在生活中也有不少应用呢。
比如说在密码学里,它可以帮助我们评估随机生成的密钥出现重复的可能性;在统计学中,能用来估计样本的独立性和随机性。
再想想,如果在一个聚会上,您和新认识的朋友们聊起生日悖论,然后用这个公式算出大家生日相同的概率,那得多有意思呀!回到咱们这个计算公式,虽然它看起来有点让人头疼,但只要您多琢磨琢磨,多结合实际的例子去理解,就会发现数学的奇妙之处。
它能让我们看到那些看似不可能的事情,其实有着意想不到的可能性。
所以啊,别小看这个生日悖论计算公式,它背后藏着的可是大大的智慧和乐趣呢!。
算法导论-生日悖论
![算法导论-生日悖论](https://img.taocdn.com/s3/m/b1e3fd315627a5e9856a561252d380eb629423ef.png)
算法导论-⽣⽇悖论算法导论第五章讲到了⽣⽇悖论。
1、定义:⽣⽇悖论[1]是指,如果⼀个房间⾥有23个或23个以上的⼈,那么⾄少有两个⼈的相同的概率要⼤于50%。
这就意味着在⼀个典型的标准⼩学班级(30⼈)中,存在两⼈⽣⽇相同的可能性更⾼。
对于60或者更多的⼈,这种概率要⼤于99%。
从引起⽭盾的⾓度来说⽣⽇悖论并不是⼀种,从这个数学事实与⼀般相抵触的意义上,它才称得上是⼀个悖论。
⼤多数⼈会认为,23⼈中有2⼈⽣⽇相同的概率应该远远⽣⽇悖论,在这个问题之后的数学理论已被⽤于设计著名的密码攻击⽅法:⽣⽇攻击。
⼩于50%。
计算与此相关的被称为⽣⽇悖论它的计算⽅式是这样的: n个⼈可能的⽣⽇组合是365×365×365×……×365(共n个)个,记作a; n个⼈⽣⽇都不重复的组合是365×364×363×……×(366-n)个,记作b; 所以n个⼈⽣⽇不重复的概率是b/a,则n个⼈⽣⽇重复的概率是1-b/a。
只要有23⼈在⼀起,其中两⼈⽣⽇相同的概率就达到51%!具体细节维基百科[1]有分析。
⽣⽇悖论的本质就是,随着元素增多,出现重复元素的概率会以惊⼈速度增长,⽽我们低估了它的速度[2]。
2、推⼴:a.⼀个房间要有多少⼈,才能让某⼈与你⽣⽇相同的概率⾄少为1/2?(习题5.4-1)253b.⼀个聚会需要邀请多少⼈,才能让其中很可能有3个⼈的⽣⽇相同?(习题5.4-3)3、相关a.你和朋友参加聚会,包括你们两⼈在内⼀共有10个⼈在场。
你朋友想跟你打赌,说这⾥没有⼀个⼈⽣⽇和你相同,你就给他1元,没有⼀个⼈⽣⽇和你不同,他给你2元。
你会接受么?(坊间流传的google疯狂⾯试题)b.⽹上的⼀道推理题:⼩明和⼩强都是张⽼师的学⽣,张⽼师的⽣⽇是m⽉n⽇,2⼈都知道张⽼师的⽣⽇是下列10组中的⼀天,张⽼师把m值告诉了⼩明,把n值告诉了⼩强,张⽼师问他们知道他的⽣⽇是那⼀天吗?3⽉4⽇ 3⽉5⽇ 3⽉8⽇6⽉4⽇ 6⽉7⽇9⽉1⽇ 9⽉5⽇12⽉1⽇ 12⽉2⽇ 12⽉8⽇⼩明说:如果我不知道的话,⼩强肯定也不知道⼩强说:本来我也不知道,但是现在我知道了⼩明说:哦,那我也知道了请根据以上对话推断出张⽼师的⽣⽇是哪⼀天?4、参考:1.维基百科-⽣⽇问题:2.科学松⿏会,⽣⽇悖论与⽣⽇攻击:。
生日悖论3801272
![生日悖论3801272](https://img.taocdn.com/s3/m/fc453c57a8956bec0975e3d7.png)
生日悖论生日悖论(Birthday paradox)生日悖论 (1)什么是生日悖论 (1)生日悖论的理解 (1)概率估计 (2)数学论证(非数字方法) (3)泛化和逼近 (5)N=365的结果 (5)泛化 (5)反算问题 (6)举例 (6)经验性测试 (7)应用 (7)近似匹配 (8)参考文献 (8)什么是生日悖论生日悖论(Birthday paradox)是指,如果一个房间里有23个或23个以上的人,那么至少有两个人的生日相同的概率要大于50%。
这就意味着在一个典型的标准小学班级(30人)中,存在两人生日相同的可能性更高。
对于60或者更多的人,这种概率要大于99%。
从引起逻辑矛盾的角度来说生日悖论并不是一种悖论,从这个数学事实与一般直觉相抵触的意义上,它才称得上是一个悖论。
大多数人会认为,23人中有2人生日相同的概率应该远远小于50%。
计算与此相关的概率被称为生日问题,在这个问题之后的数学理论已被用于设计著名的密码攻击方法:生日攻击。
生日悖论的理解理解生日悖论的关键在于领会相同生日的搭配可以是相当多的。
如在前面所提到的例子,23个人可以产生种不同的搭配,而这每一种搭配都有成功相等的可能。
从这样的角度看,在253种搭配中产生一对成功的配对也并不是那样的不可思议。
换一个角度,如果你进入了一个有着22个人的房间,房间里的人中会和你有相同生日的概率便不是50:50了,而是变得非常低。
原因是这时候只能产生22种不同的搭配。
生日问题实际上是在问任何23个人中会有两人生日相同的概率是多少。
概率估计假设有n个人在同一房间内,如果要计算有两个人在同一日出生的机率,在不考虑特殊因素的前提下,例如闰年、双胞胎,假设一年365日出生概率是平均分布的(现实生活中,出生机率不是平均分布的)。
计算机率的方法是,首先找出p(n)表示n个人中,每个人的生日日期都不同的概率。
假如n> 365,根据鸽巢原理其概率为0,假设n≤ 365,则概率为:因为第二个人不能跟第一个人有相同的生日(概率是364/365),第三个人不能跟前两个人生日相同(概率为363/365),依此类推。
最长生日的原理
![最长生日的原理](https://img.taocdn.com/s3/m/ded73dcef80f76c66137ee06eff9aef8941e486e.png)
最长生日的原理最长生日的原理是指,在一个群体中,至少有两个人生日是相同的。
这个原理源自于概率论中的鸽巢原理,也被称为生日悖论。
虽然我们在日常生活中可能会觉得这种概率很小,但实际上,只需要有23个人在一起,就会有超过一半的概率出现至少两人生日相同的情况。
为了更好地理解这个原理,我们可以通过一个简单的例子来说明。
假设有一所学校,里面有100个学生。
我们想知道,至少有两个学生生日相同的概率是多少?我们可以计算出至少有两个学生生日不同的概率。
第一个学生的生日可以是任意一天,所以概率为1。
而第二个学生的生日不能和第一个学生相同,所以概率为364/365。
同理,第三个学生的生日不能和前两个学生相同,所以概率为363/365。
依次类推,第100个学生的生日不能和前99个学生相同,所以概率为266/365。
那么,至少有两个学生生日相同的概率可以通过计算相反事件的概率来得到。
即1减去至少有两个学生生日不同的概率。
根据乘法原理,我们可以将每个学生生日不同的概率相乘,得到至少有两个学生生日不同的概率为:(364/365) * (363/365) * ... * (266/365) ≈ 0.507可以看到,只需要100个学生中的任意两个人,就会有超过一半的概率生日相同。
这个结果可能会让人感到惊讶,因为我们通常认为生日相同的概率很小。
那么,为什么只需要23个人就能达到超过一半的概率呢?这是因为生日的组合数随着人数的增加呈指数级增长。
当有23个人时,生日的组合数已经达到了253。
而当有30个人时,生日的组合数就已经超过了1万。
这个指数级增长的特点导致了生日相同的概率也会迅速增加。
最长生日的原理在实际生活中也有一些应用。
比如,当我们在班级或工作场所组织生日派对时,只需要邀请到一定数量的人,就能保证至少有两个人生日相同。
这样不仅能减少派对的规模,也能增加生日惊喜的几率。
除了生日悖论,最长生日的原理还可以用来解释其他一些有趣的现象。
信息保障与安全考试猜测题
![信息保障与安全考试猜测题](https://img.taocdn.com/s3/m/ceafe2a8b8d528ea81c758f5f61fb7360a4c2b41.png)
密码学考试猜测题一、填空1、处于计算机安全核心地位的三个关键目标分别是保密性、完整性、可用性。
2、安全攻击分为主动攻击和被动攻击两类。
3、 OSI 安全框架,提供了定义安全攻击、机制和服务的系统框架4、对称密码算法主要有明文、密文、密钥、加密算法和解密算法等五个主要组成部5、古典密码学体制对现代密码学的研究和学习具有十分重要的意义,实现古典密码体制的两种基本方法代换和置换仍是构造现代对称分组密码的核心方式6、DES 是美国国家标准局公布的第一个数据加密标准,它的分组长度为 64 位,密钥长度为 56 位。
7、分组密码的工作模式: 电码本模式、密文分组链接模式、密文反馈模式、输出反馈模式和计数器模式。
8、 X.509 证书格式用于S/MIME、IP 安全性和SSL/TLS 与SET 。
9、 X.509 是基于公钥密码体制和数字签名的服务。
10、IPse 包含三个方面的功能分别是认证、保密、密钥管理11、AH 和ESP 均支持两种模式分别是传输模式和隧道模式。
12、S 盒用在DES 算法中,每个 s 盒都由6 位输入产生4 位输出,所有说,s 盒定义了一个普通的可逆代换。
相当程度上,DES 的强度取决于 s 盒的设计,但是,s 盒的构造方法是不公开的13、PKI 被定义为由硬件、软件、人、策略和程序构成的一整套体系。
14、AES 每轮变化中设计的基本操作每轮包括 4 个阶段:字节代换、行移位、列混淆、轮密钥加。
15、处理被动攻击的重点是预防,处理主动攻击的方式是检测。
二、选择1. 1919 年,德国人亚瑟.谢尔比乌斯发明了转轮机, 这就是历史上最著名的德国“_____”密码机A.ENIGMA B. TYPEXC.RED D.EIGAMAL2. 1949 年_____撰写的奠基性论文“保密系统的通信理论”在《贝尔系统技术杂志》上发布,首次将信息论引入密码技术的研究。
A.Claude Shannon B.RonRivest C.W. Diffie D.JoanDaemen3. 加密技术不能提供以下哪种安全服务?A.鉴别B.机密性C.完整性D.可行性4.以下哪个是既可以进行加密又可以进行数字签名的密码算法?A.RSAB.DESC.IDEAD.DSA5. 在凯撒密码中,每个字母被其后第几位的字母替换?A.5B.4C.3D.26. DSA 使用的散列算法是?A.MD4 B.SHA-1 C.MD5 D.RC57. DES 的分组长度为多少位?A.8 B.56 C.64 D.1288. AES 最大允许的密钥长度为多少位?A.128 B.192 C.256 D.5129. 以下哪一个算法不属于公钥密码体制?A.RC5B.椭圆曲线密码(ECC)C.EIGamalD.RSA10.以下关于非对称密码的说法,错误的是A.加密算法和解密使用不同的密钥B.非对称密码也称为公钥密码C.非对称密码可以用来实现数字签名D.非对称密码不能用来加密数据11. 以下哪个算法不能用于数字签名A.Diffie-HellmanB.椭圆曲线密码(ECC)C.RSAD.DSS12. 在RSA 密钥产生过程中,选择了两个素数,p=13,q=37,求欧拉函数Φ(n)的值A.481B.444C.432D.51213.在RSA 密钥产生过程中,已知Φ(n) =160,选择 e=23,确定 d 使得d≡1/e (modΦ (n)),求 d 的值?A.17B.7C.27D.3714.假如A 想使用公钥密码算法发送一个加密的消息给 B,此信息只有B 能解密,A 可以使用哪个密钥来加密这个信息?A.A 的公钥B.A 的私钥C.B 的公钥D.B 的私钥15.以下基于大整数因子分解难题的公钥密码算法是?A.EIGamalB.ECCC.RSAD.AES16.当双方希望进行密钥交换时:A.双方的公钥必须公开B.双方的私钥必须公开C.只要一方的公钥公开D.只要一方的私钥公开17. 为什么在数字签名中含有消息摘要A.防止发送方否认发送过消息B.加密明文C.提供解密密码D.可以确认发送内容是否在途中被他人修改18. 以下哪种算法为不可逆的数学运算A.MD5B.RC4C.混淆D.DES19.MAC 和对称加密类似,但是也有区别,以下哪个选项指出了MAC 和加密的区别?A.MAC 不使用密钥B.MAC 使用两个密钥分别用于加密和解密C.MAC 是散列函数D.MAC 算法不要求可逆性而加密算法必须是可逆的20. Alice 有一个消息M 通过密钥K 和MAC 算法生成一个MAC 为C(K,M),Alice 将这个 MAC 附加在消息M 后面发送给Bob,Bob 用密钥K 和消息M 计算MAC 并进行比较,这个过程可以提供什么安全服务?A.仅提供保密性B.不可否认性C.仅提供消息认证D.保密性和消息认证21.下列关于HMAC 的安全性,说法正确的是:A.HMAC 的安全性与嵌入散列函数的强度无关B.使用 SHA-1 的HMAC 的安全性比使用MD5 的HMAC 弱C.HMAC 比其使用的嵌入散列函数的安全性弱D.HMAC 的安全性在某种程度上依赖于该散列函数的强度22.HMAC 使用SHA-1 作为其嵌入的散列函数,使用的密钥长度是 256 位,数据长度 1024 位,则该HMAC 的输出是多少位?A.256B.1024C.512D.16023.直接数字签名和仲裁数字签名的区别是什么?A.所使用的公钥密码算法不同B.签名函数和保密函数作用于消息的顺序不同C.直接数字签名是私钥直接对消息进行加密来产生数字签名,而仲裁数字签名是使用私钥对消息的散列码进行加密来产生数字签名D.直接数字签名只涉及通信双方,而仲裁数字签名需要第三方仲裁者的介入24. 以下关于Diffie-Hellman 的密钥协商协议的说法,正确的是:其安全性基于大整数因子分解问题A.Diffie-Hellman 的密钥协商协议提供身份鉴别服务B.Diffie-Hellman 的密钥协商协议易受中间人入侵攻击C.Diffie-Hellman 的密钥协商协议提供数字签名服务D.Diffie-Hellman 的密钥协商协议提供数字签名服务25.为什么软件供应方在网站上提供软件补丁的同时还要提供补丁的 MD5 散列值?A 接收方可以确定下载补丁的网址的可靠性B 接收方在下载了补丁后可以验证补丁的完整性C 接收方可凭该散列码用于未来的补丁更新D 接收方需要提供该散列值来证明自己的合法身份三、判断1. 密码编码学的主要任务是寻求有效密码算法和协议,以保证信息的机密性或认证性的方法。
验证生日悖论
![验证生日悖论](https://img.taocdn.com/s3/m/88d05716964bcf84b9d57ba9.png)
验证生日悖论问题引入:一.问题分析生日悖论:如果一个房间里有23个或23个以上的人,那么至少有两个人的生日相同的概率要大于50%。
这就意味着在一个典型的标准小学班级(30人)中,存在两人生日相同的可能性更高。
对于60或者更多的人,这种概率要大于99%。
从引起逻辑矛盾的角度来说生日悖论并不是一种悖论,从这个数学事实与一般直觉相抵触的意义上,它才称得上是一个悖论。
大多数人会认为,23人中有2人生日相同的概率应该远远小于50%。
在《著名的生日悖论》中说道: 23个人里有两个生日相同的人的几率有多大呢?居然有50%。
悖论定义:悖论是指一种导致矛盾的命题。
悖论(paradox)来自希腊语“para+dokein”,意思是“多想一想”。
如果承认它是真的,经过一系列正确的推理,却又得出它是假的;如果承认它是假的,经过一系列正确的推理,却又得出它是真的。
生日攻击:生日攻击方法没有利用Hash函数的结构和任何代数弱性质,它只依赖于消息摘要的长度,即Hash值的长度。
这种攻击对Hash函数提出了一个必要的安全条件,即消息摘要必须足够长。
生日攻击这个术语来自于所谓的生日问题,在一个教室中最少应有多少学生才使得至少有两个学生的生日在同一天的概率不小于1/2?这个问题的答案为23。
二.问题求解不计特殊的年月,如闰二月。
先计算房间里所有人的生日都不相同的概率,那么第一个人的生日是 365选365第二个人的生日是 365选364第三个人的生日是 365选363: : :第n个人的生日是 365选365-(n-1) 所以所有人生日都不相同的概率是:(365/365)× (364/365) ×(363/365) ×(362/365)× ... ×【(365-n+1)/365】那么,n个人中有至少两个人生日相同的概率就是: 1-(365/365)× (364/365) ×(363/365) ×(362/365)× ... ×【(365-n+1)/365】所以当n=23的时候,概率为0.507,约等于0.51。
16个著名悖论
![16个著名悖论](https://img.taocdn.com/s3/m/aa8fab6c5fbfc77da369b108.png)
【7】理发师悖论(Russell's Paradox的别称)
➢ 概述:小城的理发师放出豪言:“我只帮城里所有不自己刮脸的人刮脸。”那 么问题来了,理发师给自己刮脸么?如果他给自己刮脸,就违反了只帮不自己 刮脸的人刮脸的承诺;如果他不给自己刮脸,就必须给自己刮脸,因为他的承 诺说他只帮不自己刮脸的人刮脸。两种假设都说不通。
16个著名悖论
【1】我知我无知
➢ 苏格拉底有句名言:“我只知道一件事,那就是我一无所知。”
➢ 这个说法本身就是悖论,展现了自我参照的表述(self-referential statement) 的复杂性。
➢ 而这也是西方哲学先贤带给我们的重要启示:你得问你以为你知道的一切。 ➢ 越是问东问西问长问短打破砂锅问到底,越会发现身边正有一大波悖论呼啸而
➢ 赫赫有名的罗素悖论,由英国数学家勃兰特·罗素教授于20世纪初提出。这条悖 论证明了19世纪的集合论是有漏洞的,几乎改变了数学界20世纪的研究方向。
➢ 对于不刮胡子的女理发师不成立。
【8】第二十二条军规(Catch-22)
➢ 概述:疯子才能获准免于飞行,但必须由本人提出申请;凡能意识到飞行有危 险而提出免飞申请的,属头脑清醒者,应继续执行飞行任务。即“如果你能证 明自己发疯,那就说明你没疯”,诸如此类。
【16】外星文明
➢ 概述:天文学的基本假设是,苍茫宇宙间,地球是一颗在平常不过的星球。 NASA(美国宇航局)的开普勒卫星发现,银河系内很可能存在着110亿个类似 地球的星球。
➢ 我们的文明是有声的,广播电视和无线电信号都是人为的。如果确实存在与地 球相像的文明,我们应该有能力找到证据。
➢ 目前,因为错综复杂的原因,我们无法切实证明宇宙有其他文明。庞大的宇宙 空间使沟通变得困难。尽管我们使用电磁波和外星联系,但由于电磁频谱极宽, 我们无法确定外星人使用哪种频谱。再加上那些星球的文明发展度可能过高、 过低,抑或是生活着与人类不同的生命形式,又大大降低了准确交流的可能。
算法问题——生日悖论
![算法问题——生日悖论](https://img.taocdn.com/s3/m/047853bfdc3383c4bb4cf7ec4afe04a1b071b07d.png)
算法问题——⽣⽇悖论问题:⼀个屋⼦⾥⼈数必须要达到多少⼈,才能使其中两⼈⽣⽇相同的机会达到50%?为了回答这个问题,设:1、设k是屋⼦⾥的总⼈数,对每⼀个⼈进⾏编号,则编号为1,2,3···k2、设所有年份都是365天,最⼤天数n=3653、bi表⽰第i个⼈的⽣⽇天数,所以1<=bi<=360,1<=i<=kpublic class Main {/*** 第i个⼈的⽣⽇正好在“第r天的概率”为:** P{bi=r} = 1/n*//*** 第i个⼈和第j个⼈的⽣⽇,“都落在第r天的概率”为:** P{bi=r且bj=r} = P{bi=r}*P{bj=r} = (1/n)^2*//*** 第i个⼈和第j个⼈的⽣⽇,“都落在同⼀天的概率”为?* 此处的落在同⼀天并没有指定落在那⼀天,所以可以都是第1天或者都是第⼆天或者·····** P{bi=bj}* = P{bi=1}*P{bj=1} + P{bi=2}*P{bj=2}+···+P{bi=n}*P{bj=n}* = (1/n)^2 + (1/n)^2 + ···+ (1/n)^2* = 1/n*//*** 原问题是:找到“⾄少有两个⼈⽣⽇相等”* 换句话说就是:1减去所有⼈⽣⽇都互不相同的概率。
* 所以接下来就要找到“所有⼈⽣⽇都互不相同的概率”** 设:* 1、有k个⼈,这k个⼈⽣⽇都互不相同的事件为:Bk* 2、那么k个⼈⽣⽇都互不相同的事件的概率就为:P{Bk}* 3、有⼀个⼈i,有多个⼈1-j,其中j<i(也就是说那多个⼈的编号从1到j,且j编号还⼩于i编号)* 则这个第i个⼈和1-j个⼈的⽣⽇不相同的事件为:Ai* (即:i与1的⽣⽇不同,且i与2的⽣⽇不同···且i与j的⽣⽇不同。
生日攻击原理
![生日攻击原理](https://img.taocdn.com/s3/m/e47cbf2824c52cc58bd63186bceb19e8b8f6ec13.png)
生日攻击原理生日攻击是一种在加密领域中被广泛使用的攻击方式,也被称为生日悖论或生日碰撞攻击。
它基于一个简单的想法:在一个群体中,即使个体的随机性是不均匀的,也存在重复的可能性。
如果随机选择多个个体,并且相互之间进行比较,那么出现至少一对相同的个体的概率将增加。
这就是所谓的“生日悖论”。
在密码学中,生日攻击的目标是破解哈希函数。
哈希函数是指将任意长度的消息转换为固定长度的密文的算法。
它通常用于数字签名、数值摘要等安全场合。
生日攻击的基本思想是:通过构造并比较大量的哈希值,找出两条原始消息中的一对匹配。
为了更好地理解生日攻击,让我们举一个简单的例子。
假设我们有一个班级,里面有23个学生。
如果我们要找到至少一个人生日相同的情况,我们需要比较两个人的生日。
那么我们需要比较23 x 22 ÷2 = 253次。
如果我们的班级有36个学生,则需要比较36 x 35 ÷ 2 = 630次。
同样的道理适用于哈希函数。
如果哈希函数的输出是128位,则需要比较2的64次方个哈希值才能找到碰撞。
为了使生日攻击更加有效,攻击者通常会使用高性能的计算机和自适应技术。
自适应技术包括改变消息的大小和增加攻击的复杂性等。
此外,攻击者还可以利用已知的哈希值来计算其他值的碰撞,这被称为“生日资源”。
在实践中,攻击者可以使用这些资源进行加速攻击。
在密码学中,生日攻击是一种基础且有效的攻击方式。
在设计哈希函数时,必须预防生日攻击,并且哈希函数的输出越大,就越难被攻击。
因此,生日攻击可以提醒密码学家们格外留意哈希函数的安全性。
生日悖论是个延续了百余年的谬误
![生日悖论是个延续了百余年的谬误](https://img.taocdn.com/s3/m/991df9220722192e4536f615.png)
《生日悖论》是个延续了百余年的谬误——发展非线性经济学的哲学漫谈商与儒这是我在提议发展我国非线性经济学时,用自己的非线性哲学思维审视精确科学——数学的一篇哲学漫谈,我相信诸位很容易判断我的结论是否正确。
欢迎各位批评和指正!《概率理论》是《经济学》的重要分析工具,它真的是那么科学、那么完美、那么无暇可击吗?我们先来看个例子:一个袋子里有9个材质、形状、重量都一样的小球,它们分成3组,分别写着1-3的数字。
我们随机摸3个小球,问:摸到3个数字相同的小球和摸到3个数字都不同的小球,哪个概率大?显然数字相同的小球只有3个组合:111,222,333;而数字都不同的小球有6个排列(123,132,213,231,312,321),所以答案一定是摸到数字都不同的3个小球的概率大。
现在我们用三种不同的颜色分别代替三个不同的数字,给这些小球上涂上红兰棕三色,每种颜色涂3个小球。
我们随机摸3个小球,问:摸到3个颜色相同的小球和3个颜色都不同的小球,哪个概率大?颜色相同的3个小球只有三个组合——红红红、蓝蓝蓝、棕棕棕;颜色都不同的3个小球有6种不同排列(红蓝棕、红棕蓝、蓝红棕、蓝棕红、棕红蓝、棕蓝红),所以答案一定是摸到颜色都不同的3个小球的概率大。
现在我们再在三组颜色相同的小球上分别写上123三个不同的数字:1112 2 233 3于是,如上图所示,9个小球中,颜色相同的小球,数字一定不同;数字相同的小球,颜色一定不同。
我们问:随机摸3个小球,概率最小的是哪一种情况时,就形成了一个“悖论”——回答“摸到3球颜色相同的概率最小”,那么这3球的数字一定不同(这是同时发生的必然事件,概率为1),摸到3球数字不同的概率一定不是最小;回答“摸到3球数字相同的概率最小”,那么这3球的颜色一定不同,摸到3球颜色不同的概率一定不是最小。
概率是门严密精确的数学,怎么会得到如此矛盾的结果呢?我们来分析其中的原因:如上图所示,我们先来研究一下,这里颜色和数字的互相关系。
现代密码学:第42讲 生日攻击
![现代密码学:第42讲 生日攻击](https://img.taocdn.com/s3/m/21c99da8daef5ef7ba0d3c73.png)
现代密码学
第四十二讲 生日攻击
信息与软件工程学院
生日攻击‐相关问题
问题1---第Ⅰ类生日攻击问题 已知一杂凑函数H有n个可能的输出,H(x)是一个特 定的输出,如果对H随机取k个输入,则至少有一个 输入y使得H(y)=H(x)的概率为0.5时,k有多大?
为叙述方便,称对杂凑函数H寻找上述y的攻击为第 Ⅰ类生日攻击。
生日攻击‐相关问题
问题---生日悖论推广问题 已知一个在1到n之间均匀分布的整数型随机变量, 若该变量的k个取值中至少有两个取值相同的概率大 于0.5,则k至少多大?
P(n, k )
1
(n
n! k )!nk
,令P(n, k)>0.5,可得
k 1.18 n n
若取n=365,则
生日攻击‐相关问题
问题2---生日悖论 设有k个整数项,每一项都在1到n之间等可能地取值。 P(n, k):k个整数项中至少有两个取值相同的概率
生日悖论就是求使得P(365,k)≥0.5的最小k。 Q(365, k) :k个数据项中任意两个取值都不同的概
率。
生日攻击‐相关问题
问题2---生日悖论 如果k>365,则不可能使得任意两个数据都不相同, 因此假定k≤365。k个数据项中任意两个都不相同的 所有取值方式数为
• 因为H有n个可能的输出,所以输入y产生的输出H(y)等于特定输出H(x)的概 率是1/n,反过来说H(y)≠H(x)的概率是1-1/n。
• y取k个随机值而函数的k个输出中没有一个等于H(x),其概率等于每个输出 都不等于H(x)的概率之积,为[1-1/n]k,所以y取k个随机值得到函数的k个 输出中至少有一个等于H(x)的概率为1-[1-1/n]k。
生日攻击原理
![生日攻击原理](https://img.taocdn.com/s3/m/495412b1d5d8d15abe23482fb4daa58da0111cd9.png)
生日攻击原理
生日攻击原理是一种密码学攻击方法,它利用了生日悖论的特性,通过枚举攻击者可以在较短的时间内破解密码。
生日悖论是指在一个集合中,只需要23个元素就有50%的概率出现两个元素的生日相同。
这个悖论的应用在密码学中,就是指在一个密码空间中,只需要枚举一部分密码就有可能找到与目标密码相同的密码。
生日攻击原理的应用非常广泛,比如在密码破解、数字签名攻击、密钥交换攻击等方面都有应用。
其中最常见的就是在密码破解中的应用。
攻击者可以通过生日攻击原理,枚举一部分密码,然后与目标密码进行比较,如果找到相同的密码,就可以破解目标密码。
为了防止生日攻击,密码学家们提出了一些防御措施。
其中最常见的就是增加密码空间的大小。
如果密码空间足够大,攻击者就需要枚举的密码数量就会变得非常大,从而降低了破解的概率。
另外,还可以采用加盐的方式来增加密码的复杂度。
加盐是指在密码中添加一些随机的字符串,这样即使攻击者找到了相同的密码,也无法破解目标密码。
生日攻击原理是一种非常有效的密码破解方法,但是它也有一些局限性。
比如在密码空间较大的情况下,攻击者需要枚举的密码数量非常大,从而降低了破解的概率。
另外,加盐也是一种非常有效的防御措施,可以有效地增加密码的复杂度。
因此,在设计密码时,我们需要考虑到生日攻击原理的影响,采取相应的防御措施,从而
保护密码的安全性。
生日悖论与生日攻击
![生日悖论与生日攻击](https://img.taocdn.com/s3/m/23a5e402ba1aa8114431d97a.png)
类归于:数学生日悖论与生日攻击苏椰发表于2009-12-12 10:39每个人都有生日,偶尔会遇到与自己同一天过生日的人,但在生活中,这种缘分似乎并不常有。
我们猜猜看,在50个人当中,出现这种缘分的概率有多大,是10%,20%,还是50%?有人告诉我,在文章开头插入公式十分倒胃,所以我就不写计算过程,直接给出结果(除了传统的排列组合方法外,Paul Halmos[1]还给出了一个巧妙的解法)。
在50个人中有相同生日的概率,高达97%,这个数字,恐怕高出了绝大多数人的意料。
我们没有算错,是我们的直觉错了,科学与生活,又开了个玩笑。
正因为计算结果与日常经验产生了如此明显的矛盾,该问题被称为―生日悖论(Birthday Paradox)‖[2]。
它体现的,是理性计算与感性认识的矛盾,并不引起逻辑矛盾,所以倒也算不上严格意义上的悖论。
它的原始表述是:在23个人当中出现相同生日的概率大于50%[2]。
为了让矛盾更突出,我把人数换成了50,如果事先不知道答案,猜测的结果一般远远小于97%。
也许有人质疑,我们在计算时,假定人们的生日均匀而随机地分布,但生活中却未必如此——别担心,不平均分布的情形也已解决[3],而且更进一步的证明是,不平均分布时,概率只会更高[4]。
此外,Knuth在TAOCPv3中还计算了,平均在多少人中才能找到一对相同生日,答案是25人[5],这看起来实在不可思议。
对于为何出现这种矛盾,我没有看到专门的研究。
我的想法是,首先,当只有1个人时,概率为0%,当人数大于365时,根据鸽巢原理,概率是100%。
于是,在1到365这个区间内,我们直觉地认为,对应的概率是线性地从0%增长到100%,哪怕不线性,也不会陡峭得太离谱,所以对于57人来说,该概率应该在57/365,即七分之一左右。
但事实上,这条曲线的增长劲头却是十分可怕:[6]绿色的曲线,就是在不同的人数时,对应的存在相同生日的概率,它就像坐了直升机一样迅猛窜升,在50人时就已相当接近100%,与我们幻想的线性曲线有天壤之别。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
类归于:数学
生日悖论与生日攻击
苏椰发表于2009-12-12 10:39
每个人都有生日,偶尔会遇到与自己同一天过生日的人,但在生活中,这种缘分似乎并不常有。
我们猜猜看,在50个人当中,出现这种缘分的概率有多大,是10%,20%,还是50%?有人告诉我,在文章开头插入公式十分倒胃,所以我就不写计算过程,直接给出结果(除了传统的排列组合方法外,Paul Halmos[1]还给出了一个巧妙的解法)。
在50个人中有相同生日的概率,高达97%,这个数字,恐怕高出了绝大多数人的意料。
我们没有算错,是我们的直觉错了,科学与生活,又开了个玩笑。
正因为计算结果与日常经验产生了如此明显的矛盾,该问题被称为―生日悖论(Birthday Paradox)‖[2]。
它体现的,是理性计算与感性认识的矛盾,并不引起逻辑矛盾,所以倒也算不上严格意义上的悖论。
它的原始表述是:在23个人当中出现相同生日的概率大于50%[2]。
为了让矛盾更突出,我把人数换成了50,如果事先不知道答案,猜测的结果一般远远小于97%。
也许有人质疑,我们在计算时,假定人们的生日均匀而随机地分布,但生活中却未必如此——别担心,不平均分布的情形也已解决[3],而且更进一步的证明是,不平均分布时,概率只会更高[4]。
此外,Knuth在TAOCPv3中还计算了,平均在多少人中才能找到一对相同生日,答案是25人[5],这看起来实在不可思议。
对于为何出现这种矛盾,我没有看到专门的研究。
我的想法是,首先,当只有1个人时,概率为0%,当人数大于365时,根据鸽巢原理,概率是100%。
于是,在1到365这个区间内,我们直觉地认为,对应的概率是线性地从0%增长到100%,哪怕不线性,也不会陡峭得太离谱,所以对于57人来说,该概率应该在57/365,即七分之一左右。
但事实上,这条曲线的增长劲头却是十分可怕:[6]
绿色的曲线,就是在不同的人数时,对应的存在相同生日的概率,它就像坐了直升机一样迅猛窜升,在50人时就已相当接近100%,与我们幻想的线性曲线有天壤之别。
那么问题就是:为啥我们会误以为它是线性的?别急,我们把问题稍作改动,就能得到启发。
新的问题是,在一群人当中,有人与你同一天生日,这个概率有多大?同样地,我们把概率曲线描出
来(即上图蓝色线),可以看到,它是十分平缓的。
我认为,就是因为当我们看到―有人生日相同‖时,下意识地用―与我生日相同‖去推测,以致于把火箭发射当成了平稳增长,造成了生日悖论。
所以生日悖论的本质就是,随着元素增多,出现重复元素的概率会以惊人速度增长,而我们低估了它的速度。
(对计算感到头疼的读者,可以选择在此停下脚步。
别担心,世界依然美好。
)这个问题不容忽视,因为它意味着,在密码学中,我们低估了散列值出现碰撞的概率。
这一结论应用于对散列函数的攻击中,称为―生日攻击(Birthday Attack)‖[2]。
我们先把这个问题与生日脱钩,写成一般形式。
从离散均匀分布的区间[1,d]中取出n个整数,至少两个数字相同的概率[2]
下面考虑一个64位散列函数,它有种可能的散列值,要想100%地找到一组碰撞,就需
要次攻击。
但是基于生日攻击的原理,我们只需要次攻击,就有约50%的概率能够攻击成功。
下面给出一种证明(符号沿用上面公式的):
两端整理得:
当P=0.5时
在次攻击中,就有约50%的概率发生碰撞,收益降低一半,成本却开了根号,对
于这些大数字来说,开根号是件不得了的事。
为了提高碰撞率,我们以个散列作为一组,
用独立的10组分别进行攻击,则一共需要约次攻击,出现碰撞的概率高于99.9%——这是一个非常理想的成功率,需要的攻击次数却仅是原来的1/1,000,000,000。
参考文献:
[1] Paul Halmos. Wikipedia. /wiki/Paul_Halmos
[2] Birthday Problem. Wikipedia. /wiki/Birthday_Paradox
[3] M. Klamkin and D. Newman Extensions of the Birthday Surprise, Journal of Combinatorial Theory 3, 279–282. 1967
[4] D. Bloom. A Birthday Problem, American Mathematical Monthly 80,
1141–1142. 1973
[5] D. E. Knuth; The Art of Computer Programming. Vol. 3, Addison-Wesley,
1973
[6] Toobaz. Image. /wiki/File:Birthday_paradox.svg。