目录
1、概念
随机生成两个互不相等的大素数p和q,p和q是1024bit,pq=n,n的范围是2048bit,取e为65537,φ(n)=(p-1)(q-1),使用e·d ≡ 1 (mod φ(n))得到d,(e, n)为公钥,(d, n)为私钥。
加密过程:计算密文 = 明文^e mod n
解密过程:计算明文 = 密文^d mod n
RSA 的私钥 d,本质上是"因数分解信息的压缩表达",d 是"隐藏结构 φ(n)"的代理
2、RSA加密解密的原理
RSA 依赖一个定理(欧拉定理):a^φ(n)≡1(mod n),这意味着:在 mod n 的世界中:"指数"是周期性的周期 = φ(n)
所以如果:e·d ≡ 1 (mod φ(n)),那么:m^(e·d) ≡ m^(1 + kφ(n)) ≡ m
φ(n) 是"指数的模空间",a·b ≡ 1 (mod m)是"乘法空间的逆元"
一个很直观的小例子(n=7)
取 a=3:
3^1 ≡ 3
3^2 ≡ 2
3^3 ≡ 6
3^4 ≡ 4
3^5 ≡ 5
3^6 ≡ 1 ← 回到 1
周期 = 6 = φ(7)
3、安全性
e · d ≡ 1 (mod φ(n))
也就是:
d = e⁻¹ mod φ(n)
关键卡点:你不知道 φ(n)
φ(n) = (p-1)(q-1)
所以问题等价于:
已知 (n, e),求 d
⇔ 求 φ(n)
⇔ 分解 n
a. 知道 p 和 q,根据φ(n)=(p−1)(q−1)直接得出φ(n),进而快速得出d
b.知道n,没有 p 和 q,就无法得到 φ(n)
c.知道φ(n),φ(n) = (p-1)(q-1),pq=n,联立方程组,直接算出p和q,知道 φ(n) ≈ 已经破了 RSA
4、成员限制关系
参数 是否是质数
p 必须是质数
q 必须是质数
n 不是质数(是合数)
e 不要求是质数(通常选特殊数)
d 不是质数
p 和 q ------必须是质数,且 p ≠ q
e 和 φ(n) 互质