【WP】RSA加密(算法)

首先RSA是什么?

是三个人的名字缩写:Rivest、Shamir 和 Adleman。

RSA加密算法还是在无意间看到的,觉等挺有趣的,就了解了一下下,数学重要。

李靖和 《金融行业程序员 从菜鸟到入门》

rsa

RSA加密算法流程:

1. 任意选取两个不同的大质数 p 和 q,计算乘积 r=p*q 。
—————————————————————————
eg.
p = 11
q = 17
r = p * q = 187

—————————————————————————

2. 任意选取一个整数 e,e 与(p-1)*(q-1)互质,整数 e 用做加密密钥。
注意:e 的选取是很容易的,例如,所有大于 Max(p,q)/2 的质数都可用。
—————————————————————————
10 * 16 = 160
Max(11,17)/ 2 = 17 / 2 = 8
eg.
e = 9

—————————————————————————

3.确定解密密钥 d: d * e ≡ 1 mod((p – 1)*(q – 1))根据 e、p 和 q 可以计算出 d。只根据 r 和 e(不是p和q)要计算出 d 是不可能的。因此,任何人都可
对明文进行加密,但只有授权用户(知道 d)才可对密文解密。
—————————————————————————
d * 9 = 1 ( mod 160 )
d = 89 ,14 , …
if.
89 * 9 = 801
801 mod 160 = 5 …… 1

—————————————————————————
4.公开整数 r 和 e,但是不公开d。
—————————————————————————
r = 187
e = 9
d = 89

—————————————————————————
5.将明文 P (假设 P 是一个小于 r 的整数)加密为密文 C,计算方法为:
C = P^e mod r
—————————————————————————
eg.
P = 180
C = 180^9 mod 187 = 58

—————————————————————————
6.将密文 C 解密为明文 P,计算方法为:
P = C^d mod r
—————————————————————————
C = 58
P = 58^89 mod 187 = 180 

—————————————————————————
!!! OK
注:
公钥为(r,e)、私钥为(r,d)。
附:
这里,有几个数学名词:同余式、费马定理、欧拉函数/定理、乘法群、 辗转相除。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值