CRYPTO January 16, 2020

RSA密码学习

Words count 2.4k Reading time 2 mins. Read count 1000000

步骤 描述 注释
找出两个质数 P,Q
计算公共模数 N=P*Q
欧拉函数 φ(N)=(P-1)(Q-1)
计算公钥E 1<E<φ(N) E的取值必须是整数 E和φ(N)必须是互质数
计算私钥D E*D%φ(N)=1
加密 C=M的E次方 mod N C:密文 M:明文
解密 M=C的D次方 mod N C:密文 M:明文

公钥=(E,N)

私钥=(D,N)

解密

示例

1,找出质数P,Q

$$
P=3
$$

$$
Q=11
$$

2,计算公共模数

$$
N=PQ=311=33
$$

3,欧拉函数

$$
φ(N) = (P-1)(Q-1) = 2 * 10 = 20
$$

4,计算公钥E

$$
1 < E < φ(N)
$$

$$
1 <E < 20
$$

E 的取值范围 {3, 7, 9, 11, 13, 17, 19}
E的取值必须是整数, E 和 φ(N) 必须是互质数
为了测试,我们取最小的值 E =3
3 和 φ(N) =20 互为质数,满足条件

5,计算私钥D

$$
E * D mod φ(N) = 1
$$

$$
3 * D mod 20 = 1
$$

6,公钥加密

加密

M = 2

E = 3

N = 33

C = 8

7,私钥解密

解密

C = 8

D = 7

N = 33

M = 2

0%