http://blog.csdn.net/zhuankeshumo/article/details/17151859
RSA 算法
若要生成密钥对,可以从创建名为 p 和 q 的两个大的质数开始。这两个数相乘,结果称为 n。因为 p 和 q 都是质数,所以 n 的全部因数为 1、p、q 和 n。
如果仅考虑小于 n 的数,则与 n 为互质数(即与 n 没有公因数)的数的个数等于 (p - 1)(q - 1)。
现在,选择一个数 e,它与计算的值为互质数。则公钥表示为 {e, n}。
若要创建私钥,则必须计算 d,它是满足 (d)(e) mod n = 1 的一个数。根据 Euclidean 算法,私钥为 {d, n}。
纯文本 m 到密码文本 c 的加密定义为 c = (m ^ e) mod n。解密则定义为 m = (c ^ d) mod n。
1