数论与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节的费马小定理,有以及,即可被p和q同时整除,且p和q为素数,所以可以被pq整除,即有

    5、有以上可得:

         

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

发布了10 篇原创文章 · 获赞 2 · 访问量 3176
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览