RSA中 底數m和模數 n 不互素是仍然成立

前言:僅個人小記。 注意到 RSA 中並不要求消息 m 要和模數 n 互素,而 RSA 所依賴的“費馬定理,歐拉定理”,彷彿都要要求 m 須和模數 n 互素。這裏給出針對 RSA 中 n 爲兩個素數乘積時的具體解釋,實際上應歸屬於廣義的歐拉定理,這裏暫不討論廣義的歐拉定理。同時,根據本文的推導邏輯(不做討論),容易直覺上知道 RSA 中 n 不應該是多個素數的乘積,而只能是2個素數的乘積。(因爲 m 中可以缺不止一個素數,而RSA的正確性要求當 m和n 不互素的時候,m 中最多隻能缺一個素數)

前要知識

  1. 普通版的歐拉定理 aφ(m)%m1,am,φ(){a}^{\varphi(m)} \%m\equiv1,其中a\perp m, \varphi(\cdot)是歐拉函數公式圖片展示如下,
  2. n=pq,其中 p,q 爲素數,則若 mnm\perp n ,則必然m=kpm=kp 或者 m=kqm=kqm 只可能是這兩種形式之一
  3. n=pq,其中 p,q 爲素數,則 φ(n)=φ(p)φ(q)\varphi(n)=\varphi(p)\varphi(q)

RSA 使用要求

cme (mod n)c\equiv m^e\ (mod \ n)ed1(mod φ(n))ed\equiv1 (mod\ \varphi(n))m{0,1,...,n1}m\in \{0,1,...,n-1\}
注意:不要求 mnm\perp n.

RSA 成立的根基在於 med=mkφ(n)+1m(mod n)m^{ed}=m^{k\varphi(n)+1}\equiv m(mod\ n)恆成立。

顯然,當 mnm\perp n時,上式直接滿足歐拉定理。

m⊥̸nm\not\perp n 時,這是本文討論的重點,討論如下:
這裏只結合 RSA 這個特殊環境討論,只考慮 n=pq,pqn=pq, 其中p、q爲兩個素數
我們要證明mφ(n)+1=m,mn,n=pq,p,qm^{\varphi(n)+1}=m, m\perp n,n=pq,其中 p,q 爲素數
由前要知識 2 知道,必然 m 的形式只可能爲 m=kpm=kq,km=kp 或者 m=kq,k 爲常數,我們只討論 m=kpm=kp(另一種情況的討論完全一致)。
因爲 p、q 是素數,容易知道 kpqkp\perp q。進而根據上述普通版歐拉定理知道,必然有

(kp)φ(q)1(mod q)(kp)^{\varphi(q)}\equiv 1 (mod \ q)故而得到

((kp)φ(q))φ(p)1(mod q)((kp)^{\varphi(q)})^{\varphi(p)}\equiv 1(mod \ q)進而有

(kp)φ(n)=(kp)φ(p)φ(q)1(mod q)(kp)^{\varphi(n)}=(kp)^{\varphi(p)\varphi(q)}\equiv1(mod\ q)
進而,(kp)φ(n)=sq+1,s(kp)^{\varphi(n)}=sq+1,s 爲某個整數
注意,上面是等式,不是同餘式。故而可以將其帶入要證明的式子左側,得到

(kp)φ(n)+1=(kp)φ(n)(kp)=(sq+1)(kp)=sqkp+kp=skqp+kp=skn+kpkp(mod n)(kp)^{\varphi(n)+1}=(kp)^{\varphi(n)}(kp)=(sq+1)(kp)=sqkp+kp=skqp+kp=skn+kp\equiv kp(mod\ n)

m=kpm=kp,即 m⊥̸n,n=pq,p,qm\not \perp n, n=pq,其中 p,q 爲素數,有mφ(n)+1m(mod n)m^{\varphi(n)+1}\equiv m(mod\ n)
證畢!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章