RSA公钥密码系统算法的研究
- 格式:pdf
- 大小:229.66 KB
- 文档页数:5
简析RSA数据加密算法的分析与改进摘要:RSA加密算法中存在着大素数查找的问题,导致RSA运算速度缓慢。
本文利用小素数筛值法、偶数排除法、小素数整除法等方法对伪素数进行了初步的剔除,然后利用米勒-拉宾法来进行素数的检测,从而大大地改善了对素数的探测效果。
实验证明,与传统Miller-Rabin方法比较,该方法在较短的时间内产生大素数,而不是大素数的几率低于0.1%。
因此,RSA的加密速度和RSA的可操作性都得到了改善。
关键词:RSA数据加密算法改进引言:当前,信息化已成为社会发展的中心趋势,它作为一种重要的战略资源,随着互联网的发展突破了传统的空间和区域概念,使真正意义上的全球信息化逐渐呈现在我们的面前,但由于互联网的互联性、共享性和可开发性,假冒、篡改、泄露等一系列问题也需要我们去正面认识与解决。
因此,网络时代确保信息安全始终是一个重要的课题。
为了保障网络中的数据安全性,信息加密技术一定是最主要且最基础的保护方式。
在大多数情况下,只有通过加密技术才能进一步确保网络中的数据通信安全。
为了达到对资料数据的加密处理,一般可以采用多种加密算法技术。
目前,已公布的加密算法主要有DESRC4和FEAL-N等,RSA是在1977年由RSA、AdiShamirh和LenAdleman三位科研人员在美国麻省理工大学开发的,而RSA命名是基于三个开发者的姓名组合和零知识证明算法等密钥算法所命名。
在这些算法中,RSA算法是综合效果最佳的,对于它的普遍应用,以及更多被证实的安全性测试,本文都将针对此进行更深入的研究和完善,从而尽可能再提高它的性能,使RSA算法具备更佳的可操作性。
1公开RSA加密算法RSA加密属于公开密钥加密算法,它自身具有很强的代表性,对于密钥来说,不论是加密,还是解密,在关联中都存在着些许的差异。
在公开密钥算法里,加密密钥是透明化的,而对于此,解密密钥就具备鲜明的私有性。
众所周知,对于公钥和私钥,在被包含的RSA加密算法里,它们具备对数据进行加密的时效性,理论上没有任何限制;而另一个关键在于对应的解密过程,无法从根本上进行密钥的相互的推导,那么在某种程度上就能更好地解决在传输过程中因密钥丢失而造成的安全隐患。
网络安全基础教程报告题目:RSA加密算法学号:1108040205专业及班级:计网1102班姓名:雪飞日期:2013.11.26一、RSA算法介绍与应用现状RSA公开密钥加密算法自20世纪70年代提出以来,已经得到了广泛认可和应用。
发展至今,电子安全领域的各方面已经形成了较为完备的国际规。
RSA作为最重要的公开密钥算法,在各领域的应用数不胜数。
RSA在硬件方面,以技术成熟的IC应用于各种消费类电子产品。
RSA在软件方面的应用,主要集中在Internet上。
加密连接、数字签名和数字证书的核心算法广泛使用RSA。
日常应用中,有比较著名的工具包Open SSL(SSL,Security Socket Layer,是一个安全传输协议,在Internet上进行数据保护和身份确认。
Open SSL是一个开放源代码的实现了SSL及相关加密技术的软件包,由加拿大的Eric Yang等发起编写的。
Open SSL应用RSA实现签名和密钥交换,已经在各种操作系统得到非常广泛的应用。
另外,家喻户晓的IE浏览器,自然也实现了SSL协议,集成了使用RSA技术的加密功能,结合MD5和SHA1,主要用于数字证书和数字签名,对于习惯于使用网上购物和网上银行的用户来说,几乎天天都在使用RSA技术。
RSA更出现在要求高度安全稳定的企业级商务应用中。
在当今的企业级商务应用中,不得不提及使用最广泛的平台j2ee。
事实上,在j2se的标准库中,就为安全和加密服务提供了两组API:JCA和JCE。
JCA (Java Cryptography Architecture)提供基本的加密框架,如证书、数字签名、报文摘要和密钥对产生器;JCA由几个实现了基本的加密技术功能的类和接口组成,其中最主要的是java.security包,此软件包包含的是一组核心的类和接口,Java中数字签名的方法就集中在此软件包中。
JCE(Java Cryptography Extension) 在JCA的基础上作了扩展,JCE也是由几个软件包组成,其中最主要的是javax.crypto包,此软件包提供了JCE加密技术操作API。
RSA加密方案安全性研究【摘要】密码学是信息安全技术的核心,现代密码体制分为公钥体制和私钥体制两大类,私钥又称单钥体制,其加密和解密密钥相同。
公钥体制又称双钥体制,其加密、解密密钥不同,可以公开加密密钥,仅需要保密解密密钥,从而具有数字签名、鉴别等新功能,被广泛应用于金融、商业等社会生活各领域。
RSA是目前公认在理论和实际应用中最为完善的一种公钥密码体制,不仅可以进行加密,还可以用来进行数字签名和身份认证,是公钥密码体制的代表。
【关键词】密码学;数字签名;RSA;公钥密码体制信息加密技术是信息安全技术的核心技术,其主要目的是防止恶意攻击者非法破坏系统中的机密信息。
数据加密技术可以提高信息系统及数据的安全性和保密性,防止秘密数据被外部破译所采用的主要技术之一。
密码学是研究通信安全保密的科学,其目的是保护信息在信道上传输过程中不被他人窃取、解读和利用,它主要包括密码编码学和密码分析学两个相互独立又相互促进的分支。
前者研究将发送的信息(明文)变换成没有密钥不能解或很难解的密文的方法,而后者则研究分析破译密码的方法。
1RSA公钥密码体制原理图1保密系统模型著名的RSA公钥密码体制是在1975年由R.L.Rivest,A.Shamir和L.Adlemen 三人共同提出。
RSA是最具代表性的公钥密码体制。
由于算法完善(既可用于数据加密,又可用于数字签名),安全性良好,易于实现和理解,RSA己成为一种应用极广的公钥密码体制,也是目前世界上唯一被广泛使用的公钥密码。
在广泛的应用中,不仅它的实现技术日趋成熟,而且安全性逐渐得到证明。
公钥密码体制保密系统如图1所示。
该系统应当满足下述要求:①即使达不到理论上是不可破解的,也应当是实际上是不可破解的。
也就是说,从截获的密文或某些己知明文密文对,要确定密钥或任意明文在计算上是不可行的;②保密系统的安全性应依赖于密钥,而不是依赖于密码体制或算法本身的细节的安全性;③加密解密算法实用于所有密钥空间中的元素;④系统应该易于实现和使用方便。
rsa 公钥密码算法摘要:1.什么是RSA公钥密码算法2.RSA算法的基本原理3.RSA算法的应用领域4.RSA算法的安全性5.RSA算法的发展趋势正文:RSA公钥密码算法是一种非对称加密算法,由三位数学家Ron Rivest、Adi Shamir和Leonard Adleman于1977年发明。
该算法以其公开密钥和私有密钥的组合而闻名,允许用户以一种安全的方式进行加密和解密。
RSA算法的基本原理是利用两个大素数的乘积来生成公钥和私钥。
公钥由两个大素数的乘积以及一个与这两个素数互质的整数构成。
私钥则由两个大素数的乘积以及一个与这两个素数互质的整数构成。
公钥用于加密数据,私钥用于解密数据。
RSA算法的应用领域非常广泛,主要包括网络安全、电子商务、数字签名等。
在网络安全领域,RSA算法常用于保护数据的机密性和完整性;在电子商务领域,RSA算法常用于保护用户的账户信息和安全支付;在数字签名领域,RSA算法常用于验证文件的完整性和身份认证。
RSA算法的安全性主要取决于密钥的长度和生成方式。
如果密钥足够长,那么破解RSA算法将变得非常困难。
此外,RSA算法还采用了一种称为“公钥加密”的方式,使得即使密钥被盗,数据的安全性也不会受到影响。
随着计算机技术的发展,RSA算法的安全性面临着越来越大的挑战。
为了应对这些挑战,研究人员不断地提出了新的改进方案,如RSA-2048、RSA-4096等。
此外,一些新的非对称加密算法,如椭圆曲线密码算法,也在逐渐取代RSA算法。
总之,RSA公钥密码算法是一种非常重要的非对称加密算法,在现代通信和网络安全领域发挥着重要作用。
RSA1978年,MIT的Rivest、Shamir、Adleman提出RSA算法非对称加密(公开密钥加密)密码学的一次革命,定义:KA≠KB ,KA、E和D公开特点:基于数论原理(大数分解难题)是目前应用最广泛的公钥加密算法属于块加密算法在数论,对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目。
此函数以其首名研究者欧拉命名,它又称为Euler's totient function、φ函数、欧拉商数等。
RSA算法原理l 定义:RSA加密算法确定密钥:1. 找到两个大质数,p,q2. Let n=pq3. let m=(p-1)(q-1);Choose e and d such that de=1(%m).4. Publish n and e as public key. Keep d and n as secret key.加密:C=M^e(%n)解密:M=(C^d)%n其中C=M^e(%n) 为C%n=(M^e)%n存在的主要问题是大数计算和大数存储的问题。
什么是RSARSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。
RSA是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。
RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价。
即RSA的重大缺陷是无法从理论上把握它的保密性能如何,而且密码学界多数人士倾向于因子分解不是NPC问题。
RSA的缺点主要有:A)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。
B)分组长度太大,为保证安全性,n 至少也要600 bits以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级;且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。
目前,SET(Secure Electronic Transaction)协议中要求CA采用2048比特长的密钥,其他实体使用1024比特的密钥。
基于Java的RSA公钥密码算法的实现与探讨摘要:鉴于Java语言在网络上的安全特性和RSA加密算法的优越性,介绍了公钥密码体制的概念和RSA加密算法的原理,并在Java环境下实现RSA公钥密码算法。
关键词:安全体制;Java;公钥密码;RSA算法0 引言随着计算机网络技术的迅速发展,人类已步入数字化的信息时代。
通过网络进行远距离的、快速的信息交流和信息处理已变得越来越普遍。
同时,人们对信息的安全存储、安全处理和安全传输的需求也越来越迫切,但是,由于Internet 网络协议本身存在着重要的安全问题(IP包本身并不继承任何安全特性,很容易伪造出IP包的地址、修改其内容以及在传输途中拦截并查看包的内容),使网上的信息传输存在巨大的安全风险,因而数据安全越来越受到重视,算法工程技术上的实现也就有着重要的意义。
为了解决这一问题,保证数据的保密性,我们可以采用不同的加密算法对数据进行加密。
因为Java语言的安全性和网络处理能力较强,而且RSA加密算法的强大和难破解性,本文主要介绍使用RSA数据加密算法在Java环境下实现数据的安全传输。
1 Java安全体制Java 是Sun 公司开发的一种面向对象的编程语言,并且由于它的平台无关性被大量应用于Internet 的开发。
由于Java 主要用于网络应用程序开发,因此对安全性有较高的要求。
如果没有安全保证,用户从网络下载程序执行就非常危险。
Java通过自己的安全机制防止了病毒程序的产生和下载程序对本地系统的威胁破坏。
当Java字节码进入解释器时,首先必须经过字节码校验器的检查,然后,Java解释器将决定程序中类的内存布局,随后,类装载器负责把来自网络的类装载到单独的内存区域,避免应用程序之间相互干扰破坏。
最后,客户端用户还可以限制从网络上装载的类只能访问某些文件系统。
2 密码体制及RSA公钥密码2.1 公钥密码体制的概念首先我们要理解什么是密码的概念,简单的说它就是一组含有参数k的变换E。
RSA公钥密码算法RSA公钥密码算法(RSA Encryption Algorithm)是一种非对称密码算法,由三位数学家Rivest、Shamir和Adleman于1977年在美国麻省理工学院开发而成,取得了他们姓氏的首字母,并且RSA的安全性基于大整数分解难题。
公钥密码系统是一种加密解密系统,它使用一对密钥(公钥和私钥)来加密和解密消息。
公钥用于加密,私钥用于解密。
RSA公钥密码系统是一种典型的公钥密码系统,通过使用两个互为逆运算的函数,即加密函数和解密函数,来实现加密解密过程。
RSA公钥密码系统的安全性基于大整数的分解难题,即在已知一个大整数的情况下,要找到它的素因子分解是一件非常困难的事情。
RSA公钥密码算法的运算速度慢,主要是因为它的加密和解密过程需要大量的大整数运算。
但随着计算机硬件的发展和优化算法的出现,RSA公钥密码算法已经成为一种广泛应用的非对称密码算法。
它被广泛应用于电子商务、数字证书、数字签名、安全通信等领域。
RSA公钥密码算法的安全性来源于大整数的分解难题。
具体来说,RSA公钥密码算法的安全性依赖于以下两个数学问题:1.大整数分解问题:给定一个大整数N,要找到它的素因子分解是一个非常困难的事情。
这是因为当N足够大时,找到它的素因子分解需要进行大量的试除运算,这是一个非常耗时的过程。
2.欧拉函数问题:欧拉函数是一个与质数相关的函数,它与大整数的素因子分解有密切的关系。
欧拉函数问题是要计算一个数的欧拉函数值,这也是一个非常困难的数学问题。
RSA公钥密码算法的安全性是基于上述两个数学问题的困难性。
当使用RSA公钥密码算法进行加密时,首先需要选择两个大素数p和q,并计算它们的乘积N=pq。
然后选择一个较小的整数e作为公钥,满足gcd(e,(p-1)(q-1))=1。
私钥是整数d,满足de ≡ 1 (mod (p-1)(q-1))。
加密时利用公钥(e,N)对明文进行加密,解密时利用私钥(d,N)对密文进行解密。