RSA算法

来源:互联网 发布:已为关闭蜂窝移动数据 编辑:程序博客网 时间:2024/05/16 11:01

著名的公钥密码体制是RSA算法。RSA算法是一种分组密码,利用数论来构造算法,它是迄今为止理论上最为成熟完善的一种公钥密码体制,该体制已经得到广泛的应用,它的安全性基于“大数分解和素数检测”这一已知的著名数学理论难题基础,而体制的构造则基于数学上的Euler定理。


密钥对的产生过程如下。
(1)选择两个大素数p和q。
(2)计算n=p×q。
(3)随机选择加密密钥e,要求e和(p-1)×(q-1)互质。
(4)利用Euclid算法计算解密密钥d,满足e×d=1mod((p-1)×(q-1))。
其中n和d也要互质。两个素数p和q不再需要,应该丢弃,不要让任何人知道。


加密算法:
若用整数X表示明文,用整数Y表示密文,X,Y均小于N,则加密、解密算法如下所示。
加密: Y=Xe mod N
解密: X=Yd mod N



例: 设p=7,q=17。
①计算n。  n=p×q=7×17=119
② 计算φ(n)。φ(n)=(p-1)×(q-1)=96。
③ 选择e。从[0, 95]中选择一个与96互素的数5。
④ 计算d。 5d =1 (mod 96 ) , d=77                                          //意思是:  d*5 mod 96 = 1; 
⑤ 得出    公开密钥(即加密密钥)PK ={5, 119}
               秘密密钥(即解密密钥)SK = {77,119}


公开密钥(即加密密钥)PK = {5, 119}
秘密密钥(即解密密钥)SK =  {77,119}
例:加密:X=19
  加密过程:Y = X^e mod n    即Y= 195  mod 119=66
解密:Y=66
解密过程: X = Y^d mod n 即X= 6677  mod 119=19



0 0
原创粉丝点击