10分钟深入浅出 RSA 算法

RSA 是目前使用最广泛的非对称加密密码算法,也称为公钥密码算法。它的名字是由它的三位开发者 Ron Rivest、Adi Shamir 和 Leonard Adleman 的 first name 的首字母组成的。

P.S.

对称密码是指在加密和解密时使用同一密钥的方式。
非对称加密则是指在加密和解密时使用不同密钥的方式。

1.RSA 加密

在 RSA 中,明文、密钥和密文都是数字,RSA的加密过程可以用下列公式来表达

=EmodN 密 文 = 明 文 E m o d N

对代表明文的数字 E 次方后再对其用 N 求余,就得到了用RSA加密后的密文。

2.RSA 解密

RSA 解密和加密过程一样简单

=DmodN 明 文 = 密 文 D m o d N

将加密后的密文求 D 次方后再用 N 求余,就得到了原来的明文。

简单来说就是 E和N的组合就是公钥,D和N的组合就是私钥

NameDescription
公钥数E 和 数N
私钥数D 和 数N
加密 =EmodN 密 文 = 明 文 E m o d N (明文的 E 次方除以 N 的余数)
解密 =DmodN 明 文 = 密 文 D m o d N (密文的 D 次方除以 N 的余数)

那么,我们该如何计算 E、D、N 三个数字呢?

3. 生成密钥对

生成顺序:N、E、D

3.1

N=pq N = p ∗ q  ( p、q 为两个很大很大的质数)

中间过程

L=lcm(q1,p1) L = l c m ( q − 1 , p − 1 )  (L 是 p - 1, q - 1的最小公倍数)

3.2

1<E<L 1 < E < L
gcd(E,L)=1 g c d ( E , L ) = 1  (E 和 L 互质)

3.3

1<D<L 1 < D < L
EDmodL=1 E ∗ D m o d L = 1

总的来说就是

NameDescription
(1)求 N用伪随机数生成质数 p、q, N = p * q
(2)求 LL = lcm(p-1, q-1),L是q-1,p-1的最小公倍数
(3)求 E1 < E < L, gcd(E, L)=1, E、L互质
(4)求 D1 < D < L, E * d mod L = 1
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值