\(\mathrm{RSA}\) 公钥系统(一)
定理 1 模 \(pq\) 情形的“欧拉”公式
费马小定理在 \(m=pq\) 时的推广,这是在密码学应用中最重要的情况。
设 $ p $ 和 $ q $ 是不同的素数,且设 $ g = \gcd(p - 1, q - 1) $。那么对于所有满足 $ \gcd(a, pq) = 1 $ 的 $ a $,有:
特别地,如果 $ p $ 和 $ q $ 是奇素数,那么对于所有满足 $ \gcd(a, pq) = 1 $ 的 $ a $,有:
证明:
由中国剩余定理,
用费马小定理验证右边,成立。\(\square\)
Diffie–Hellman 密钥交换和 ElGamal 公钥加密系统的安全性依赖于解决以下形式的方程的困难性假设:
其中 $ a \(、\) b $ 和 $ p $ 是已知量,且 $ p $ 是素数,$ x $ 是未知量。
将要探讨的 \(\mathrm{RSA}\) 公钥加密系统 依赖于解决以下形式的方程的困难性假设:
其中 $ e \(、\) c $ 和 $ N $ 是已知的(且通常假设 \(\gcd (e,\varphi(N))=1\),由欧拉定理 \(e\) 是在模 \(\varphi(N)\) 下定义的,这也相当于说 \(e\) 在模 \(\varphi(N)\) 下有逆),$ x $ 是未知量。换句话说,\(\mathrm{RSA}\) 的安全性依赖于假设在模 $ N $ 下求解 $ e $ 次方根是困难的。
通过下述内容,我们很快会看到解这个方程的困难性依赖于 “任给一个大数 \(N\),计算出 \(N\) 的素因子分解” 是困难的。
这个假设合理吗?如果模数 $ N $ 是素数,且 \(\gcd(e,N-1)=1\) 则在模 $ N $ 下计算 $ e $ 次方根相当容易,如下命题所述。
命题 2
设 $ p $ 是一个素数,$ e \geq 1 $ 是一个整数,且满足 $ \gcd(e, p-1) = 1 \(。\) e $ 在模 $ p-1 $ 下有一个逆元,记作 $ d $,即:
那么,方程
有唯一解 $ x \equiv c^d \ (\text{mod} \ p) $。
证明:
两边同时取 $ d $ 次方:
命题 \(2\) 表明,如果模数是素数 \(p\),则取 \(e\) 次方根是容易的。对于合数模数 \(N\),情况看起来类似,但有一个关键的区别——我们不知道 \(N\) 的素因子分解。但如果我们知道如何分解 \(N\),那么计算 \(e\) 次方根再次变得容易。以下命题解释了当 \(N = pq\) 是两个素数的积时,如何计算 \(e\) 次方根。
命题 3
设 \(p\) 和 \(q\) 是不同的素数,且 \(e ≥ 1\) 满足 \(\gcd(e, (p - 1)(q - 1))=1\Leftrightarrow\gcd (e,(p-1)(q-1)/g)=1\) (用后者计算 \(d\) 复杂度更低,速度更快)。 \(e\) 在模 \((p - 1)(q - 1)\) 下的逆元记作 \(d\), \(de \equiv 1 \ (\text{mod} \ (p - 1)(q - 1))\)。则同余式
有唯一解 \(x \equiv c^d \ (\text{mod} \ pq)\)。
证明:
和命题 \(2\) 相同,需要使用定理 \(1\).