RSA公钥加密算法安全性讨论

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

RSA公钥加密算法安全性讨论

(RSA algorithm for public-key encryption and the security)

摘要(Abstract):RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。RSA的安全性依赖于大数的因子分解,公钥和私钥都是两个大素数(大于100个十进制位)的函数。但在分布式计算技术和量子计算机理论快速发展的今天,RSA加密安全性受到了挑战。RSA algorithm is the first one can be used for both encryption and digital signature algorithms, but also easy to understand and operate. RSA is the most widely studied public key algorithm, first put forward nearly two decades now, has undergone the test of various attacks, gradually accepted, widely considered the most outstanding public key options. RSA's security depends on a large integer factorization problem, public key and private key are two large prime numbers (greater than 100 decimal digits) of the function. However, in distributed the rapid development of computing technology and the theory of quantum computers today, RSA encryption security has been challenged.

关键字(keywords):RSA,公钥(public key) ,加密(encryption),安全性(security) 1.学习心得:

21世纪是信息时代,信息在社会中的地位和作用越来越重要,已成为社会发展的重要战略资源,信息技术改变着人们的生活和工作方式,信息产业已成为新的经济增长点,社会的信息化已成为当今世界发展的潮流和核心,而信息安全在信息社会中将扮演极为重要的角色,它直接关系到国家安全、企业经营和人们的日常生活。密码技术中的加密方法包括对称密码体制和非对称密码体制。而RSA公钥体制便为非对称密钥体制,也叫做公开密钥体系。

安全的问题是永恒的,现在信息安全领域对密码算法的需求远远大于研究。因为信息交换的数量是很大的,但是我们没有足够的安全手段去保证所有通信的安全,没有一劳永逸的工具供我们使用;同时如果我们想要做一个好的信息安全的产品,必须有密码学与信息安全专家参与,假如有些密码算法的隐患你不知道,那就很难保证你使用的是安全的情形,可能正好是不安全的情形;突破性的发展必须依赖于突破性的理论工作,IT行业不景气,很大程度上不景气的原因,决定于密码学研究的相对滞后,很多需要的密码理论成果没有,比如说现在移动通信网络的安全问题,它需要算法数据量小,还要安全性好,需要加密认证,因为手机和一台电脑是不可比的,不论是存储数量和速度,所以需要研究适合于各种场合使用的密码算法,这就需要大家共同去努力。总之,通信的安全是今后时刻要考虑的问题,是我们大家都要重视的问题,而学习《通信网的安全与保密》这门课程是一次让我们了解这些问题的很好的机会。

2.RSA算法简介:

RSA加密演算法是一种非对称加密演算法,在公钥加密标准和电子商业中RSA被广泛使用。 RSA加密算法是Ron Rivest、Adi Shamirh和Len Adleman于1977年在美国麻省理工学院开发出来的,次年首次对外公开宣布,是第一个既能用于数据加密也能用于数字签名的算法。RSA就是他们三人姓氏开头字母拼在一起组成的,他们在题为《获得数字签名和公开钥密码系统的方法》的论文中提出了基于数论的非对称(公钥)密码体制,称为RSA密码体制,RSA是建立在“大整数的素因子分解是困难问题”基础上的,其安全性取决于大数分解,也就是大数分解质因数的困难性。换言之,对一极大整数做因式分解愈困难,RSA演算法愈可靠。假如有人找到一种快速因式分解的演算法的话,那么用RSA加密的信息的可靠性肯定会急剧下降,但找到这样的演算法的可能性是非常小的,今天只有短的RSA密钥才可能以暴力方式解破。

2.1 RSA公钥体制算法

(1)选两个保密的大素数p和q。

(2)计算n=p×q。

(3)计算f(n)=(p-1)(q-1),同时对p, q严加保密,不让任何人知道。

(4)找一个与f(n)互质的数e,且1

(5)计算d,使得d·e≡1 mod f(n)。这个公式也可以表达为d ≡e-1 mod f(n) (6)以{e,n}为公钥,{d,n}为私钥。

(7)加密时,先将明文变换成0至n-1的一个整数M。若明文较长,可先分割成适当的组,然后再进行交换。设密文为c,则加密过程为:c≡m e (mod n)

(8)解密过程为 m≡c d(mod n)

由算法可知:如果第三者进行窃听,他会得到m,n(p×q),b这几个数,如果想要解码,必须想办法得到e,所以,他必须先对 n作质因数分解,要防止他分解,最有效的方法是找两个非常的大质数 p和q,使第三者分解时发生困难。

2.2 RSA共模攻击

在实现RSA时,为方便起见,可能给每一用户相同的模数n,虽然加密密钥不同,但这样是非常危险的。最直接的情况是同一信息用不同的公钥加密,这些公钥共模而且互质,那么该信息无需私钥就可得到恢复。

设两个用户的公开钥分别为e1 和e2 ,且e1 和e2互素(一般情况都成立),明文消息是m,密文分别是

C1≡m e1(mod n)

C2≡m e2(mod n)

当敌人截获c1和c2后,可如下恢复m。用推广的Euclid算法求出满足

re1 + se2 = 1

的两个整数r和s,其中一个为负,设为r。再次用推广的Euclid算法求出c1-1,由此得(c1-1)-r c2s≡m(mod n)。除此之外,还有其它一些利用公共模数攻击的方法。解决办法只有一个,那就是不要共享模数n。

相关文档
最新文档