A small file encryption project based on RSA algorithm./基与RSA算法实现的一个关于文件加密的小项目。
RSA密钥产生过程:
- 随机选择两个不相等的质数p和q(实际应用中,这两个质数越大,就越难破解)。
- 计算p和q的乘积n,n = pq。
- 计算n的欧拉函数φ(n)。
- 随机选择一个整数e,条件是1< e < φ(n),且e与φ(n) 互质。
- 计算e对于φ(n)的模反元素d,使得de≡1 mod φ(n)。
- 产生公钥(e,n),私钥(d,n)。
实例描述:
- 选择p = 3, q = 11。
- n = pq = 33。
- φ(n) = (p - 1)(q - 1) = 20。
- 选择e = 3, 此时e与φ(n) 互质
- (de)modφ(n) =(d*3)mod20=1,求出d=7。
- 公钥(3,33),私钥(7,33)。
- 例如对明文数字“5”加密,根据加密公式,密文=(5^3)mod(33) = 125 % 33 = 26
- 把上述密文解密,明文=26^7 % 33 = 8031810176 % 33 = 5。