- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于数论的RSA算法研究.doc
基于数论的RSA算法研究
【摘要】基于数论的公钥密码体制的RSA算法是最完善的加密算法. 通过RSA算法基本原理可以将大数的幂模运算转换为小数幂模运算,并对一些模块进行适当的改进,从而提出快速求解加密和解密的计算方法,提高RSA的运算速度。
【关键词】公钥密码算法RSA算法幂模运算
【基金项目】河南省教育厅科学技术研究重点项目资助计划(14A110016)。
【中图分类号】O29 【文献标识码】A 【文章编号】2095-3089(2014)05-0137-02
1.前言
RSA公钥密码算法是美国麻省理工学院的三位学者Rivest、Shamir和Adleman在1978年提出的[1],既可以用于加密,又可用于数字签名,它安全,易懂,易实现,是目前广泛应用的一种密码算法。其理论基础是数论中的大合数因子分解困难性,即求两个大素数之积,在计算机上很容易实现。但是要将一个大合数分解成两个素数的乘积,在计算机上很难实现。 由于RSA算法采用的幂模运算耗时太多,大量的数据处理时速度很慢,所以提高RSA的运算效率便成为非常重要的研究内容[4]。
2.基本定义与定理
定义1:若a,b,c都是整数,且a|b,a|c,那么a就是b和c的公因数。在所有公因数中最大一个,称为最大公因数,并记为gcd(b,c)[3]。
定义2:若a和b的最大公因数是1,即gcd(b,c)=1,则称a和b互素[2]。
定义3:设a,b∈Z,n≠0如果n|(a-b),则称a和b模n同余,记为a≡b(modn),整数n称为模数[3]。
定义4:元素x∈Zn有乘法逆元x-1,当且仅当x和n的最大公因子是1,即gcd(x,n=1),即x和n互质。如果x的逆元存在,必定满足x×x-1modn=1[3]。
定理1:若a和n互素,则aφ(n)=1modn,称为欧拉定理(简称Euler定理)。
证明:设Zn={a1,a2,...aφ(n)}是模n的一个群集,由于gcd(a,n)=1,根据同余性质ab=a1b1(modn),故aZn={aa1,aa2,...aaφ(n)}也是模n的一个群集,即■a1≡■(aa1)(modn)。因此aφ(n)≡1modn。
定理2:若是p素数,a是正整数且gcd(a,p)=1则ap-1≡1modp,称为费尔玛定理。(简称Fermat定理)[1]。
定理3:设n是一正整数,小于n且与n互质的正整数的个数称为n的欧拉函数,记为φ(n),若n是素数,则显然有φ(n)=n-1[1]。
推论1:若n是两个素数p和q的乘积,则φ(n)=φ(p)×φ(q)=(p-1)×(q-1)
推论2:对任意非负整数a和正整数b有gcd(a,b)=gcd(b,amodb)。
证明:因为b是正整数,所以可将a表示为a=kb+r≡rmodb,amodb=r,其中为k一整数,所以amodb=a-kb,设d是a,b的公因子,即d|a,d|b,所以d|kb,由d|a和d|kb得d|(amodb),因此a是b和amodb的公因子。所以得出a,b的公因子集合与b,amodb的公因子集合相等,两个集合的最大值也相等。
3.RSA公钥算法描述
3.1密钥选择
RSA加密算法的密钥选择方法是该算法的核心,RSA密钥的选择和生成方法保证了RSA公钥加密算法的安全性。先选择两个素数p和q。这两个素数的乘积就是RSA密钥中的正整数n,即n=p×q,如果p和q足够大,那么乘积n也就足够大,如再分解p和q困难性极大,这样就可以满足了公钥密码系统的要求,根据欧拉函数计算出φ(n)=(p-1)(q-1)。然后,随机选取整数e,满足1<e<φ(n),并且gcd(e,φ(n))=1,作为加密密钥。最后求出d=e-1modφ(n),作为解密密钥。则(e,n)为公钥,d为私钥,p和q为秘密参数,需要做保密处理。
3.2加密运算
加密消息时,先将它分成比n小的数据分组,采用二进制数,选取小于n的2的最大次幂,也就是说,如果p和q为200位素数,那么n将400有位,每个消息分组mi小于400位长,加密后的密文将由相同长度的分组组成ci, 加密公式为c=memodn 如果需要对密文c进行解密,则只需要c对进行d次乘法运算,然后再对乘积取n的模,得到明文m。
3.3解密运算
解密公式为m=cdmodn,因为d=e-1modφ(n),等式两边同乘以e将等式转化为d×e=1modφ(n)。根据模运算性质可知d×e=kφ(n)+1,其中k是一个大于等于的整数。根据加密公式和模运算性质可知cdmodn=(me)dmodn=mkφ(n)+1modn,利用指数运算性质m×mkφ
文档评论(0)