RSA加密算法

 

http://zh.wikipedia.org/wiki/RSA加密演算法


公钥和私钥的产生

假设Alice想要通过一个不可靠的媒体接收Bob的一条私人讯息。她可以用以下的方式来产生一个公钥和一个私钥

  1. 随意选择两个大的质数pqp不等于q,计算N=pq
  2. 根据欧拉函数,不大于N且与N互质的整数个数为(p-1)(q-1)
  3. 选择一个整数e与(p-1)(q-1)互质,并且e小于(p-1)(q-1)
  4. 用以下这个公式计算dd× e ≡ 1 (mod (p-1)(q-1))
  5. pq的记录销毁。

e是公钥,d是私钥。d是秘密的,而N是公众都知道的。Alice将她的公钥传给Bob,而将她的私钥藏起来。

 

 

加密消息

假设Bob想给Alice送一个消息m,他知道Alice产生的Ne。他使用起先与Alice约好的格式将m转换为一个小于N的整数n,比如他可以将每一个字转换为这个字的Unicode码,然后将这些数字连在一起组成一个数字。假如他的信息非常长的话,他可以将这个信息分为几段,然后将每一段转换为n。用下面这个公式他可以将n加密为c

n^e /equiv c/ (/mathrm{mod}/ N)

计算c并不复杂。Bob算出c后就可以将它传递给Alice。

 

解密消息

Alice得到Bob的消息c后就可以利用她的密钥d来解码。她可以用以下这个公式来将c转换为n

c^d /equiv n/ (/mathrm{mod}/ N)

得到n后,她可以将原来的信息m重新复原。

解码的原理是

c^d /equiv n^{e /cdot d}/ (/mathrm{mod}/ N)

以及ed ≡ 1 (mod p-1)和ed ≡ 1 (mod q-1)。费马小定理证明

n^{e /cdot d} /equiv n/ (/mathrm{mod}/ p)     和     n^{e /cdot d} /equiv n/ (/mathrm{mod}/ q)

这说明(因为pq不同的质数)

n^{e /cdot d} /equiv n/ (/mathrm{mod}/ pq)

 

 

发布了5 篇原创文章 · 获赞 0 · 访问量 1万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览