PQ rsa 练习

1,找两个很大的素数(质数)P 和 Q,越大越好,比如 100 位长的, 然后计算它们的乘积
N=P×Q,M=(P-1)×(Q-1)。

2,找一个和 M 互素的整数 E,也就是说 M 和 E 除了 1
以外没有公约数。

3,找一个整数 D,使得 E×D 除以 M 余 1,即 E×D mod M =
1。

现在,世界上先进的、最常用的密码系统就设计好了,其中 E 是公钥谁都可以用来加密,D 是私钥用于解密,一定要自己保存好。乘积 N
是公开的,即使敌人知道了也没关系。

现在,我们用下面的公式对 X 加密,得到密码 Y。
   


好了,现在没有密钥
D,神仙也无法从 Y 中恢复 X。如果知道 D,根据费尔马小定理,则只要按下面的公式就可以轻而易举地从 Y 中得到 X。
   


P=5  Q =7

N= 5 *7 =35

M = 4 *6 =24

选择E =11

D 可以 为  11 35 59

对 1-20 加密  =myMOD( A1,11,35)

1 1
2 18
3 12
4 9
5 10
6 6
7 28
8 22
9 4
10 5
11 16
12 3
13 27
14 14
15 15
16 11
17 33
18 2
19 24
20 20

解密使用 D=59 =myMOD( B1,59,35)

1 1
18 2
12 3
9 4
10 5
6 6
28 7
22 8
4 9
5 10
16 11
3 12
27 13
14 14
15 15
11 16
33 17
2 18
24 19
20 20

Function myMod(a As Integer, i As Integer, m As Integer) As Integer

myMod = 1

For j = 1 To i myMod = myMod * a

While myMod > m  

myMod = myMod - m

Wend

Next j

End Function

原文地址:https://www.cnblogs.com/cndavy/p/3178263.html