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
浙公网安备 33010602011771号