您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 金融资料 > RSA算法与保密协议
RSA算法与保密协议章凌豪信息传输中的保密问题通信双方约定一个密码加密?(公共秘密)公开加密的算法,但只有我自己知道如何解密那么这个密码如何传输?从直觉上讲,知道加密的方法,反过来做不就能解密了吗?不对称的加密、解密算法?A任意想一个三位数A告诉B这个数乘以91的乘积的末三位B将这个数乘以11123123×91=11193193×11=2123构造解密算法并不容易上例的原理:91×11=10011001乘以任何三位数,末三位都不变可以更大500000001=42269×11829在知道加密算法的前提下,构造解密算法也是不容易的这就是不对称性为了提高安全性,需要进一步增强这种不对称性RSA算法利用了一种非常犀利的不对称性:大数分解1997年由MIT的RonRivest、AdiShamir、LeonardAdleman提出预备知识:Euler-Fermat定理𝑎𝜑(𝑝)=1(𝑚𝑜𝑑𝑝)p、a是任意整数φp=1~p−1中与p互质的数的个数(包括1)显然若p是质数,有φp=p−1可以证明对于𝑛=𝑝𝑞𝑝、𝑞是质数,有𝜑𝑛=(𝑝−1)(𝑞−1)RSA算法的具体实现找两个大质数p、𝑞n=pqm=p−1q−1找一个比𝑚小且与𝑚互质的e明文𝑎(𝑎𝑛)密文𝑐=𝑎𝑒𝑚𝑜𝑑𝑛计算𝑐𝑑𝑚𝑜𝑑𝑛即得到𝑎mod𝑛p=13,𝑞=17𝑛=221,𝑚=192𝑎𝑚=1(𝑚𝑜𝑑𝑛)𝑎、𝑎193、𝑎385、𝑎577除以221同余c=𝑎11𝑚𝑜𝑑221计算𝑐35𝑚𝑜𝑑221=𝑎385𝑚𝑜𝑑221=𝑎(𝑚𝑜𝑑221)关键的d和e怎么来?𝑎𝑑𝑒=𝑎𝑚𝑜𝑑𝑛𝑎𝑚=1𝑚𝑜𝑑𝑛𝑎𝑚+1=𝑎(𝑚𝑜𝑑𝑛)𝑎2𝑚+1=𝑎𝑚𝑜𝑑𝑛…𝑑𝑒=1(𝑚𝑜𝑑𝑚)𝑑在比𝑚小的质数中选通过解同余方程得到𝑒𝑒=1111𝑑=1𝑚𝑜𝑑192一个解为𝑑=35但是其他人并不知道m而𝑚=𝑝−1𝑞−1而p、𝑞是两个大质数𝑛=pq也是一个大数公钥与私钥公钥对(𝑒,𝑛)私钥对𝑑,𝑛(拓展欧几里得算法)我生成公钥与私钥发布公钥任何人可以将消息用公钥加密后发给我我用私钥解密其他人只知道就要根据𝑑𝑒=1(𝑚𝑜𝑑𝑚)解出𝑑但是𝑚的值未知必须将𝑛分解成两个质数𝑝、𝑞之积(无高效算法)
本文标题:RSA算法与保密协议
链接地址:https://www.777doc.com/doc-2848661 .html