- 1、本文档共46页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
续(1) (3)发送方A生成需要签名的信息,并用自己的RSA的解密密钥Kda和Keb共同形成数字签名。 (4)发送方用K加密明文和签名的信息,然后连同Ck一起形成密文C发往接收方。 (5)接收方接收到C后,先用自己的解密密钥Kdb解密出C中的DES密钥K,再利用K解密出明文和签名信息。 续(2) (6)接收方用发送方的公开密钥Kea和自己的解密密钥Kdb对签名信息进行身份认证,然后对签名信息作适当处理后(例如填写自己的标识号等),再形成自己的数字签名信息发往发送方。 (7)发送、接收双方均删除DES密钥K。 思考题 1 . 对称密码体制和非对称密码体制各有何优缺点? 2. 在使用RSA公钥中如果截取了发送给其他用户的密文C=10,若此用户的公钥为e=5,n=35,请问明文的内容是什么? 3. 已知有明文public key encryptions,先将明文以2个字母为组分成10块,如果利用英文字母表的顺序,即a=00,b=01…,将明文数据化。现在令p=53,q=58,请计算得出RSA的加密密文。 4. 试简要比较DES算法和RSA算法的优缺点。 5.假定A和B要用RSA方法进行一次保密又认证的通信。A的公钥是(nA, eA) =(33, 7), B的公钥是(nB, eB)=(15, 5)。 (a) A和B的秘密密钥dA和dB各是什么? (b)A送消息m=2给B,保密又认证,密文C是什么? (c)B如何从C解得m? 6.用Diffie-Hellman密钥交换方法在Alice和Bob之间建立一个会话密钥。Alice向Bob送去(p, α, αxA) = (719, 3, 191),Bob以543回答。Alice的秘密xA为16,求他们之间形成的会话密钥。 结束 选择密文攻击 由于RSA密文是通过公开渠道传播的,攻击者可以获取密文。 假设攻击者为H,密文收件人为T,H得到了发往T的一份密文c,他想不通过分解质因数的方法得到明文m。 换句话说,H需要 m = c^d 。 ?为了恢复 m,H找一个随机数 r , r n,当然他有T的公匙(e,n)。 续 他计算:? ? x=r^e % n (用 T 的公匙加密 r)? ? y=x*c % n (将临时密文x与c相乘)? ? t=r^-1 % n A 知道RSA具有下面的一个特性:? ? 如果 x=r^e % n,那么 r=x^d % n? 因此他想办法让T对 y 用T自己的私匙签名(实际上就是把 y 解密了),然后将结果 u=y^d % n 寄回给A。A只要简单地计算:? ? m = t*u % n ? 上面结论的推导是这样的:? ? t*u % n = (r^-1)*(y^d) n ? ? ? ? ? = (r^-1)*(x^d)(c^d) % n ? ? ? ? ? = (c^d) % n ? ? ? ? ? = m ? 要防止这种攻击的办法就是不要对外来的随机信息签名,或者只对信息的MD5特征值签名。在这里就很容易明白为什么要强调MD5的单向性了,因为MD5的结果是不能预定的,就是说A难以凑出一份刚好能产生 y 这样的MD5特征值的明文来让T签名。 过小的加密指数 e e 是一个小数并不降低RSA的安全性。从计算速度考虑,e 越小越好。 可是,当明文也是一个很小的数时就会出现问题。例如取 e=3 ,而且明文 m比 n 的三次方根要小,那么密文 c = m^e % n 就会等于 m^3。这样只要对密文开三次方就可以得到明文。 RSA的公共模数攻击 若系统中共有一个模数,只是不同的人拥有不同的e和d,系统将是危险的。 最普遍的情况是同一信息用不同的公钥加密,这些公钥共模而且互质,那末该信息无需私钥就可得到恢复。设P为信息明文,两个加密密钥为e1和e2,公共模数是n,则: C1 = P^e1 mod n C2 = P^e2 mod n 攻击者知道n、e1、e2、C1和C2,就能得到P。因为e1和e2互质,故用Euclidean算法能找到r和s,满足:r * e1 + s * e2 = 1 。 RSA的计时攻击法 由 Paul Kocher 发表的。大家可以发现,RSA的基本 运算是乘方取模,这种运算的特点是耗费时间精确取决于乘方次数。这样如果 A 能够监 视到RSA解密的过程,并对它计时,他就能算出d来。 解决方法:打破计算时间与操作数的关系,在计算前后作一些变换,是计算时间与操作数无关。 其他对RSA的攻击法 公共模数攻击: 它是指几个用户公用一个模数 n ,各自 有自己的 e 和 d,在几个用户之间公用 n 会使攻击者能够不用分解 n 而恢
文档评论(0)