RSA算法简介 sha1withrsa算法 简介

1 简介

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

RSA算法是第一个既能用于数据加密也能用于数字签名的算法,因此它为公用网络上信息的加密和鉴别提供了一种基本的方法。它通常是先生成一对RSA密钥,其中之一是保密密钥,由用户保存;另一个为公开密钥,可对外公开,甚至可在网络服务器中注册,人们用公钥加密文件发送给个人,个人就可以用私钥解密接受。为提高保密强度,RSA密钥至少为500位长,一般推荐使用1024位。

该算法基于下面的两个事实,这些事实保证了RSA算法的安全有效性:
1)已有确定一个数是不是质数的快速算法;
2)尚未找到确定一个合数的质因子的快速算法。

2 工作原理

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

3 简单实例

为了说明该算法的工作过程,我们下面给出一个简单例子,显然我们在这只能取很小的数字,但是如上所述,为了保证安全,在实际应用上我们所用的数字要大的多得多。

例:选取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 = Pemodulo r
= 1311modulo 15
=1,792,160,394,037 modulo 15
= 7
复原明文P为:
P = Cd modulo r
= 73 modulo15
= 343 modulo15
= 13
因为e和d互逆,公开密钥加密方法也允许采用这样的方式对加密信息进行"签名",以便接收方能确定签名不是伪造的。

假设A和B希望通过公开密钥加密方法进行数据传输,A和B分别公开加密算法和相应的密钥,但不公开解密算法和相应的密钥。A和B的加密算法分别是ECA和ECB,解密算法分别是DCA和DCB,ECA和DCA互逆,ECB和DCB互逆。若A要向B发送明文P,不是简单地发送ECB(P),而是先对P施以其解密算法DCA,再用加密算法ECB对结果加密后发送出去。

密文C为:
C = ECB(DCA(P))
B收到C后,先后施以其解密算法DCB和加密算法ECA,得到明文P:
ECA(DCB(C))
=ECA(DCB(ECB(DCA(P))))
=ECA(DCA(P))/*DCB和ECB相互抵消*/
RSA算法简介 sha1withrsa算法 简介
=P/*DCB和ECB相互抵消*/

这样B就确定报文确实是从A发出的,因为只有当加密过程利用了DCA算法,用ECA才能获得P,只有A才知道DCA算法,没有人,即使是B也不能伪造A的签名。

4 优缺点

4.1优点

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

4.2缺点

1)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。

2)安全性,RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价,而且密码学界多数人士倾向于因子分解不是NPC问题。目前,人们已能分解140多个十进制位的大素数,这就要求使用更长的密钥,速度更慢;另外,目前人们正在积极寻找攻击RSA的方法,如选择密文攻击,一般攻击者是将某一信息作一下伪装(Blind),让拥有私钥的实体签署。然后,经过计算就可得到它所想要的信息。实际上,攻击利用的都是同一个弱点,即存在这样一个事实:乘幂保留了输入的乘法结构:

( XM)d = Xd *Md mod n

前面已经提到,这个固有的问题来自于公钥密码系统的最有用的特征--每个人都能使用公钥。但从算法上无法解决这一问题,主要措施有两条:一条是采用好的公钥协议,保证工作过程中实体不对其他--实体任意产生的信息解密,不对自己一无所知的信息签名;另一条是决不对陌生人送来的随机文档签名,签名时首先使用One-WayHashFunction对文档作HASH处理,或同时使用不同的签名算法。除了利用公共模数,人们还尝试一些利用解密指数或φ(n)等等攻击.

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



  

爱华网本文地址 » http://www.aihuau.com/a/25101015/264836.html

更多阅读

《混沌之戒Ω》攻略:欧米伽人物简介+剧情解析

混沌之戒欧米伽,以下简称CRO,是混沌之戒Chaos Rings的前传。主人公为一代里的Olgar(奥加),此作的性质是一个前传类型的剧情补完,即便没有一代那样宏大的故事,但是这一作的剧情却依旧感人至深。《混沌之戒Ω》攻略:欧米伽人物简介+剧情解析

虫虫大作战简介加攻略 虫虫大作战修改器

虫虫大作战简介加攻略——简介虫虫大作战是一款即时战略塔防类单机游戏,类似于植物大战僵尸,但画面感更强。玩家要控制的是蚂蚁、蜜蜂、甲虫等其它昆虫,而且,此款游戏不仅有剧情模式,还有双人对战模式,可玩性还是挺高的。虫虫大作战简介

思科模拟器:2 入门之界面简介

思科模拟器:[2]入门之界面简介——简介思科模拟器是网络工程师经常使用的网络实验模拟软件,它可以很快捷的模拟网络中的各种设备(交换机、路由器、台式电脑、笔记本电脑、服务器、网络云),搭建各种网络环境,模拟网络拓扑结构等。下面天

“启发式搜索算法”简介 启发式搜索算法有哪些

何谓启发式搜索算法  在说它之前先提提状态空间搜索。状态空间搜索,如果按专业点的说法就是将问题求解过程表现为从初始状态到目标状态寻找这个路径的过程。通俗点说,就是在解一个问题时,找到一条解题的过程可以从求解的开始到问题的

声明:《RSA算法简介 sha1withrsa算法 简介》为网友以身报国分享!如侵犯到您的合法权益请联系我们删除