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

前言:仅个人小记。 注意到 RSA 中并不要求消息 m 要和模数 n 互素,而 RSA 所依赖的“费马定理,欧拉定理”,仿佛都要要求 m 须和模数 n 互素。这里给出针对 RSA 中 n 为两个素数乘积时的具体解释,实际上应归属于广义的欧拉定理,这里暂不讨论广义的欧拉定理。同时,根据本文的推导逻辑(不做讨论),容易直觉上知道 RSA 中 n 不应该是多个素数的乘积,而只能是2个素数的乘积。(因为 m 中可以缺不止一个素数,而RSA的正确性要求当 m和n 不互素的时候,m 中最多只能缺一个素数)

前要知识
  1. 普通版的欧拉定理 a φ ( m ) % m ≡ 1 , 其 中 a ⊥ m , φ ( ⋅ ) 是 欧 拉 函 数 {a}^{\varphi(m)} \%m\equiv1,其中a\perp m, \varphi(\cdot)是欧拉函数 aφ(m)%m1,am,φ()公式图片展示如下,
  2. n=pq,其中 p,q 为素数,则若 m ⊥ n m\perp n mn ,则必然 m = k p m=kp m=kp 或者 m = k q m=kq m=kqm 只可能是这两种形式之一
  3. 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) cme (mod n) e d ≡ 1 ( m o d   φ ( n ) ) ed\equiv1 (mod\ \varphi(n)) ed1(mod φ(n)) m ∈ { 0 , 1 , . . . , n − 1 } m\in \{0,1,...,n-1\} m{0,1,...,n1}
注意:不要求 m ⊥ n m\perp n mn.

RSA 成立的根基在于 m e d = m k φ ( n ) + 1 ≡ m ( m o d   n ) m^{ed}=m^{k\varphi(n)+1}\equiv m(mod\ n) med=mkφ(n)+1m(mod n)恒成立。

显然,当 m ⊥ n m\perp n mn时,上式直接满足欧拉定理。

m ⊥̸ n m\not\perp n mn 时,这是本文讨论的重点,讨论如下:
这里只结合 RSA 这个特殊环境讨论,只考虑 n = p q , 其 中 p 、 q 为 两 个 素 数 n=pq, 其中p、q为两个素数 n=pq,pq
我们要证明 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,mn,n=pq,p,q
由前要知识 2 知道,必然 m 的形式只可能为 m = k p 或 者 m = k q , k 为 常 数 m=kp 或者 m=kq,k 为常数 m=kpm=kq,k,我们只讨论 m = k p m=kp m=kp(另一种情况的讨论完全一致)。
因为 p、q 是素数,容易知道 k p ⊥ q kp\perp q kpq。进而根据上述普通版欧拉定理知道,必然有

( k p ) φ ( q ) ≡ 1 ( m o d   q ) (kp)^{\varphi(q)}\equiv 1 (mod \ q) (kp)φ(q)1(mod q)故而得到

( ( k p ) φ ( q ) ) φ ( p ) ≡ 1 ( m o d   q ) ((kp)^{\varphi(q)})^{\varphi(p)}\equiv 1(mod \ q) ((kp)φ(q))φ(p)1(mod q)进而有

( k p ) φ ( n ) = ( k p ) φ ( p ) φ ( q ) ≡ 1 ( m o d   q ) (kp)^{\varphi(n)}=(kp)^{\varphi(p)\varphi(q)}\equiv1(mod\ q) (kp)φ(n)=(kp)φ(p)φ(q)1(mod q)
进而, ( k p ) φ ( n ) = s q + 1 , s 为 某 个 整 数 (kp)^{\varphi(n)}=sq+1,s 为某个整数 (kp)φ(n)=sq+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) (kp)φ(n)+1=(kp)φ(n)(kp)=(sq+1)(kp)=sqkp+kp=skqp+kp=skn+kpkp(mod n)

m = k p m=kp m=kp,即 m ⊥̸ n , n = p q , 其 中 p , q 为 素 数 m\not \perp n, n=pq,其中 p,q 为素数 mn,n=pq,p,q,有 m φ ( n ) + 1 ≡ m ( m o d   n ) m^{\varphi(n)+1}\equiv m(mod\ n) mφ(n)+1m(mod n)
证毕!

  • 15
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值