数论与RSA加密算法

        加密算法的发展与数学(尤其是数论)密不可分,本文将通过RSA加密算法,来看一看数论是如何为一个加密算法构建理论基础的。当然,如果你只对结论感兴趣,可以直接跳到本文最后一节,那里会给出RSA加密算法的一般步骤,如有不明白的地方,可根据需要,在前面的几节中寻找相应的说明。

一、关于数论

        数论简单来说就是关于数字的理论。如9是奇数、10是偶数、3是质数(素数)、6是第一个完全数(真因子之和等于其本身的数,1+2+3=6)等,都是数论。

        一个大家都知道而且很常用的数论的应用就是:判断一个数是否能被3整除,这可能过于简单而被大家忽视,那么下面这个类似的问题可能就不是所有人都知道的了:判断一个数是否能被11整除,如判断12397是否能被11整除,具体做法如下:奇数位的数字加上偶数位的数字之和是否相等,因为1+3+7=2+9,所以12397能被11整除。

二、一个简单的加密算法

       以下是一个简单的加密方式,其加密规则如下(这里0~f为16进制数字),将0~f左移5位,超出部分平移至最右侧:

       

       按照如上的转化方式,假设原文为:ace369 ,则对应的密文为:f138be,这个方式用数学怎么表示呢?其实很简单,可以使用取模运算来表示,y表示密文,x表示原文,则 y = (x+5) mod 16。如e+5等于19,19除以16余3,所以e-->3。

三、模运算

       定义1:对于任一整数 m 以及正整数 n ,一定存在唯一整数 q 以及 r (0≤r<n) ,满足:m = nq + r ,此时,称r的值为 m mod n。

       例1

      1、7 mod 2 = 1,因为 7 = 2 · 3 + 1 ;

      2、-7 mod 3 = 2,因为 -7 = 3 · -3 + 2;

      3、1 mod 7 = 1  ;2 mod 7 = 2  ;3 mod 7 = 3  ……  6 mod 7 = 6;

四、模运算的加法与乘法

      首先定义一个集合,其中元素为0n-1之间的整数。现在取中的两个元素a、b,上加法与乘法有如下定义2

       加法:

      乘法:

      例如,在中,有

      现在试着计算一下,(9 + 10) mod 7 与 [(9 mod 7) + (10 mod 7)] mod 7 , 可以发现这两个式子的值都为5 ,事实上对于任意整数 i j  ,根据定义1,不难看出有如下等式1

            

      

      上述等式1中,只展示了两个算子ij的情况,事实上,等式1对于多个算子依然是成立的,如:

      

      

      根据等式1定义2,不难证明模运算的加法和乘法满足交换律结合律,下面以加法的结合律为例,简单证明一下

      (注意到如例1-3,对于中任一元素a,有a mod n = a),证明如下:

      

      另外,在集合中,对于01,有:

        

      

      

五、模的指数运算

      根据模运算的乘法定义,令其中b=a,则有,更一般的,有:

      

      进一步,根据等式1,有等式2

      

            

     现在,在中,试着计算以下式子:

     

六、费马小定理与欧拉定理

     根据上一节的计算,可以发现如下例2

     

     事实上,这就是著名的费马小定理:给定任意素数p,取a为上任一不为0的元素,则可以被p整除,即有等式:

     这个定理的证明最早由欧拉发表于1736年(尽管莱布尼茨更早留下了证明,但并没有发表),欧拉的证明过程非常简单,这里简单描述一下,通过数学归纳法:对于a=1,定理显然成立,假设对于a=k,定理成立,则当a=k+1时,用二项式定理,将展开,由于p为素数,展开式合并中间项可简写为,其中m为整数,将等式两边都减去k+1,可得:,进一步简化可得:,根据假设,等式右边最后一项可以被p整除,因此等式左边也可以被p整除,由于k+1<p,所以可以被p整除。

     当然费马小定理还有一个更一般的形式:当p为素数,且a与p互为素数时,就可以被p整除。对于这个版本的证明,由于a和p互为素数,所以(a mod p)上任一不为0的元素,将其代入上面的结论中,再根据等式1,则结论得证。

     可以看到第二个版本的费马小定理是第一个版本的一个扩展,解放了a必须在上的约束,那么对于p必须为素数这个约束是否也可以有更一般的形式呢?当然有,这就是欧拉定理:若a与p互为素数,则可以被p整除。其中为小于p且与p互为素数的整数的个数。可以看到,若p为素数,则=p-1,此时的欧拉定理就是费马小定理。

七、模的逆元

     前面已经定义了模的加法、乘法和指数运算,那么模运算是否也有除法呢?显然,对于a/b,不能保证其为整数,故一般意义上的除法并不存在。但从前面的一些例子中,注意到如的情况,这里,若把3看作a,则5相当于在中的1/a,不妨在

中做如下计算:

    

     可以看到在中,对于每个元素a都存在一个元素b,使得我们称b为a在上的逆元,相当于我们常说的1/a。

      那么逆元一定存在吗?答案是不一定,如在中3是没有逆元的,事实上,观察一下上一节给出例2,可以发现在中每个元素a的逆元其实可以由计算出,因为。再根据欧拉定理,可以得到更一般的情况,即在中,当a与p互素时,一定可以根据欧拉定理找到a的逆元。

     逆元的唯一性,这里也简单说明一下,假设对中元素a有逆元b和c,则在等式两边都乘以c,得到,根据第四节对乘法性质的描述,可得b=c

八、RSA加密算法

     前面铺垫了这么多数论的知识,现在可以开始介绍RSA加密算法了,算法步骤如下:

     1、取任意两个大的素数p和q

     2、令n=pq,m=(p-1)(q-1)

     3、取任意小于m且于m互素的整数a

     4、在中求a的逆元b

     5、此时公钥为(n,a),私钥钥为(n,b)

     6、设x为要加密的原文(x<n),则密文 

     7、使用私钥解密,有原文 

     现在,我们来证明第7步的解密过程:

     1、将代入中,根据第5节等式2,得 

     2、因为b为a在上的逆元,根据第7节的介绍,有ab=km+1=k(p-1)(q-1)+1。

    3、将ab代入中,得

    4、考虑,根据第6节的费马小定理,有(注意,此时x应与p互素,考虑p为素数,x为p的整数倍时,等式不成立)以及(同理,x应与q互素),即可被p和q同时整除,且p和q为素数,所以可以被pq整除,即有

    注:第4步的证明也可以用欧拉定理直接得到结果,因为n=pq,且p、q为素数,所以,可以直接得到,但是此时 x应与n互素。因为x<n且p、q为素数,所以若x不与n互素,则x为p的整数倍或x为q的整数倍,不可能为pq的整数倍,和上述不成立的情况一致,这种情况在后面会讨论到​​​​​​​。

    5、有以上可得:

         

   6、当x为p的整数倍或x为q的整数倍时,设x=rq(x为p的整数倍时同理),此时,有r<p,因为p素数,所以r与p互素,又因为q、p互素,所以rq与p互素,根据费马小定理,有如下等式

                                                               

         根据模运算定义,有 ,等式两边同时乘以rq,得

                                    

        将x=rq,ab=k(p-1)(q-1)+1,n=pq 代入上式,得,即,则结论得证。 

       由于篇幅问题,文中一些简单的证明就省略了,当然,欧拉定理除外,这里使用欧拉定理只是为了说明逆元的存在,当然逆元的存在使用最大公约数也可以证明,但是由于篇幅问题,所以文中仅仅使用欧拉定理的结论说明一下问题就行了。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值