① tls/ssl 64位分组密码生日攻击 windows怎么打补丁
说明TLS版本太低了,唯一的办法windows 换成win7以上系统,不要用XP或低于版本。
② 第三次生日 OD攻击时什么 怎么才能OD攻击
OD(Over
Dive)就是钻到敌人的身体(神经)中,给敌人造成大量伤害。当你用冲锋枪或手榴弹或散弹枪对准扭曲着开火时,连续射击,扭曲着身上会有一定几率显现出一个三角符号,这是瞄准键(R)不要松,按下三角,就可发动OD,相对来说手榴弹和散弹枪产生OD的几率要大些。在武器准备界面中,有一个B-Impact值,这个值越高,说明这种武器造成OD几率越大。
③ 生日悖论
生日悖论是说:如果一个房间里有23个人,那么两个人有相同生日的概率要大于50%。这就意味着这个悖论有更高的概率适用于一个典型的标准小学班级(30人)。对于60或者更多的人,这种概率要大于99%。
从引起逻辑矛盾的角度来说生日悖论并不是一种悖论,这一悖论在某种意义上是反驳一般直觉数学事实。大多数人猜测,机会应该远远小于50%。 计算与此相关的概率被称为生日问题,隐藏在它后面的数学理论已被用于设计着名的密码攻击方法:生日攻击。
对此悖论的解释:理解生日悖论的关键在于领会相同生日的搭配可以是相当多的。如在前面所提到的例子,23个人可以产生23×22÷2=253 种不同的搭配,而这每一种搭配都有成功相等的可能。从这样的角度看,在253种搭配中产生一对成功的配对也并不是那样的不可思议。
换一个角度,如果你进入了一个有着22个人的房间,房间里的人中会和你有相同生日的概率便不是50:50了,而是变得非常低。原因是这时候只能产生22种不同的搭配。生日问题实际上是在问:任何23个人中会有两人生日相同的概率是多少?
④ 生日攻击的方法解释
下面详细描述生日攻击的方法
设h:X->Y是一个Hash函数,X和Y都是有限的,并且|X|>=2|Y|,记|X|=m,|Y|=n。显然至少有n个碰撞,问题是如何去找到这些碰撞。一个很自然的方法是随机选择k个不同的元素x1,x2,x3,.....,xk ∈X,计算yI=h(xi),1<=i<=k,然后确定是否有一个碰撞发生。这个过程类似于把k个球随机地扔到n个箱子里边,然后检查看是否某一箱子里边至少有两个球。k个球对应于k个随机数x1,x2,x3,.....,xk,n个箱子对应于Y中的n个可能的元素。我们将计算用这种方法找到一个碰撞的概率的下界,该下界只依赖于k和n,而不依赖于m。
因为我们关心的是碰撞概率的下界,所以可以假定对所有y∈Y,有|h-1(y)|≈m/n。这个假定是合理的,这是因为如果原像集h-1(y)( y∈Y)不是近似相等的,那么找到一个碰撞的概率将增大。
因为原像集h-1(y)( y∈Y)的个数都近似相等,并且xI(1<=i<=k)是随机选择的,所以可将yI=h(xi),1<=i<=k视作Y中的随机元素(yi(1<=i<=k)未必不同)。但计算k个随机元素y1,y2, .....yk∈Y是不同的概率是一件容易的事情。依次考虑y1,y2, .....yk。y1可任意地选择;y2 ≠y1的概率为1-1/n;y3 ≠y1 ,y2的概率为1-2/n;.....;yk ≠y1,y2, .....,yk-1的概率为1-(k-1)/n。
因此,没有碰撞的概率是(1-1/n)(1-2/n).....(1-(k-1)/n)。如果x是一个比较小的实数,那么1-x≈e-x,这个估计可由下式推出:e-x=1-x+x2/2!-x3/3!+ .....。现在估计没有碰撞的概率(1-1/n)(1-2/n).....(1-(k-1)/n)约为1-e-k(k-1)/2n。我们设ε是至少有一个碰撞的概率,则ε≈1-e-k(k-1)/2n,从而有k2-k≈nln(1/(1-ε)2)。去掉-k这一项,我们有k2≈nln(1/(1-ε)2),即k≈sqrt(2nln(1/(1-ε)2))。
如果我们取ε=0.5,那么k≈1.17 sqrt(n)。这表明,仅sqrt(n)个X的随机的元素就能以50%的概率产生一个碰撞。注意ε的不同选择将导致一个不同的常数因子,但k与sqrt(n)仍成正比例。
如果X是一个教室中的所有学生的集合,Y是一个非闰年的365天的集合,h(x)表示学生x的生日,这时n=365,ε=0.5,由k≈1.17 sqrt(n)可知,k≈22.3。因此,此生日问题的答案为23。
生日攻击隐含着消息摘要的长度的一个下界。一个40比特长的消息摘要是很不安全的,因为仅仅用2^20(大约一百万)次随机Hash可至少以1/2的概率找到一个碰撞。为了抵抗生日攻击,通常建议消息摘要的长度至少应取为128比特,此时生日攻击需要约2^64次Hash。安全的Hash标准的输出长度选为160比特是出于这种考虑。
中间相遇攻击是生日攻击的一种变形,它不比较Hash值,而是比较链中的中间变量。这种攻击主要适用于攻击具有分组链结构的Hash方案。中间相遇攻击的基本原理为:将消息分成两部分,对伪造消息的第一部分从初试值开始逐步向中间阶段产生r1个变量;对伪造消息的第二部分从Hash结果开始逐步退回中间阶段产生r2个变量。在中间阶段有一个匹配的概率与生日攻击成功的概率一样。
在修正分组攻击中,为了修正Hash结果并获得期望的值,伪造消息和一个分组级联。这种攻击通常应用于最后一个组,因此也称为修正最后分组攻击。差分分析是攻击分组密码的一种方法。这种攻击也可用来攻击某些Hash算法。
针对Hash算法的一些弱点可对Hash算法进行攻击,可利用Hash算法的代数结构及其所使用的分组密码的弱点来攻击一些Hash方案。例如针对DES的一些弱点(即互补性、弱密钥、密钥碰撞等)来攻击基于DES的Hash方案。
⑤ 生日悖论是正确的吗
可以很负责告诉你,完全正确。
这个问题是我们python老师上课布置的题,我用python写过一个程序来模拟这个问题,可以看到结果,如果是50个人的班,在经过10万个样本班级模拟,97142个样本有相同的,概率97.142%(生日是通过计计算机随机数生成的)
现在从概率论来给你解释:
有n个人,
第一个人生日是365选365
第二个人是365选364(如果第二个人要与第一个人生日不同)
第三个人就是365选363(要和第一个和第二个人都不相同)
第n个人就是365选(365-n+1)(和前面的人都不同)
所以所有人都不相同就是:(是都不相同)
(365/365)*(364/365)*...*(365-n+1/365) (反斜杠是分号)
有相同就是1-上面这个算式(都不相同的对立就是有相同,哪怕只有两个相同)
代入n=50,可以得出,概率约为97.037%(我用卡西欧科学计数器算的,和我的python模拟结果基本一致)
生日悖论说的是23个人,两个人生日相同概率会超过50%(和上面类似,我通过科学计数器和python程序验证了是大于50%的)
⑥ 设Hash值的长度为n比特,描述对于hash函数“生日攻击”的过程,并给出找到hash函数碰撞的复杂度。
*nix系系统:
ES(Unix)
例子: IvS7aeT4NzQPM
说明:Linux或者其他linux内核系统中
长度: 13 个字符
描述:第1、2位为salt,例子中的'Iv'位salt,后面的为hash值
系统:MD5(Unix)
例子:$1$12345678$XM4P3PrKBgKNnTaqG9P0T/
说明:Linux或者其他linux内核系统中
长度:34个字符
描述:开始的$1$位为加密标志,后面8位12345678为加密使用的salt,后面的为hash
加密算法:2000次循环调用MD5加密
系统:SHA-512(Unix)
例子:$6$12345678$U6Yv5E1lWn6mEESzKen42o6rbEm
说明:Linux或者其他linux内核系统中
长度: 13 个字符
描述:开始的$6$位为加密标志,后面8位为salt,后面的为hash
加密算法:5000次的SHA-512加密
系统:SHA-256(Unix)
例子:$5$12345678$jBWLgeYZbSvREnuBr5s3gp13vqi
说明:Linux或者其他linux内核系统中
长度: 55 个字符
描述:开始的$5$位为加密标志,后面8位为salt,后面的为hash
加密算法:5000次的SHA-256加密
系统:MD5(APR)
例子:$apr1$12345678$auQSX8Mvzt.tdBi4y6Xgj.
说明:Linux或者其他linux内核系统中
长度:37个字符
描述:开始的$apr1$位为加密标志,后面8位为salt,后面的为hash
加密算法:2000次循环调用MD5加密
windows系统:
windows
例子:Admin:
长度:98个字符
加密算法:MD4(MD4(Unicode($pass)).Unicode(strtolower($username)))
mysql
系统:mysql
例子:606717496665bcba
说明:老版本的MySql中
长度:8字节(16个字符)
说明:包括两个字节,且每个字的值不超过0x7fffffff
系统:MySQL5
例子:*
说明:较新版本的MySQL
长度:20字节(40位)
加密算法:SHA-1(SHA-1($pass))
其他系统:
系统:MD5(WordPress)
例子:$P$
说明:WordPress使用的md5
长度:34个字符
描述:$P$表示加密类型,然后跟着一位字符,经常是字符‘B’,后面是8位salt,后面是就是hash
加密算法:8192次md5循环加密
系统:MD5(phpBB3)
说明:phpBB 3.x.x.使用
例子:$H$9123456785DAERgALpsri.D9z3ht120
长度:34个字符
描述:开始的$H$为加密标志,后面跟着一个字符,一般的都是字符‘9’,然后是8位salt,然后是hash 值
加密算法:2048次循环调用MD5加密
系统:RAdmin v2.x
说明:Remote Administrator v2.x版本中
例子:
长度:16字节(32个字符)
加密算法:字符用0填充到100字节后,将填充过后的字符经过md5加密得到(32位值)
md5加密
标准MD5
例子:
使用范围:phpBB v2.x, Joomla 的 1.0.13版本前,及其他cmd
长度:16个字符
其他的加salt及变形类似:
md5($salt.$pass)
例子::12
md5(md5($pass))
例子:
md5(md5($pass).$salt)
例子::wQ6
md5(md5($salt).md5($pass))
例子: :wH6_S
md5(md5($salt).$pass)
例子: :1234
⑦ 谁能帮我解释下密码学中的生日攻击是什么意思
就是说人们用生日做密码是很多人的通病,只是格式不同而已,利用这个问题可以大大缩减破解密码的时间,成为攻击密码问题的利器…这就是密码学中的生日攻击…
⑧ 生日攻击是什么,有什么用
*nix系系统:
ES(Unix)
例子: IvS7aeT4NzQPM
说明:Linux或者其他linux内核系统中
长度: 13 个字符
描述:第1、2位为salt,例子中的#39;Iv#39;位salt,后面的为hash值
系统:MD5(Unix)
例子:$1$$XM4P3PrKBgKNnTaqG9P0T/
说明:Linux或者其他linux内核系统中
长度:34个字符
描述:开始的$1$位为加密标志,后面8位为加密使用的salt,后面的为hash
加密算法:2000次循环调用MD5加密
系统:SHA-512(Unix)
例子:$6$$U6Yv5E1lWn6mEESzKen42o6rbEm
说明:Linux或者其他linux内核系统中
长度: 13 个字符
描述:开始的$6$位为加密标志,后面8位为salt,后面的为hash
加密算法:5000次的SHA-512加密
系统:SHA-256(Unix)
例子:$5$$jBWLgeYZbSvREnuBr5s3gp13vqi
说明:Linux或者其他linux内核系统中
长度: 55 个字符
描述:开始的$5$位为加密标志,后面8位为salt,后面的为hash
加密算法:5000次的SHA-256加密
系统:MD5(APR)
例子:$apr1$$auQSX8Mvzt.tdBi4y6Xgj.
说明:Linux或者其他linux内核系统中
长度:37个字符
描述:开始的$apr1$位为加密标志,后面8位为salt,后面的为hash
加密算法:2000次循环调用MD5加密
windows系统:
windows
例子:Admin:
长度:98个字符
加密算法:MD4(MD4(Unicode($pass)).Unicode(strtolower($username)))
mysql
系统:mysql
例子:bcba
说明:老版本的MySql中
长度:8字节(16个字符)
说明:包括两个字节,且每个字的值不超过0x7fffffff
系统:MySQL5
例子:*
说明:较新版本的MySQL
长度:20字节(40位)
加密算法:SHA-1(SHA-1($pass))
其他系统:
系统:MD5(WordPress)
例子:$P$BBhGFYSlUqGyE6ErKErL01
说明:WordPress使用的md5
长度:34个字符
描述:$P$表示加密类型,然后跟着一位字符,经常是字符‘B’,后面是8位salt,后面是就是hash
加密算法:8192次md5循环加密
系统:MD5(phpBB3)
说明:phpBB 3.x.x.使用
例子:$H$DAERgALpsri.D9z3ht120
长度:34个字符
描述:开始的$H$为加密标志,后面跟着一个字符,一般的都是字符‘9’,然后是8位salt,然后是hash 值
加密算法:2048次循环调用MD5加密
系统:RAdmin v2.x
说明:Remote Administrator v2.x版本中
例子:5e32cceaafed5ccdfb212d7f
长度:16字节(32个字符)
加密算法:字符用0填充到100字节后,将填充过后的字符经过md5加密得到(32位值)
md5加密
标准MD5
例子:c4ca4238a0bdcc509a6f75849b
使用范围:phpBB v2.x, Joomla 的 1.0.13版本前,及其他cmd
长度:16个字符
其他的加salt及变形类似:
md5($salt.$pass)
例子:f190ce9ac8445dcab7be43f7d5:12
md5(md5($pass))
例子:28c8edde3d61ad3b1866f0636
md5(md5($pass).$salt)
例子:eddcac216b1fd2:wQ6
md5(md5($salt).md5($pass))
例子: :wH6_S
md5(md5($salt).$pass)
例子: :1234
⑨ 生日悖论 谁能给我解释一下!!
生日悖论,指如果一个房间里有23个或23个以上的人,那么至少有两个人的生日相同的概率要大于50%。这就意味着在一个典型的标准小学班级(30人)中,存在两人生日相同的可能性更高。对于60或者更多的人,这种概率要大于99%。
从引起逻辑矛盾的角度来说生日悖论并不是一种悖论,从这个数学事实与一般直觉相抵触的意义上,它才称得上是一个悖论。大多数人会认为,23人中有2人生日相同的概率应该远远小于50%。计算与此相关的概率被称为生日问题,在这个问题之后的数学理论已被用于设计着名的密码攻击方法:生日攻击。
在信息安全的教科书中,必定会有一部分是关于“生日悖论”理论的。我想这应该包含了两重用意。首先,对于将要从事信息安全工作的人来说,“生日悖论”是他们必须要理解的一种现实现象。
其次,是要告诫学习者,即使是日常工作中经常接触数学的研究者,在准确把握概率上,也很难做到万无一失。“生日悖论”现象告诉我们,仅凭自己的直觉估算概率是不可取的,运用数学知识认真计算非常重要。
(9)生日攻击存储空间扩展阅读:
悖论应用
生日悖论普遍的应用于检测哈希函数:N-位长度的哈希表可能发生碰撞测试次数不是2^N次而是只有2^(N/2)次。这一结论被应用到破解cryptographic hash function的生日攻击中。
生日问题所隐含的理论已经在[Schnabel 1938]名字叫做capture-recapture的统计试验得到应用,来估计湖里鱼的数量。
悖论定义
悖论是指一种导致矛盾的命题。悖论(paradox)来自希腊语“para+dokein”,意思是“多想一想”。 如果承认它是真的,经过一系列正确的推理,却又得出它是假的;如果承认它是假的,经过一系列正确的推理,却又得出它是真的。
把集合分成两类,凡是不以自身作为元素的集合称为正常集,(例如,自然数集N本身不是一个自然数,因此N是正常集。)凡是以自身作为元素的集合称为异常集。(例如,所有的非生物的集合F也是非生物,因此F是异常集。)
这样,许多日常中常见的悖论(说谎者悖论,理发师悖论,上帝悖论等)都可以归入异常集之中了。
另外一种悖论是关于无限的,虽然我们基本上都能接受极限的理论,但是要把这个理论向那些不懂的人解释还是十分困难的。
⑩ 安全电子邮件协议的缺点
PGP协议!!!!!
电子邮件的方便、快速、费用低廉等优点,再加上它不但能传送文字信息,还可以附上图像、声音等功能,这使得电子邮件越来越受人们的欢迎。
1 电子邮件的传输过程
电子邮件通过SMTP和POP协议来进行发送和接受,但由于互联网的开放性,邮件内容是以明文的形式在互联网上进行传递。这使得人们在使用电子邮件时不得不考虑其安全因素,因此如何保证电子邮件的机密性、完整性、真实性和不可抵赖性等方面的问题显得尤为重要。
2 PGP介绍
为了使电子邮件在互联网上能够安全运行,开发出了一些安全电子邮件标准:PGP和S/MIME。其中PGP被广泛运用。
PGP(Pretty Good Privacy)是美国人Phil Zimmermann研究出来的,它是由多种加密算法(IDEA、RSA、MD5、随机数生成算法)组合而成,不但能够实现邮件的保密功能,还可以对邮件进行数字签名,使收信人能够准确判断邮件在传递过程中是否被非法篡改。
3 PGP工作原理
3.1 IDEA算法
IDEA属于对称加密算法,即加密密钥和解密密钥相同,具体的算法规则是,将输入数据以每64为一块,对每块进行分组,分为4组,每组16位,作为第一轮的输入,进行相乘、相加、异或等运行后,形成4个子分组,将中间两间进行交换,作为下一轮的输入,经过8轮运算后,同样得到4个子分组,再将这4组重新连接到一起形成密文共64位。
3.2 RSA算法
RSA属于非对称加密算法,也称公钥算法,即加密密钥和解密密钥不同,并且加密密钥可以完全公开,但由于没有解密密钥,即使非法者窃取到了密文和发送者的加密密钥也无法查看内容,解决了对称加密中对密钥管理困难的问题,RSA的安全性取决于对大数的因式分解,这是数学上的一个难题。
RSA算法描述:
1)随意选择两个大的质数p和q,p不等于q,q和p保密;
2)计算n=pq;
3)欧拉函数,φ(n) = (p-1)(q-1),n公开,φ(n)保密;
4)选择一个小于φ(n)的正整数e,满足gcd(e,φ(n))=1,e是公开的加密密钥;
5)计算d,满足de≡1(modφ(n)), d是保密的解密密钥;
6)加密变换:对明文m∈Zn,密文为C=me mod n;
7)解密变换:对密文C∈Zn,明文为m=Cd mod n;
由于RSA涉及的运算非常复杂,所以在运算速度上很慢,因而RSA算法只适合于对少量数据进行加密,如数字签名,一般情况下,如果要对大量信息进行加密,还是采用对称加密算法,因为对称加密速度比公钥加密速度快得多。
3.3 MD5算法
MD5属于Hash函数,可以将任意长度的输入压缩到固定长度的输出,具有多对一的单向特性。可以用于数字签名、完整性检测等方面。
4 PGP提供的业务
PGP提供的业务包括:认证、加密、压缩、与电子邮件兼容、基数-64变换。
4.1 认证
认证的步骤是:①发信人创建信息M;②发信人使用MD5算法产生128位的消息摘要H;③发信人用自己的私钥,采用RSA算法对H进行加密ER,M‖ER连接后进行压缩得到Z;④将Z通过互联网发送出去;⑤接收者收到信息后首先进行解压Z-1,使用发信人的公开密钥采用RSA算法进行解密得出H,用接收到的M计算消息摘要H,将得出的两个H进行比较,如果相同则接收,否则表示被篡改,拒绝。
4.2 加密
加密的步骤:发信人对信息M进行压缩,采用IDEA算法对其进行加密,用接收者的公钥对密钥进行加密,与M进行连接后发出,接收者采用RSA算法进行解密得到会话密钥,将会话密钥按IDEA算法进行解密,并解压缩,并到原文。
在加密过程中,由于信息相对内容较多,因此对信息的加密采用的是对称加密算法IDEA来实现,而密钥采用的是安全强度为高的非对称加密算法RSA实现,通过IDEA和RSA结合,不但提高了邮件传输的安全性,而且在加解密时间上也缩短了。
4.3 压缩
PGP采用ZIP算法压缩信息,这不但节省了存储空间,而且在传输过程中也节省了时间,另外,在对信息进行加密之前压缩,也相当于进行了一次变换,使其安全性增强。
4.4 与电子邮件兼容
由于电子邮件只允许使用ASCⅡ字符串,而PGP的输出却是8位串,为了与电子邮件进行兼容,PGP采用基数-64变换实现将输出的8位串转换为可以打印的ASCII字符串。
4.5 PGP消息分段和重组
电子邮件中对消息内容的长度有限制的,当大于所限制的长度时要进行分段,分段是在所有处理结束之后才进行,所以会话密钥和签名在第一个段开始位置出现。在接收端,PGP将重新组合成原来的信息。
5 PGP安全性分析
由于PGP是一种混合密码体系,它的安全性在于IDEA、RSA、MD5算法的安全性分析。
5.1 IDEA的安全性
在PGP中采用IDEA的64位CFB模式,很多研究者对IDEA的弱点进行了分析,但也没有找到破译的方法,由此可见,IDEA算法也是比较安全的,它的攻击方法只有“直接攻击”或者是“密钥穷举”攻击。(原作者:钟泽秀)5.2 RSA的安全性
RSA算法是非对称密码体制,它的安全性基于大整数的素分解的难解性,经过长期的研究至今也未找到一个有效的解决方案,在数学上就是一个难题,因此,RSA公钥密码体制就建立在对大数的因式分解这个数学难题上。
假设密码分析者能够通过n分解因子得到p和q,那么他很容易就可以求出欧拉函数φ(n)和解密密钥d,从而破译RSA,因此,破译RSA比对n进行因式分解难度更大。
假设密码分析者能够不对n进行因子分解就求出欧拉函数φ(n),那么他可以根据de≡1(modφ(n)),得到解密密钥d,从而破译RSA,因为p+q=n-φ(n)+1,p-q=sqr(p+q)^2-4n,所以知道φ(n)和n就可以容易地求得p和q,从而成功地分解n,所以不对n进行因子分解而直接计算φ(n)比对n进行因子分解难度更大。
假如密码分析者能够即不对n进行因子分解也不需要求φ(n)而是直接求得解密密钥d,那么他就可以计算ed-1,其中ed-1是欧拉函数φ(n)的倍数,因为利用φ(n)的倍数可以容易的分解出n的因子。所以,直接计算解密密钥d比对n进行因式分解更难。
虽然n越大其安全性越高,但由于涉及到复杂的数学运算,会影响到运行速度,那么我们实际运用中,如果来决定n的大小使其既安全其速度又不能太慢,目前n的长度为1024位至2048位比较合理。
研究人员建议,在运用RSA算法时,除了指定n的长度外,还应对p和q进行限制:①p和q的大小应该相差不多;②p-1和q-1都应该包含大的素因子;③gcd(p-1,q-1)应该很小。
5.3 MD5的安全性
MD5是在MD4的基础上发展起来的,在PGP中被用来单向变换用户口令和对信息签名的单向散列算法。它的安全性体现在能将任意输入长度的消息转化为固定长度的输出。目前对单向散列的直接攻击包括普通直接攻击和“生日攻击”。
在密码学中,有这么一句话:永远不要低估密码分析者的能力。这也将是密码设计者与密码分析者的较量,事实上绝对不可破译的密码体制在理论上是不存在的,因此,在实际应用中,一个密码体制在使用一段时间后,会换一些新的参数,或者是更换一种新的密码体制,当然,密钥也是要经常换的。由此可见,PGP软件虽然给我们的电子邮件带来了安全性保障,但它也不是永恒的,也许在不久的将来,由于它的弱点被攻击而被新的安全电子邮件产品所代替。