rsa算法

欧拉函数:对于正整数n,\varphi (n)表示不超过n且和n互素的正整数个数。

         若m,n互质,\varphi (mn)=\varphi (m)\varphi (n)

         若n为质数,\varphi (n)=n-1

欧拉定理:若n,a为正整数,且n,a互质,则:a^{\varphi (n)}\equiv 1mod (n)

证:对于从1-n中与n互质的数x_{1},x_{2},...x_{\varphi (n))},由小到大排列。

m_{i}=a*x_{i}

1)对于任意m_{i},m_{j},i\not\equiv j,它们对n取模后的余数都不相同。

假设存在m_{i}\equiv m_{j}mod(n);m_{i}>m_{j}

则有m_{i}-m_{j}=a(x_{i}-x_{j})=q*n,即a(x_{i}-x_{j})能被n整除,又有a与n互质,x_{i}-x_{j}小于n,假设不成立。

即有任意m_{i},m_{j},i\not\equiv j,它们对n取模后的余数都不相同。

2)任意m_{i}与n互质。

假设余数与n有公因子r,则a*x_{i}=p*n+q*r=r*s,即a*x_{i}与n非互质,假设不成立。

所以m_{i}除以n的余数在x_{i}中。

由条件1)和2)可以得到m_{1}*m_{2}*...m_{\varphi (n)}\equiv (x_{1}*x_{2}*....x_{\varphi (n)})mod(n)

\Rightarrow a^{\varphi (n)}*(x_{1}*x_{2}*....*x_{\varphi (n)})\equiv (x_{1}*x_{2}*....*x_{\varphi (n)})mod(n)

\Rightarrow k*(a^{\varphi (n)}-1)\equiv 0mod(n)

其中k=(x_{1}*x_{2}*....*x_{\varphi (n)})

由k与n互质可得a^{\varphi (n)}\equiv 1mod(n),证毕。

一个取模运算:(a^b)%c=((a%c)^b)%c。

rsa算法

        对于两个质数p,q,记n=pq。

        则\varphi (n)=(p-1)(q-1)

        寻找一个数e使得1<e<\varphi (n),且e和\varphi (n)互质。

        再有数d满足ed\equiv 1(mod\varphi (n))

       (由于e和\varphi (n)互质,根据欧拉定理d一种取值是e^{\varphi (\varphi (n))-1}

        其中(n,e)为公钥。(n,d)为私钥。

        对m加密:m^{e}\equiv c(mod n)           (1)       (注意m小于n,m大于n时????)

        对c解密:c^{d}\equiv m(modn)              (2)

  :要证明c^{d}\equiv m(modn)成立,以m^{e}\equiv c(mod n)为条件,

         可得:c=m^{e}-kn              (3)

         将(3)带入(2)中可得:(m^{e}-kn)^{d}\equiv m(modn)      (4)  

         要证(4)成立即证:m^{ed}\equiv m(modn)         (5)

         又由条件ed\equiv 1(mod\varphi (n))可得ed=h\varphi (n)+1       (6)

         将(6)带入(5)中可得m^{h\varphi(n)+1 }\equiv m(modn)         (7)

         因此只需证明(7)成立便可。

当m和n互质时

      有m^{\varphi (n)}\equiv 1(modn)     可由模运算得到 (m^{\varphi (n)})^{h}*m\equiv m(modn)。得证。

当m和n非互质时

      由于n=pq,则可记m=kp。

      而且k和q互质:

               反证法:由于q为质数,如k与q非互质,则有k=sq,又从上文可知m<n,m=kp=sqp>n。矛盾。

      由于k和q互质,有式:(kp)^{q-1}\equiv 1(modq)成立,可构建式[(kp)^{q-1}]^{h(p-1)}*kp\equiv kp(modq)

      根据式(6)有(kp)^{ed}\equiv kp(modq)

      可得(kp)^{ed}=tq+kp             (8),

      此处t必能被p整除(将式(8)两边同时除以p即可),记t=t^{`}p

      带入(8)得:(kp)^{ed}=t^{`}pq+kp

      又由m=kp,n=pq,可得m^{ed}\equiv m(modn)

      证毕。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值