RSA加密算法
注: 下文中的 % 符号一律表示取模(mod)操作,而非取余(rem).
取模(Python)
1 | 8 % -5 = -2 |
取余(JavaScript)
1 | 8 % -5 = 3 |
RSA 算法
1 随机选择两个不同的质数 p 和 q.
2 计算 p * q, 记为 n.
3 计算卡迈尔克函数 λ(n).
因为 n = pq, 且 p 和 q 均为质数, 则 λ(n) 为 φ(p) 和 φ(q) 的最小公倍数.
4 随机选择一个整数 e, 满足 1 < e < λ(n) , 并且 e 和 λ(n) 互质.通常会选择 65537 作为 e 的值.
5 计算 e 的模反元素 d, 即 .
6 将 n 和 e 作为 公钥, n 和 d 作为私钥.
加密:
解密: