第5章(RSA公钥密码体制).ppt
《第5章(RSA公钥密码体制).ppt》由会员分享,可在线阅读,更多相关《第5章(RSA公钥密码体制).ppt(163页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第5章章 RSA公钥密码体制公钥密码体制开课学院:数学学院开课学院:数学学院主讲教师:朱文余主讲教师:朱文余Email:第5章 RSA公钥密码体制5.1 概论概论5.2 计算复杂性理论计算复杂性理论5.3 必备的数论知识必备的数论知识5.4 RSA 公钥系统公钥系统5.5 RSA 公钥系统的一种改进方案公钥系统的一种改进方案5.6 大素数的产生大素数的产生5.7因数分解因数分解5.8对对RSA 体制中小指数的攻击体制中小指数的攻击5.9 Rabin密码体制密码体制5.10 RSA 在有限域在有限域Fp上多项式上的推广上多项式上的推广5.1概论1.传统密码在密钥分配及管理上是极其困难的;2.在
2、商业上有时不可能作到通信双方事先预约使用相同的密钥.单钥密码体制在进行密钥分配时,要求通信双方或者已经有一个共享的密钥,或者可借助于一个密钥分配中心。对第一个要求,常常可用人工方式传送双方最初共享的密钥,这种方法成本很高,而且还完全依赖信使的可靠性。第二个要求则完全依赖于密钥分配中心的可靠性。第二个问题数字签名考虑的是如何为数字化的消息或文件提供一种类似于为书面文件手书签字的方法。1976年W.Diffie和M.Hellman对解决上述两个问题有了突破,从而提出了公钥密码体制。于是公钥密码体制的概念是在解决单钥密码体制中最难解决的两个问题时提出的,这两个问题是密钥分配和数字签名。公钥密码算法的
3、最大特点是采用两个相关密钥将加密和解密能力分开,其中一个密钥是公开的,称为公开密钥,简称公开钥,用于加密;另一个密钥是为用户专用,因而是保密的,称为秘密密钥,简称秘密钥,用于解密。因此公钥密码体制也称为双钥密码体制。算法有以下重要特性:已知密码算法和加密密钥,求解密密钥在计算上是不可行的。公钥密码体制的原理图5.1是公钥体制加密的框图,加密过程有以下几步:要求接收消息的一方,产生一对用来加密和解密的密钥,如图中的接收者B,产生一对密钥Keb,Kdb,其中Keb是公开钥,Kdb是秘密钥。接收方B将加密密钥(Keb)予以公开。另一密钥则被保密(Kdb)。A要想向B发送消息m,则使用B的公开钥加密m
4、,表示为c=Em,Keb,其中c是密文,E是加密算法。B收到密文c后,用自己的秘密钥Kdb解密,表示为m=Dc,Kdb,其中D是解密算法。图5.1 公钥体制加密的框图因为只有B知道Kdb,所以其他人都无法对c解密。公钥加密算法不仅能用于加、解密,还能用于对发方A发送的消息m提供认证,用户A用自己的秘密钥Kda对m加密,表示为c=Em,Kdb将c发往B。B用A的公开钥Kea对c解密,表示为m=Dc,Kea公钥密码算法应满足以下要求:接收方B产生密钥对(公开钥Keb和秘密钥Kdb)在计算上是容易的。发方A用收方的公开钥对消息m加密以产生密文c,即c=Em,Keb在计算上是容易的。收方B用自己的秘密
5、钥对c解密,即m=Dc,Kdb在计算上是容易的。公钥密码算法应满足的要求 敌手由B的公开钥Keb求秘密钥Kdb在计算上是不可行的。敌手由密文c和B的公开钥Keb恢复明文m在计算上是不可行的。加、解密次序可换,即EkebDkdb(m)=DkdbEkeb(m)其中最后一条虽然非常有用,但不是对所有的算法都作要求。以上要求的本质之处在于要求一个陷门单向函数。单向函数是两个集合X、Y之间的一个映射,使得Y中每一元素y都有惟一的一个原像xX,且由x易于计算它的像y,由y计算它的原像x是不可行的。这里所说的易于计算是指函数值能在其输入长度的多项式时间内求出,即如果输入长n比特,则求函数值的计算时间是na的
6、某个倍数,其中a是一固定的常数。这时称求函数值的算法属于多项式类P,否则就是不可行的。例如,函数的输入是n比特,如果求函数值所用的时间是2n的某个倍数,则认为求函数值是不可行的。注意这里的易于计算和不可行两个概念与计算复杂性理论中复杂度的概念极为相似,然而又存在着本质的区别。在复杂性理论中,算法的复杂度是以算法在最坏情况或平均情况时的复杂度来度量的。而在此所说的两个概念是指算法在几乎所有情况下的情形。称一个函数是陷门单向函数,是指该函数是易于计算的,但求它的逆是不可行的,除非再已知某些附加信息。当附加信息给定后,求逆可在多项式时间完成。总结为:陷门单向函数是一族可逆函数fk,满足 Y=fk(X
7、)易于计算(当k和X已知时)。X=f-1k(Y)易于计算(当k和Y已知时)。X=f-1k(Y)计算上是不可行的(当Y已知但k未知时)。因此,研究公钥密码算法就是要找出合适的陷门单向函数。5.2计算复杂性理论计算复杂性理论是分析密码技术的计算要求和研究破译密码的固有难度的基础.用于破译密码算法的计算复杂性,决定了该密码的强度.算法的计算复杂性是用该算法所需的计算时间(T)和存储空间(S)要求来度量的.计算时间和存储空间通常理解为所需输入数据的长度n的函数f(n),表示用”大O”表示法:,若存在满足下面要求的常数c和 ,使得例:设f(n)=8n+10,那么f(n)=O(n),因为8n+109n,当
8、n10.一般地,若f(n)是下面形式的多项式:式中t为常数,那么有即忽略全部常数和低阶项.通常,算法按其时间和空间的复杂性进行分类,如果一个算法的复杂性是不依赖于n:O(1),常数级的;多项式时间算法:指数时间算法:,式中t为常数,f(n)是n的函数.任何密码算法的一个基本要求是:加解密只需要多项式时间的代价,破译需要指数时间的代价.书上表5-1给出了不同的算法簇的运行时间.5.2.2问题复杂性和NP完全wP-问题:可利用确定性算法在多项式时间内可解决.wNP问题(整数分解):可利用非确定性算法在多项式时间内可解决,或者给定一个解,判断这个解是否正确可在多项式时间内可解决.wNP完全问题(背包
9、问题):NP问题中最困难的问题.-矩阵覆盖问题.数论是密码学特别是公钥密码学的基本工具,本章首先介绍密码学中常用的一些数论知识,然后介绍公钥密码体制的基本概念和几种重要算法。5.3 数论简介 5.3.1同余方程和中国剩余定理同余方程同余方程定理定理5.1 同余式 有解的充要条件是 ,其中d=(a,m),且对于模m有d个解.推论推论:设(a,m)=1,则同余式 恰有唯一解 .定理定理5.2 下面两个同余式有一个共同解的充要条件是定理5.3 联立同余式有一个共同解的充要条件是中国剩余定理是数论中最有用的一个工具,定理说如果已知某个数关于一些两两互素的数的同余类集,就可重构这个数。例如:Z10中每个
10、数都可从这个数关于2和5(10的两个互素的因子)的同余类重构。比如已知x关于2和5的同余类分别是0和3,即x mod 20,x mod 53。可知是偶数且被5除后余数是3,所以可得8是满足这一关系的惟一的x。中国剩余定理定理4.5(中国剩余定理)设m1,m2,mk是两两互素的正整数,则一次同余方程组对模M有惟一解:其中ei满足证明:设 ,i=1,2,k,由Mi的定义得Mi与mi是互素的,可知Mi在模mi下有惟一的乘法逆元,即满足 的ei是惟一的。下面证明对i1,2,k,上述x满足ai(mod mi)x。注意到当ji时,mi|Mj,即Mj0(mod mi)。所以(Mjej mod mj)mod
11、mi (Mj mod mi)(ej mod mj)mod mi)mod mi 0而(Mi(ei mod mi)mod mi(Miei)mod mi1所以x(mod mi)ai,即ai(mod mi)x下面证明方程组的解是惟一的。设x是方程组的另一解,即xai(mod mi)(i=1,2,k)由xai(mod mi)得x-x0(mod mi),即mi|(x-x)。再根据mi两两互素,有M|(x-x),即x-x0(mod M),所以x(mod M)=x(mod M)。(证毕)中国剩余定理提供了一个非常有用的特性,即在模M下可将非常大的数x由一组小数(a1,a2,ak)表达。例4.4 由以下方程组求
12、x。解:M=2357=210,M1=105,M2=70,M3=42,M4=30,易求e1M-11 mod 21,e2M-12mod 31,e3M-13 mod 53,e4M-14 mod 74,所以x mod 210(10511+7012+4233+3045)mod 210173,或写成x173 mod 210。例4.5 将973 mod 1813由模数分别为37和49的两个数表示。解:取x=973,M=1813,m1=37,m2=49。由a1973 mod m111,a2973 mod m342得x在模37和模49下的表达为(11,42)。5.3.2欧几里得算法欧几里得算法就是1.2.2中介
13、绍的辗转相除法,利用欧几里得算法可以迅速地找出给定的两个整数a和b的最大公因数(a,b).在求得(a,b)的同时,还能给出满足(a,b)=ua+vb的两个常数u,v,当(a,b)=1时,利用欧几里得算法可找出两个常数u,v满足ua+vb=1,于是可得欧几里得(Euclid)算法是数论中的一个基本算法,是求两个正整数的最大公因子的简化过程。而推广的Euclid算法不仅可求两个正整数的最大公因子,而且当两个正整数互素时,还可求出其中一个数关于另一个数的乘法逆元。例 求gcd(1769,550)。gcd(1769,550)=1,550-1 mod 1769=550。5.3.3Wilson定理Wils
14、on定理给出p是素数的一个 充要条件,此定理在理论上具有比较重要的价值.定理(Wilson):p是素数的充要条件是5.3.4欧拉函数设n是一正整数,小于n且与n互素的正整数的个数称为n的欧拉函数,记为(n)。例如:(6)=2,(7)=6,(8)=4。若n是素数,则显然有(n)=n-1。定义定义5.1 欧拉函数 是一个定义在正整数上的函数,的值等于序列0,1,2,m-1中与m互素的数的个数.定理定理5.4 若 和 互素,则定理定理5.5 若则定理5.6(Euler)若a和n互素,则a(n)1 mod n。证明:设R=x1,x2,x(n)是由小于n且与n互素的全体数构成的集合,aR=ax1 mod
15、 n,ax2 mod n,ax(n)mod n,对aR中任一元素axi mod n,因a与n互素,x1与n互素,所以axi与n互素,且axi mod nn,因此axi mod nR,所以aRR。又因aR中任意两个元素都不相同,否则axi mod n=axj mod n,由a与n互素知a在 mod n下有乘法逆元,得xi=xj。所以|aR|=|R|,得aR=R,所以 ,,,由每一xi与n互素,知 与n互素,在 mod n下有乘法逆元。所以a(n)1 mod n。(证毕)定理4.2(Fermat)若p是素数,a是正整数且gcd(a,p)=1,则ap-11 mod p。Fermat定理也可写成如下形
16、式:设p是素数,a是任一正整数,则apa mod p。设p是一素数,a是小于p的正整数,称a是p的平方剩余,如果方程x2a(mod p)有解。否则称为非平方剩余。5.3.5 平方剩余和Jacobi符号例如:x21 mod 7有解x=1,x=6;x22 mod 7有解x=3,x=4;x23 mod 7无解;x24 mod 7有解x=2,x=5;x25 mod 7无解;x26 mod 7无解。可见共有3个数(1、2、4)是模7的平方剩余,且每个平方剩余都有两个平方根(即例中的x)。容易证明,模p的平方剩余的个数为(p-1)/2,且与模p的非平方剩余的个数相等。如果a是模p的一个平方剩余,那么a恰有
17、两个平方根,一个在0到(p-1)/2之间,另一个在(p-1)/2到(p-1)之间。引理:若p是奇素数,则x2a(mod p)或无解或有两个模p不同余的解.定理5.8若p是奇素数,则整数1,2,p-1中正好有(p-1)/2个模p的平方剩余,其余的(p-1)/2个是模p的非平方剩余.定义5.3 设p是奇素数,a是一整数,勒让德符号 的定义如下:称符号 为Legendre符号。例如:定理5.9(欧拉准则)计算 有一个简单公式:例如:p=23,a=5,a(p-1)/2 mod p511 mod p=-1,所以5不是模23的平方剩余。Legendre符号有以下性质:定理5.10 设p是奇素数,a和b都不
18、能被p除尽,则 若ab mod p,则证明从略。于是,对于任意整数n,总可表为于是而 ,所以对于任给一个整数n,计算 时,只需计算下面的三种值其中q是奇素数.定理5.11 p是任意奇素数,定理5.12 p是任意奇素数,定理5.13 p,q是两个不同的奇素数,以下定义的Jacobi符号是Legendre符号的推广。定义定义4.2 设n是正整数,且 ,定义Jacobi符号为其中右端的符号是Legendre符号。当n为素数时,Jacobi符号就是Legendre符号。Jacobi符号有以下性质:定理定理4.8 设n是正合数,a和b是与n互素的整数,则 若ab mod n,则对一些特殊的a,Jacob
19、i符号可如下计算:定理定理4.9(Jacobi符号的互反律)设m、n均为大于2的奇数,则若mn3 mod 4,则 ;否则 。以上性质表明:为了计算Jacobi符号(包括Legendre符号作为它的特殊情形),并不需要求素因子分解式。例如105虽然不是素数,在计算Legendre符号 时,可以先把它看作Jacobi符号来计算,由上述两个定理得一般在计算 时,如果有必要,可用m mod n代替m,而互反律用以减小 的分母。可见,引入Jacobi符号对计算Legendre符号是十分方便的,但应强调指出Jacobi符号和Legendre符号的本质差别是:Jacobi符号 不表示方程x2a mod n是
20、否有解。比如n=p1p2,a关于p1和p2都不是平方剩余,即x2a mod p1和x2a mod p2都无解,由中国剩余定理知x2a mod n也无解。但是,由于 ,所以 。即x2a mod n虽无解,但Jacobi符号 却为1。例例 考虑方程x22 mod 3599,由于3599=5961,所以方程等价于方程组由于 ,所以方程组无解,但Jacobi符号RSA算法是1978年由R.Rivest,A.Shamir和L.Adleman提出的一种用数论构造的、也是迄今为止理论上最为成熟完善的公钥密码体制,该体制已得到广泛的应用。5.4 RSA算法1.密钥的产生 选两个保密的大素数p和q。计算n=pq
21、,(n)=(p-1)(q-1),其中(n)是n的欧拉函数值。选一整数e,满足1e(n),且gcd(n),e)=1。计算d,满足de1 mod(n),即d是e在模(n)下的乘法逆元,因e与(n)互素,由模运算可知,它的乘法逆元一定存在。以e,n为公开钥,d,n为秘密钥。5.4.1 算法描述2.加密加密时首先将明文比特串分组,使得每个分组对应的十进制数小于n,即分组长度小于log2n。然后对每个明文分组m,作加密运算:cme mod n3.解密对密文分组的解密运算为:mcd mod n下面证明RSA算法中解密过程的正确性。证明:由加密过程知cme mod n,所以cd mod nmed mod n
22、m1 mod(n)mod nmk(n)+1 mod n下面分两种情况:m与n互素,则由Euler定理得m(n)1 mod n,mk(n)1 mod n,mk(n)+1m mod n即cd mod nm。gcd(m,n)1,先看gcd(m,n)=1的含义,由于n=pq,所以gcd(m,n)=1意味着m不是p的倍数也不是q的倍数。因此gcd(m,n)1意味着m是p的倍数或q的倍数,不妨设m=xp,其中x为一正整数。此时必有gcd(m,q)=1,否则m也是q的倍数,从而是pq的倍数,与mn=pq矛盾。由gcd(m,q)=1及Euler定理得m(q)1 mod q,所以mk(q)1 mod q,mk(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- RSA 密码 体制
限制150内