- 1、本文档共59页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
现代密码学第七讲公钥密码学2
上节内容回顾 公钥密码体制的提出及分类 公钥密码体制的基本概念 单向陷门函数的概念 设计公钥加密算法--背包密码体制 RSA算法的安全性 4)RSA的选择密文攻击 一般攻击者是将希望解密的信息C作一下伪装reC,让拥有私钥的实体解密。然后,经过解密计算就可得到它所想要的信息。 ( reC ) d = red * Cd mod n = r * M mod n ,所以 M= ( reC ) d * r-1 这个固有的问题来自于公钥密码系统的最有用的特征--每个人都能使用公钥。但从算法上无法解决这一问题,只有采用好的公钥协议,保证工作过程中实体不对其他实体任意产生的信息解密。 RSA算法的安全性 5)RSA的公共模数攻击 若系统中用户共有一个模数n ,而拥有不同的e和d。若存在同一信息(设为P)分别用不同的公钥(e1和e2)加密, C1 = Pe1 mod n ;C2 = pe2 mod n 设密码分析者截获n、e1、e2、C1和C2, 若恰好e1和e2互质,则他可以得到P。 RSA算法的安全性 证明:因为e1和e2互质,故用Euclidean算法能找到r和s,满足: r * e1 + s * e2 = 1 则 (C1) r * (C2) s = ( Pe1) r * (pe2) s mod n = P r * e1 + s * e2 mod n =P mod n ElGamal算法 有限域上离散对数问题 已知(Zp,+,*)是一个有限域,g为Zp*的生成元,y∈ Zp ,求x使得y=gx mod p 如果求离散对数问题是容易的,则获得公钥攻击者能够解出x,则算法完全破译. ElGamal算法 为什么离散对数问题难解? RSA与ElGamal比较 椭圆曲线密码体制 设Ep(a,b)表示上面方程所定义的椭圆曲线上的点集{(x,y)|0≤xp,0≤yp,且x,y均为整数}并上无穷远点O. Ep(a,b)由以下方式计算: ① 对每一x(0≤xp且x为整数),计算x3+ax+b(mod p). ② 决定①中求得的值在模p下是否有平方根,如果没有,则曲线上没有与这一x相对应的点;如果有,则求出两个平方根(y=0 时只有一个平方根). 3) 灵活性好 有限域GF(q)一定的情况下,其上的循环群(即GF(q)-{0})确定. 而GF(q)上的椭圆曲线可以通过改变曲线参数,得到不同的曲线,形成不同的循环群. 因此,椭圆曲线具有丰富的群结构和多选择性. 本节要点小结 RSA算法及攻击方法 ElGmal算法 椭圆曲线密码体制 作业 1. 设通信双方使用RSA加密体制,接收方的公开钥是(e,n)=(5,35),接收到的密文是C=10,求明文M. 2. 在ElGamal加密体制中,设素数p=71,本原根g=7. 1) 如果接收方B的公开钥是yB=3,发送方A选择的随机整数k=2,求明文M=30所对应的密文. 2) 如果A选择另一个随机整数k,使得明文M=30加密后的密文是C=(59,C2),求C2. 作业 3 利用椭圆曲线实现ElGamal密码体制,设椭圆曲线是E11(1,6),生成元G=(2,7),接收方A的秘密钥nA=7. 1) 求A的公开钥PA. 2) 发送方B欲发送消息Pm=(10,9),选择随机数k=3,求密文Cm. 3) 显示接收方A从密文Cm恢复消息Pm的过程. 作业 思考题(选作) 假设用户使用RSA加密算法加密信息,攻击者已知用户的公开参数。 问:如果用户发现自己的私钥d丢失,需要更换密钥,方便期间,用户重新选取了加密密钥e(解密密钥d),而继续使用原来的模数N。请问,这样会有安全隐患吗?请说明理由。 X *97+Y*75=1 97=75+22 = 22=97-75 75=3*22+9 = 9=75-3*22=75-3*(97-75) =4*75-3*97 22=2*9+4 =4=22-2*9 =(97-75)-2*(4*75-3*97)=7*97 -9*75 9=2*4+1 =1=9-2*4=(4*75-3*97)-2*(7*97-9*75)=-17*97+22*75 A=kn+t, 所以A (mod n)=t,又因为;t=k1*p+t1, 所以 A (mod n) (mod p)=t1;另一方面A=kn+t=k*p*q+k1*p+t1, so A (mod p )=t1;从而, A (mod n) (mod p)= A (mod p) 攻击者若已知k,可以计算y^k,然后用C2/y^k就得到明文; 若是k重复使用,则C2/C2’=M/M’,知道其中的一个明文,另一个可求。 假设攻击者是一个解密系统的合法用户,但是
文档评论(0)