1.先两个素数 p和q 这里选p=17 q=11
2.求模n = pq = 17*11=187
3.欧拉函数 Φ(n)=(17-1)*(10-1) = 160
4.任意选一个素数e与187 互素 ,这里选e = 7
5.计算乘法逆元d 用Euclid展转相除, ed=1(mod Φ(n)) 使得 7*d mod 160 = 1
5.1求d具体步骤
扩展欧几里得算法求乘法逆元
A(i)=B(i-1);A3=φ(n)=160 和B3=e=7,
借用康同学的图,仅说明计算方式
本文应该是这样的
商 B=A-B*Q
q A1 A2 A3 B1 B2 B3
- 1 0 160 0 1 7
22 0 1 7 1 -22 6
1 1 -6 6 -1 23 1
算到B3=1为止 最后一行B2=23就是d
6.公钥:PU (e,n) {7,187}
7.私钥:PR (d,n) {23,187}
8.以下是加解密计算过程:
8.1明文M=88
8.2密文C = 88^7 mod 187
8.3加密计算过程:
7 分为 1 2 4
88^1 mod 187 = 88
88^2 mod 187 = 77
88^4 mod 187 = 59969536 mod 187 = 132
8.4密文C =88*77*132 mod 187 = 894432 mod 187 = 11
9解密计算过程
9.1M = 11^23 mod 187
23 分为 1 2 4 8 8
11^1 mod 187 =11
11^2 mod 187 =121
11^4 mod 187 =14641 mod 187 =55
11^8 mod 187 =214358881 mod 187 =33
11^8 mod 187 =214358881 mod 187 =33
9.2明文M = 11*121*55*33*33 mod 187 =7970245 mod 187 = 88
本文详细介绍了RSA算法的原理,包括选取素数p和q,计算模n和欧拉函数Φ(n),选择公钥e并计算私钥d,以及加密和解密的具体计算过程。通过实例展示了如何将明文88加密成密文11,并成功解密回原文88,揭示了RSA算法的强大和安全性。
1269

被折叠的 条评论
为什么被折叠?



