RSA密钥对生成过程具体实践

一 点睛

用具体数字来实践一下RSA的密钥对的生成、加密和解密的过程。不过,用很大的数计算起来会很困难,因此用较小的数来模拟一下。

二 密钥对生成过程

1 求N

准备两个质数p、q,这里选择17和19,它们都是质数。

p=17    (17是质数)

q=19    (19是质数)

下面求N。N=p*q,因此可以进行如下计算。

N=p*q=17*19=323     

2 求L

L是p-1和q-1的最小公倍数。

L=lcm(p-1,q-1)=lcm(16,18)=144

3 求E

E和L的最大公约数必须为1。

gcd(E,L)=1

满足条件的E有很多,例如下面这些数都可以。

5,7,11,13,17,19,23,25,29,31...

这些数称为和L“互质的数”,也就是相对于L是质数的意思。这里选择5作为E。

到此就知道了E=5,N=323,这就是公钥。

4 求D

D必须满足下面条件:

E*D mod L =1

我们来找一找,E乘以几 mod L 等于1呢? D=19可以满足上面的条件,因为:

E*D mod L =5*29 mod 144=145 mod 144 =1

到此,就已经成功生成了密钥对,即:

公钥:(E=5,N=323)

私钥:(D=29,N=323)

公钥(E,N)=(5,323)是可以任意公开的,但是私钥(D,N)=(29,323)必须妥善保存,不能告诉任何人。

5 加密

要加密的明文必须是小于N的数,也就是小于323的数。准确地说,由于解密运算时也需要求mod N,而mod N的结果必定小于N,因此如果明文本身大于N,则解密后无法得到正确的明文。

这里假设要加密的明文是123,加密时使用的是公钥E=5,N=323。

明文的E次方 mod N = 123*123*123*123*123 mod 323=225

因此密文就是225。

6 解密

下面对密文225进行解密。解密时使用的私钥D=29,N=323

密文的D次方 mod N = 225的29次方 mod 323 =123

三 225的29次方 mod 323 的计算过程

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值