前言:仅个人小记。 注意到 RSA 中并不要求消息 m 要和模数 n 互素,而 RSA 所依赖的“费马定理,欧拉定理”,仿佛都要要求 m 须和模数 n 互素。这里给出针对 RSA 中 n 为两个素数乘积时的具体解释,实际上应归属于广义的欧拉定理,这里暂不讨论广义的欧拉定理。同时,根据本文的推导逻辑(不做讨论),容易直觉上知道 RSA 中 n 不应该是多个素数的乘积,而只能是2个素数的乘积。(因为 m 中可以缺不止一个素数,而RSA的正确性要求当 m和n 不互素的时候,m 中最多只能缺一个素数)
前要知识
普通版的欧拉定理 a φ ( m ) % m ≡ 1 , 其 中 a ⊥ m , φ ( ⋅ ) 是 欧 拉 函 数 {a}^{\varphi(m)} \%m\equiv1,其中a\perp m, \varphi(\cdot)是欧拉函数 a φ ( m ) % m ≡ 1 , 其 中 a ⊥ m , φ ( ⋅ ) 是 欧 拉 函 数 公式图片展示如下,
n=pq,其中 p,q 为素数,则若 m ⊥ n m\perp n m ⊥ n ,则必然m = k p m=kp m = k p 或者 m = k q m=kq m = k q ,m 只可能是这两种形式之一 。
n=pq,其中 p,q 为素数,则 φ ( n ) = φ ( p ) φ ( q ) \varphi(n)=\varphi(p)\varphi(q) φ ( n ) = φ ( p ) φ ( q )
RSA 使用要求
c ≡ m e ( m o d n ) c\equiv m^e\ (mod \ n) c ≡ m e ( m o d n ) e d ≡ 1 ( m o d φ ( n ) ) ed\equiv1 (mod\ \varphi(n)) e d ≡ 1 ( m o d φ ( n ) ) m ∈ { 0 , 1 , . . . , n − 1 } m\in \{0,1,...,n-1\} m ∈ { 0 , 1 , . . . , n − 1 }
注意:不要求 m ⊥ n m\perp n m ⊥ n .
RSA 成立的根基在于 m e d = m k φ ( n ) + 1 ≡ m ( m o d n ) m^{ed}=m^{k\varphi(n)+1}\equiv m(mod\ n) m e d = m k φ ( n ) + 1 ≡ m ( m o d n ) 恒成立。
显然,当 m ⊥ n m\perp n m ⊥ n 时,上式直接满足欧拉定理。
当 m ⊥̸ n m\not\perp n m ⊥ n 时,这是本文讨论的重点 ,讨论如下:
这里只结合 RSA 这个特殊环境讨论,只考虑 n = p q , 其 中 p 、 q 为 两 个 素 数 n=pq, 其中p、q为两个素数 n = p q , 其 中 p 、 q 为 两 个 素 数
即我们要证明 m φ ( n ) + 1 = m , m ⊥ n , n = p q , 其 中 p , q 为 素 数 m^{\varphi(n)+1}=m, m\perp n,n=pq,其中 p,q 为素数 m φ ( n ) + 1 = m , m ⊥ n , n = p q , 其 中 p , q 为 素 数
由前要知识 2 知道,必然 m 的形式只可能为 m = k p 或 者 m = k q , k 为 常 数 m=kp 或者 m=kq,k 为常数 m = k p 或 者 m = k q , k 为 常 数 ,我们只讨论 m = k p m=kp m = k p (另一种情况的讨论完全一致)。
因为 p、q 是素数,容易知道 k p ⊥ q kp\perp q k p ⊥ q 。进而根据上述普通版欧拉定理知道,必然有
( k p ) φ ( q ) ≡ 1 ( m o d q ) (kp)^{\varphi(q)}\equiv 1 (mod \ q) ( k p ) φ ( q ) ≡ 1 ( m o d q ) 故而得到
( ( k p ) φ ( q ) ) φ ( p ) ≡ 1 ( m o d q ) ((kp)^{\varphi(q)})^{\varphi(p)}\equiv 1(mod \ q) ( ( k p ) φ ( q ) ) φ ( p ) ≡ 1 ( m o d q ) 进而有
( k p ) φ ( n ) = ( k p ) φ ( p ) φ ( q ) ≡ 1 ( m o d q ) (kp)^{\varphi(n)}=(kp)^{\varphi(p)\varphi(q)}\equiv1(mod\ q) ( k p ) φ ( n ) = ( k p ) φ ( p ) φ ( q ) ≡ 1 ( m o d q )
进而,( k p ) φ ( n ) = s q + 1 , s 为 某 个 整 数 (kp)^{\varphi(n)}=sq+1,s 为某个整数 ( k p ) φ ( n ) = s q + 1 , s 为 某 个 整 数
注意,上面是等式,不是同余式。故而可以将其带入要证明的式子左侧,得到
( k p ) φ ( n ) + 1 = ( k p ) φ ( n ) ( k p ) = ( s q + 1 ) ( k p ) = s q k p + k p = s k q p + k p = s k n + k p ≡ k p ( m o d n ) (kp)^{\varphi(n)+1}=(kp)^{\varphi(n)}(kp)=(sq+1)(kp)=sqkp+kp=skqp+kp=skn+kp\equiv kp(mod\ n) ( k p ) φ ( n ) + 1 = ( k p ) φ ( n ) ( k p ) = ( s q + 1 ) ( k p ) = s q k p + k p = s k q p + k p = s k n + k p ≡ k p ( m o d n )
即 m = k p m=kp m = k p ,即 m ⊥̸ n , n = p q , 其 中 p , q 为 素 数 m\not \perp n, n=pq,其中 p,q 为素数 m ⊥ n , n = p q , 其 中 p , q 为 素 数 ,有m φ ( n ) + 1 ≡ m ( m o d n ) m^{\varphi(n)+1}\equiv m(mod\ n) m φ ( n ) + 1 ≡ m ( m o d n )
证毕!