论文无忧网提供:计算机毕业论文范文|计算机毕业设计|计算机毕业论文
栏目导航 ASP Java Web .NET VB6.0 JAVA VC VF DELPHI PB 计算机网络 计算机科学与技术 PHP 安卓APP 其他 C# 代写论文
当前位置: > 计算机 > 计算机科学与技术 >

rsa密码体制的实现(论文+程序)

2 RSA相关理论知识

2.1 RSA的数学基础知识 http://www.paper51.com

2.1.1 关于数的基本理论

内容来自www.paper51.com

整除:设a,b是任意两个整数,其中b≠0.如果存在一个整数q使得等式 a=bq成立,就称为b整除a或者a被b整除,记作b|a,并把b叫做a的因数,把a叫做b的倍数。这时,q也是a的因数,我们常常将q写成a/b。否则,就称b不能整除a或者a不能被b整除。

http://www.paper51.com

模运算:如果A模N运算,它给出了A的余数,余数是从0到N-1的某个整数,这种运算称为模运算。 内容来自www.paper51.com

素数与合数:一个大于1的正整数p,只能被1和它本身整除,不能被其它正整数整除,则这样的正整数p叫做素数或者质数;一个大于1的正整数a,除了能被1和它本身整除外,还能被其它的正整数整除,这样的正整数a叫做复合数或者合数。这样,全体正整数可分为三类:1,全体素数,全体合数。

http://www.paper51.com

公因数和最大公因数:设a1…an是n(n>=2)个整数。若整数d是它们中每一个数的因数,那么d就叫做a1…,an 的一个公因数.由于任何非零整数只存在有限个因数。因此,如果b和c不全为0,b和c只存在有限个公因数。在所有公因数中最大的一个,就称为最大公因数,并用符号gcd(b,c)表示。 copyright paper51.com

同余:若n|a-b,若a -b = kn,k是整数,则称整数a和b 模n同余,记为a≡ b (mod n ),n称为同余式的模。 copyright paper51.com

模n同余具有以下性质:

paper51.com

1、若 n|a-b,则a ≡ b (mod n );

paper51.com

2、(a mod n) =(bmod n )等价于a ≡b(mod n );

内容来自www.paper51.com

3、自反性:a≡a(mod n );

copyright paper51.com

4、对称性:a≡b (modn ) 等价于b ≡a (modn ); 内容来自论文无忧网 www.paper51.com

5、传递性:若a≡b (modn ) 且b≡c (mod n) ,则a≡c (modn )。 内容来自论文无忧网 www.paper51.com

欧拉函数:用符号φ(m )表示不大于m 并和m 互素的正整数的个数,它是正整

内容来自论文无忧网 www.paper51.com

数m 的函数,称φ( m)为m 的欧拉函数。

copyright paper51.com

φ (m )具有以下的性质: http://www.paper51.com

1、 φ (1) = 1; paper51.com

2、如果 p 是素数,则φ( p) =p-1;

paper51.com

3、欧拉φ 函数是积极函数。即如果gcd(m ,n ) = 1,则φ(mn ) = φ(m)φ(n ) http://www.paper51.com

2.1.2 欧拉定理 费马小定理 paper51.com

欧拉定理和费马定理在公钥密码学中有重要的理论基础作用。

内容来自论文无忧网 www.paper51.com

欧拉定理:如果(a ,m)= 1,则恒有 copyright paper51.com

aφ( m ) ≡1(modm) copyright paper51.com

其中,φ( m)为m的欧拉函数。 内容来自论文无忧网 www.paper51.com

欧拉定理的另一种等价形式为:

内容来自www.paper51.com

aφ(m ) +1≡a(mod m) http://www.paper51.com

费马小定理:令p为素数,如果( p, a )= 1则有:

内容来自www.paper51.com

a p-1≡1(mod p) paper51.com

费马小定理的另一种等价形式为:如果 p 为素数,a为任意正整数,则:

内容来自www.paper51.com

a p≡a(mod p ) 内容来自论文无忧网 www.paper51.com

因此费马小定理实际上是欧拉定理的一个推论。

paper51.com

2.1.3 中国剩余定理 paper51.com

设m1,m2,…mk,是k个两两互素的正整数,则对任意的整数b1,…bk,同余式组

内容来自论文无忧网 www.paper51.com

                     x≡b1 ( mod m1)

copyright paper51.com

                     x≡b2 ( mod m2) 内容来自论文无忧网 www.paper51.com

                     ……..

copyright paper51.com

                      x≡bK ( mod mk) paper51.com

一定有解,且解是唯一的,事实上

paper51.com

        若令 内容来自www.paper51.com

            M=m1…mk,m=miMi,  i=1,…,k 内容来自论文无忧网 www.paper51.com

     则同于式组的解可表示为

内容来自论文无忧网 www.paper51.com

       x≡ b1M1′M 1 +b2M2′M2 +. ..+bkMk′Mk(modM)

内容来自论文无忧网 www.paper51.com

      其中 paper51.com

    M′Mi≡1(modmi),i=1.2,…,k-1

内容来自www.paper51.com

2.1.4单向陷门函数 copyright paper51.com

公钥密码体制中公开密钥密码是基于单向陷门函数。 http://www.paper51.com

所谓单向函数,认为有许多函数正向计算上是很容易的,但是求其逆计算在计算上是不可行的,也就是很难从输出推算出它的输入。即已知x,我们很容易求出f(x)。但是已知f(x),却难于计算出x。单向函数不能用作加密。因为用单向函数加密的信息是无人能解开它的。                        

内容来自论文无忧网 www.paper51.com

单向陷门函数是有一个陷门的一类特殊单向函数。它首先是一个单向函数,在一个方向上易于计算而反方向却难以计算。但是,如果知道那个秘密陷门,则也能很容易在另一个方向计算这个函数。即已知x,易于计算f(x),而已知f(x),却难以计算x。然而,一旦给出f(x)和一些秘密信息y,就很容易计算出x。在公开密钥密码中,计算f(x)相当于加密,陷门y相当于私有密钥,而利用陷门y求f(x)中的x则相当于解密。 内容来自www.paper51.com

2.2 RSA加密解密算法 http://www.paper51.com

RSA加密解密算法如下: 内容来自论文无忧网 www.paper51.com

  ⑴取两个随机大素数p和q(保密);

内容来自www.paper51.com

  ⑵计算公开的模数n=pq(公开); 内容来自论文无忧网 www.paper51.com

  ⑶计算秘密的欧拉函数φ(n)=(p-1)(q-1)(保密),两个素数p和q不再需要,应该丢弃,不要让任何人知道; 内容来自论文无忧网 www.paper51.com

  ⑷随机选取整数e,满足gcd(e,φ(n))=1(公开e,加密密钥);

内容来自论文无忧网 www.paper51.com

  ⑸计算d,满足de≡1(modφ(n))(保密d,解密密钥,陷门信息); copyright paper51.com

  ⑹将明文m首先分成小于n的数据块,加密,从而产生密文,公式为ci=mie(modn)

http://www.paper51.com

要解密信息,取每个加密块ci并计算 mi=cid(modn)

paper51.com

因为ed=1-rφ(n),因此cid≡(mie)d≡m i(miφ(n))-r≡ mi(mod n) = mi

http://www.paper51.com

其中,r 为整数。这里利用了欧拉定理: miφ( n)≡1(modn)。以上公式从密文恢复出了明文。 paper51.com

公钥 n:两个素数p和q的乘积(p和q必须保密)。e:与( p- 1)(q-1)互素

copyright paper51.com

私钥 d :e-1(mod( p - 1)(q -1))

内容来自www.paper51.com

加密  c = me(mod n) 内容来自论文无忧网 www.paper51.com

解密  m = cd(mod n)

paper51.com

2.3 RSA参数的选择

内容来自论文无忧网 www.paper51.com

技术上,RSA 算法的安全性等价于求解 RSA 单向函数的逆的困难性。但是,在实际应用中,很多时候是因为算法实现的细节的漏洞导致攻击,所以在使用RSA 算法构造密码系统时,为了保证系统的安全性,必须仔细选择各个参数。RSA的主要参数有三个:模数n,加密密钥e,解密密钥d。 内容来自论文无忧网 www.paper51.com

下面我们讨论参数的选择以及相关的问题。

paper51.com

------分隔线----------------------------
联系方式