RSA公钥密码体制简介课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《RSA公钥密码体制简介课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- RSA 密码 体制 简介 课件
- 资源描述:
-
1、1公钥密码技术2n主要内容:主要内容:RSA公钥密码算法,公钥密码算法,RSA公钥密公钥密码的实现。码的实现。n重点:重点:RSA算法,脱密的快速实现,素数算法,脱密的快速实现,素数生成算法。生成算法。n难点:难点:素数生成算法。素数生成算法。3RSARSA体制体制 由Rivest、Shamir、Adleman于1978年首次发表;最容易理解和实现的公钥算法;经受住了多年深入的攻击;其理论基础是一种特殊的可逆模幂运算,其安全性基于分解大整数的困难性;RSA既可用于加密,又可用于数字签名,已得到广泛采用;RSA已被许多标准化组织(如ISO、ITU、IETF和SWIFT等)接纳;目前许多国家标准仍
2、采用RSA或它的变型 4假设m为要传送的报文。1、任产生两个素数p与q,使得n=pqm2、随机选择数e:e与(p-1)(q-1)互素3、用辗转相除法求d:ed=1 mod(p-1)(q-1)4、公开:(e,n),保密:d 加密过程:c=me mod n 解密过程:m=cd mod n1、RSA算法描述算法描述5定义定义:任给一个正整数:任给一个正整数m,如果用,如果用m去除任意两个整去除任意两个整数数a、b所得的余数相同,称所得的余数相同,称a、b对模对模m同余。记同余。记为:为:,若余数不同,则,若余数不同,则a、b对模对模m不同余。不同余。记为:记为:。mbamodmbamod定理定理:,
3、当且仅当,当且仅当m|(a-b)。mbamod定理定理:欧拉定理,对任意:欧拉定理,对任意 有有*nZananmod1)(推论推论:费尔马定理,费尔马定理,若若p为素数,则为素数,则 papmod111,2,1,0nZn1),(,:*naZaaZnn其中其中2 2、工作原理、工作原理6RSARSA算法论证算法论证 E和和D的可逆性的可逆性要证明:要证明:D(E(M)=MMCd(Me)dMed mod n因为因为ed1 mod(n),这说明,这说明edt(n)+1,其中其中t为某整数。所以为某整数。所以,Med Mt(n)+1 mod n。因此要证明因此要证明Med M mod n,只需证明,只
4、需证明M t(n)+1 M mod n。7RSARSA算法论证算法论证在(在(M,n)1的情况下,根据数论的情况下,根据数论(Euler定理定理),M t(n)1 mod n,于是有,于是有,M t(n)+1 M mod n。8RSARSA算法论证算法论证在(在(M,n)1的情况下,分两种情况:的情况下,分两种情况:第一种情况:第一种情况:M1,2,3,n-1因为因为n=pq,p和和q为素数,为素数,M1,2,3,n-1,且(,且(M,n)1。这说明这说明M必含必含p或或q之一为其因子,而且不能同之一为其因子,而且不能同时包含两者,时包含两者,否则将有否则将有Mn,与与M1,2,3,n-1矛盾
5、。矛盾。9RSARSA算法论证算法论证10RSARSA算法论证算法论证不妨设不妨设Map。又因又因q为素数,且为素数,且M不包含不包含q,故有(,故有(M,q)1,于是有,于是有,M(q)1 mod q。进一步有,进一步有,M t(p-1)(q)1 mod q。因为因为q是素数,是素数,(q)(q-1),所以),所以t(p-1)(q)t(n),所以有所以有M t(n)1 mod q。11于是,于是,M t(n)bq+1,其中,其中b为某整数。为某整数。两边同乘两边同乘M,M t(n)+1 bqM+M。因为因为Map,故,故M t(n)+1 bqap+M=abn+M。取模取模n得,得,M(n)+
6、1 M mod n。RSARSA算法论证算法论证12第二种情况:第二种情况:M0当当M0时,直接验证,可知命题成立。时,直接验证,可知命题成立。RSARSA算法论证算法论证13RSARSA算法论证算法论证加密和解密运算的可交换性加密和解密运算的可交换性D(E(M)=(Me)d=Med=(Md)e=E(D(M)mod n所以,所以,RSA密码可同时确保数据的秘密性和数据的密码可同时确保数据的秘密性和数据的真实性。真实性。14RSARSA算法论证算法论证加解密算法的有效性加解密算法的有效性RSA密码的加解密运算是密码的加解密运算是模幂运算模幂运算,有比较有效,有比较有效的算法。的算法。15RSAR
7、SA算法论证算法论证在计算上由公开密钥不能求出解密钥在计算上由公开密钥不能求出解密钥小合数的因子分解是容易的,然而大合数的因子分小合数的因子分解是容易的,然而大合数的因子分解却是十分困难的。关于大合数的因子分解的时间解却是十分困难的。关于大合数的因子分解的时间复杂度下限目前尚没有一般的结果,迄今为止的各复杂度下限目前尚没有一般的结果,迄今为止的各种因子分解算法提示人们种因子分解算法提示人们这一时间下限这一时间下限将不低于将不低于O(EXP(lnNlnlnN)1/2)。根据这一结论,只要合数足够大,进行因子分解是根据这一结论,只要合数足够大,进行因子分解是相当困难的。相当困难的。16RSARSA
8、算法论证算法论证假设截获密文假设截获密文C,从中求出明文,从中求出明文M。他知道。他知道MCd mod n,因为因为n是公开的,要从是公开的,要从C中求出明文中求出明文M,必须,必须先求先求出出d,而,而d是保密的是保密的。但他知道,。但他知道,ed1 mod(n),e是公开的,要从中求出是公开的,要从中求出d,必须先求出,必须先求出(n),而,而(n)是保密的是保密的。但他又知道,。但他又知道,(n)=(p-1)(q-1),17要从中求出要从中求出(n),必须,必须先求出先求出p和和q,而,而p和和q是保密的是保密的。但他知道,但他知道,n=pq,要从要从n求出求出p和和q,只有对,只有对n
9、进行因子分解。而当进行因子分解。而当n足够大时,足够大时,这是很困难的。这是很困难的。RSARSA算法论证算法论证只要能对只要能对n进行因子分解,便可攻破进行因子分解,便可攻破RSA密码。由此可以密码。由此可以得出,得出,破译破译RSA密码的困难性密码的困难性对对n因子分解的困难性。因子分解的困难性。目目前尚不能证明两者是否能确切相等,因为不能确知除了对前尚不能证明两者是否能确切相等,因为不能确知除了对n进行因子分解的方法外,是否还有别的更简捷的破译方进行因子分解的方法外,是否还有别的更简捷的破译方法。法。18 3 3、例子:、例子:假设假设RSARSA体制中体制中p=3,q=11,p=3,q
10、=11,取加密密钥取加密密钥e=7.e=7.(1)(1)求脱密密钥求脱密密钥d;d;(2)(2)写出相应的加密算法和脱密算法写出相应的加密算法和脱密算法;(3)(3)对明文对明文m=8m=8加密。加密。7d7d mod20=1mod20=1因因e=7e=7与与 互素互素,故可解模方程故可解模方程 ,即,即1)(modned20)(n20)1)(1()(qpn 解解:此时此时npq3333,且,且得到得到d d3 3。19故故RSARSA体制明、密文空间体制明、密文空间:Z/(33)加密密钥:加密密钥:(e,n)=(7,33)脱密密钥:脱密密钥:(d,p,q)=(3,3,11)加密算法加密算法:
11、cm7mod33脱密算法脱密算法:mc3mod33对明文对明文m8 8加密,得加密,得:c87mod33=220二、二、RSA算法的参数选择算法的参数选择为了确保为了确保RSA密码的安全,必须认真选择密码参数:密码的安全,必须认真选择密码参数:p和和q要足够大;要足够大;一般应用:一般应用:p和和q应应512 bits 重要应用:重要应用:p和和q应应1024 bitsp和和q应为强素数应为强素数文献指出,只要文献指出,只要(p-1)、(p+1)、(q-1)、(q+1)四四个数之一只有小的素因子,个数之一只有小的素因子,n就容易分解。就容易分解。p和和q的差要大;的差要大;21(p-1)和()
12、和(q-1)的最大公因子要小)的最大公因子要小。如果(如果(p-1)和()和(q-1)的最大公因子太大,则易受)的最大公因子太大,则易受迭代加密迭代加密攻击攻击。e的选择的选择随机且含随机且含1多就安全,但加密速度慢。于是,有的学者建议取多就安全,但加密速度慢。于是,有的学者建议取e216+165537 d的选择的选择d不能太小,要足够大不能太小,要足够大 不要许多用户共用一个模不要许多用户共用一个模n;易受共模攻击易受共模攻击22 1989年Lenstra,Manasse利用二次筛法使用数百台工作站分解了106位十进制数;1990年Lenstra,Manasse,Pollar利用数域筛法使用
13、700台工作站花费个月时间将155位十进制数分解成三个素数之积;1994年Atkins,Graff,Lenstra,Lerland利用多重二次筛法的双重大素数算法动用1600台计算机联网,600名志愿者花费个月时间分解了129位十进制数;2002年成功分解158位的十进制数。结论:154位十进制数(512bit)的模长已经不安全,应使用308位十进制数(1024bit)模长。23l RSA的安全性基础是基于的安全性基础是基于大合数分解大合数分解的困的困难性,在难性,在RSA算法中要求模数算法中要求模数N是两个大素数是两个大素数p和和q的乘积。的乘积。l 用户选择模数用户选择模数N的方法是先找到
14、两个素数,的方法是先找到两个素数,然后生成相应的模数然后生成相应的模数N。l 素数判定素数判定是要解决的首要问题。是要解决的首要问题。241 1、产生大素数的算法(、产生大素数的算法(RabinRabin素性检测算法素性检测算法)由欧拉定理知,若由欧拉定理知,若n为素数:为素数:*nZananmod11则则n可能为素数,也可能为合数可能为素数,也可能为合数。RabinRabin由此设计由此设计了一个了一个判定判定n n是否为是否为素数的算法素数的算法。反过来若:反过来若:,则,则n必为合数。必为合数。nanmod11nanmod11若若251 1、产生大素数的算法、产生大素数的算法RabinR
15、abin素性检测算法素性检测算法Rabin素性检测法是一种素性检测法是一种概率概率素数测试法。素数测试法。其输入为一奇数,输出为两种状态其输入为一奇数,输出为两种状态Yes或或No。若输入一奇数。若输入一奇数N,而输出为,而输出为No,即表示,即表示N必定为合数。若必定为合数。若输出为输出为Yes,则表示,则表示N为素为素数的数的概率为概率为1-,其中,其中为此素数测试法中为此素数测试法中可可控制的任意小数控制的任意小数,但不能为,但不能为0。(。(是在是在N是是合数的条件下误判为素数的条件概率。)合数的条件下误判为素数的条件概率。)26RabinRabin素性检测算法:素性检测算法:(1 1
展开阅读全文