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)
证毕!

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