rsa 详解及例题及python
算法原理
RSA公开密钥密码体制的原理是:根据数论,寻求两个大素数比较简单,而将它们的乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥
算法描述
- 任意选取两个不同的大素数p和q计算乘积 n=pq
- n 的欧拉函数 φ(n): φ(n)=(p-1)(q-1)
- 任意选取一个大整数e,满足 gcd(e, φ(n))=1,整数e用做加密钥
- (注意:gcd是最大公约数,e的选取是很容易的,例如,所有大于p和q的素数都可用)
- 确定的解密钥d,满足 (de) mod φ(n) = 1
- 公开整数n和e,秘密保存d
- 公钥(n,e)
- 私钥(n,d)
c:密文
m:明文
将明文 m 加密成密文c :c = m^e mod n
将密文 c 解密为明文m: m = c^d mod n
案例手稿
我可是开了计算器的,这手算不来