前言:僅個人小記。 注意到 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 )
證畢!