收藏 分享(赏)

[密码学]公开密钥体系之RSA算法.doc

上传人:dzzj200808 文档编号:2299692 上传时间:2018-09-10 格式:DOC 页数:3 大小:68.50KB
下载 相关 举报
[密码学]公开密钥体系之RSA算法.doc_第1页
第1页 / 共3页
[密码学]公开密钥体系之RSA算法.doc_第2页
第2页 / 共3页
[密码学]公开密钥体系之RSA算法.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、密码学公开密钥体系之 RSA算法当前最著名、应用最广泛的公钥系统 RSA是在 1978年,由美国麻省理工学院(MIT)的Ron Rivest, Adi Shamir 和 Leonard Adleman在题为获得数字签名和公开钥密码系统的方法的论文中提出的。它是一个基于数论的非对称(公开钥)密码体制,是一种分组密码体制。其名称来自于三个发明者的姓名首字母。 它的安全性是基于大整数素因子分解的困难性,而大整数因子分解问题是数学上的著名难题,至今没有有效的方法予以解决,因此可以确保 RSA算法的安全性。RSA 系统是公钥系统的最具有典型意义的方法,大多数使用公钥密码进行加密和数字签名的产品和标准使用

2、的都是 RSA算法。RSA算法是第一个既能用于数据加密也能用于数字签名 的算法,因此它为公用网络上信息的加密和鉴别提供了一种基本的方法。它通常是先生成一对 RSA 密钥,其中之一是保密密钥,由用户保存;另一个为公开密钥,可对外公开,甚至可在网络服务器中注册,人们用公钥加密文件发送给个人,个人就可以用私钥解密接受。为提高保密强度,RSA 密钥至少为 500位长,一般推荐使用 1024位。该算法基于下面的两个事实,这些事实保证了 RSA算法的安全有效性:1.已有确定一个数是不是质数的快速算法;2.尚未找到确定一个合数的质因子的快速算法。工作原理1) 任意选取两个不同的大质数 p和 q,计算乘积 r

3、=p*q;2) 任意选取一个大整数 e,e 与(p-1)*(q-1)互质,整数 e用做加密密钥。注意:e 的选取是很容易的,例如,所有大于 p和 q的质数都可用。3) 确定解密密钥 d: d * e = 1 modulo(p - 1)*(q - 1) 根据 e、p 和 q可以容易地计算出 d。4) 公开整数 r和 e,但是不公开 d;5) 将明文 P (假设 P是一个小于 r的整数)加密为密文 c,计算方法为:c = Pe modulo r6) 将密文 c解密为明文 P,计算方法为:P = cd modulo r然而只根据 r和 e(不是 p和 q)要计算出 d是不可能的。因此,任何人都可对明

4、文进行加密,但只有授权用户(知道 d)才可对密文解密。数学原理定理若 p, q 是相异质数, rm = 1 mod (p-1)(q-1),a 是任意一个正整数, b = am mod pq, c = br mod pq,则 c = a mod pq证明 的过程, 会用到费马小定理, 叙述如下:m 是任一质数, n 是任一整数, 则 nm = n mod m(换另一句话说, 如果 n 和 m 互质, 则 n(m-1) = 1 mod m)运用一些基本的群论的知识, 就可以很容易地证出费马小定理的证明因为 rm = 1 mod (p-1)(q-1), 所以 rm = k(p-1)(q-1) + 1

5、, 其中 k 是整数因为在 modulo 中是 preserve 乘法的(x = y mod z and u = v mod z = xu = yv mod z),所以, c = br = (am)r = a(rm) = a(k(p-1)(q-1)+1) mod pq1. 如果 a 不是 p 的倍数, 也不是 q 的倍数时,则 a(p-1) = 1 mod p (费马小定理) = a(k(p-1)(q-1) = 1 mod pa(q-1) = 1 mod q (费马小定理) = a(k(p-1)(q-1) = 1 mod q所以 p, q 均能整除 a(k(p-1)(q-1) - 1 = pq

6、 | a(k(p-1)(q-1) - 1即 a(k(p-1)(q-1) = 1 mod pq= c = a(k(p-1)(q-1)+1) = a mod pq2. 如果 a 是 p 的倍数, 但不是 q 的倍数时,则 a(q-1) = 1 mod q (费马小定理)= a(k(p-1)(q-1) = 1 mod q= c = a(k(p-1)(q-1)+1) = a mod q= q | c - a因 p | a= c = a(k(p-1)(q-1)+1) = 0 mod p= p | c - a所以, pq | c - a = c = a mod pq3. 如果 a 是 q 的倍数, 但不是

7、 p 的倍数时, 证明同上4. 如果 a 同时是 p 和 q 的倍数时,则 pq | a= c = a(k(p-1)(q-1)+1) = 0 mod pq= pq | c - a= c = a mod pqQ.E.D.这个定理说明 a 经过编码为 b 再经过解码为 c 时, a = c mod n (n = pq)但我们在做编码解码时, 限制 0 = a n, 0 = c n,所以这就是说 a 等於 c, 所以这个过程确实能做到编码解码的功能.为了说明该算法的工作过程,我们下面给出一个简单例子,显然我们在这只能取很小的数字,但是如上所述,为了保证安全,在实际应用上我们所用 的数字要大的多得多。

8、例:选取 p=3, q=5,则 r=15, (p-1)*(q-1)=8。选取 e=11(大于 p和 q的质数) ,通过d * 11 = 1 modulo 8,计算出 d =3。假定明文为整数 13。则密文 c为c = Pe modulo r= 1311 modulo 15= 1,792,160,394,037 modulo 15= 7复原明文 P为:P = cd modulo r= 73 modulo 15= 343 modulo 15= 13因为 e和 d互逆,公开密钥加密方法也允许采用这样的方式对加密信息进行“签名“,以便接收方能确定签名不是伪造的。两个在不安全信道中通信的人,假设为 Al

9、ice(收信者)和 Bob(发信者) ,他们希望能够安全的通信而不被他们的敌手 Oscar破坏。Alice 想到了一种办法,她使用了一种锁(相当于公钥) ,这种锁任何人只要轻轻一按就可以锁上,但是只有 Alice的钥匙(相当于私钥)才能够打开。然后 Alice 对外发送无数把这样的锁,任何人比如 Bob想给她寄信时,只需找到一个箱子,然后用一把 Alice的锁将其锁上再寄给 Alice,这时候任何人(包括 Bob 自己)除了拥有钥匙的 Alice,都不能再打开箱子,这样即使 Oscar能找到 Alice的锁,即使 Oscar能在通信过程中截获这个箱子,没有 Alice 的钥匙他也不可能打开箱子

10、,而 Alice的钥匙并不需要分发,这样 Oscar 也就无法得到这把“私人密钥” 。优点RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA 是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。该算法的加密密钥和加密算法分开,使得密钥分配更为方便。它特别符合计算机网络环境。对于 网上的大量用户,可以将加密密钥用电话簿的方式印出。如果某用户想与另一用户进行保密通信,只需从公钥簿上查出对方的加密密钥,用它对所传送的信息加密发出即可。对方收到信息后,用仅为自己所知的解密密钥将信息脱密,了解报文的内容。由

11、此可看出,RSA 算法解决了大量网络用户密钥管理的难题,这是公钥密码系统相对于对称密码系统最突出的优点。缺点1)产生密钥很麻烦,受到素数产生 技术的限制,因而难以做到一次一密。2)安全性, RSA 的安全性依赖于大数的因子分解,但并没有从理论上证明破译 RSA的难度与大数分解难度等价,而且密码学界多数人士倾向于因子分解不是 NPc问题。目前,人们已能分解 140多个十进制位的大素数,这就要求使用更长的密钥,速度更慢;另外,目前人们正在积极寻找攻击 RSA的方法,如选择密文攻击,一般攻击者是将某一信息作一下伪装(Blind),让拥有私钥的实体签署。然后,经过计算就可得到它所想要 的信息。实际上,

12、攻击利用的都是同一个弱点,即存在这样一个事实:乘幂保留了输入的乘法结构:( XM )d = Xd *Md mod n前面已经提到,这个固有的问题来自于公钥密码系统的最有用的特征-每个人都能使用公钥。但从算法上无法解决这一问题,主要措施有两条:一条是采用好的公钥协议,保证工作过程中实体不对其他实体任意产生的信息解密,不对自己一无所知 的信息签名;另一条是决不对陌生人送来的随机文档签名,签名时首先使用 One-Way Hash Function对文档作 HASH处理,或同时使用不同的签名算法。除了利用公共模数,人们还尝试一些利用解密指数或 (n)等等攻击.3)速度太慢,由于 RSA 的分组长度太大

13、,为保证安全性,n 至少也要 600 bitx 以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级;且随着大数分解 技术的发展,这个长度还在增加,不利于数据格式的标准化。目前,SET(Secure Electronic Transaction)协议中要求 cA采用 2048比特长的密钥,其他实体使用 1024比特的密钥。为了速度问题,目前人们广泛使用单,公钥密码结合使用的方法,优缺点互补:单钥密码加密速度快,人们用它来加密较长的文件,然后用 RSA来给文件密钥加密,极好的解决了单钥密码的密钥分发问题。公钥加密算法中使用最广的是 RSA。RSA 算法研制的最初理念与目标是努力使互联

14、网安全可靠,旨在解决 DES算法秘密密钥的利用公开信道传输分发的难题。而实际结果不但很好地解决了这个难题;还可利用 RSA来完成对电文的数字签名以抗对电文的否认与抵赖;同时还可以利用数字签名较容易地发现攻击者对电文的非法篡改,以保护 数据信息的完整性。目前为止,很多种加密技术采用了 RSA算法,该算法也已经在互联网的许多方面得以广泛应用,包括在安全接口层(SSL)标准(该标准是网络浏览器建立安全的互联网连接时必须用到的)方面的应用。此外,RSA 加密系统还可应用于智能 Ic卡和网络安全产品。但目前 RSA算法的专利期限即将结束,取而代之的是基于椭圆曲线的密码方案(ECC 算法) 。较之于RSA算法,ECC 有其相对优点,这使得 ECc的特性更适合当今电子商务需要快速反应的发展潮流。此外,一种全新的量子密码也正在发展中。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报