RSA算法的实现

RSA算法的实现

ID:44811882

大小:133.01 KB

页数:8页

时间:2019-10-29

RSA算法的实现_第1页
RSA算法的实现_第2页
RSA算法的实现_第3页
RSA算法的实现_第4页
RSA算法的实现_第5页
资源描述:

《RSA算法的实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、密码学实验报告实验八、RSA算法的实现一、实验目的与意义掌握并实现RSA算法。二、实验环境Windowsxpsp2Microsoftvisualc++6.0三、实验原理1)非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥

2、的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。非对称加密算法另一方面,甲方可以使用乙方的公钥对机密信息进行签名后再发送给乙方;乙方再用自己的私匙对数据进行验签。[1]甲方只能用其专用密钥解密由其公用密钥加密后的任何信息。非对称加密算法的保密性比较好,它消除了最终用户交换密钥的需要。非对称密码体制的特点:算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快。对称密码体制中只有一种密钥,并且是非公开的,如果要解密就得让对方知道密钥。所以保证其安全性就是保证密钥的安全,而非对称密钥体制有两种密钥

3、,其中一个是公开的,这样就可以不需要像对称密码那样传输对方的密钥了。这样安全性就大了很多。2)利用CC++实现RSA算法的加、解密运算。具体包括:1)利用扩展的EUCLID计算amodn的乘法逆元;2)Miller-Rabin素性测试算法对一个给定的大数进行测试;3)实现的运算,并计算;1)利用Fermat定理手工计算,并与3)计算的结果对比;2)实现RSA算法。并对"ILOVETHEPEOPLE'SREPUBLICOFCHINA"加解密。说明:为了方便实现,分组可以小一点,比如两个字母一组。字母及其数字编码字母及其数字编码空格00N14A01O15B02P16C03Q17D04R18E05

4、S19F06T20G07U21H08V22I09W23J10X24K11Y25L12Z26M13一、实验代码:#include#include#includeusingnamespacestd;intEuclid(inta,intn)//n大于a{intx,y,r;x=n;y=a;for(inti=0;;){if(y==0)returnx;if(y==1)returny;r=x%y;x=y;y=r;}}doubleextenEuclid(doublea,doublen)//利用扩展的EUCLID计算amodn的乘法逆元{doublex1=1,

5、x2=0,x3=n,y1=0,y2=1,y3=a,Q;doublet1,t2,t3;for(inti=0;;){if(y3==0){returnx3;cout<<"noreverse"<b;unsignedintN=n-1;for(inti=0,j=1;

6、;i++){if(j>N)break;if((N>>i)&(unsignedint)1)b.push_back(1);elseb.push_back(0);j*=2;}//将n-1表示成二进制形式for(intk=0;k=0;ii--){x=d;d=(d*d)%n;if(d==1&&x!=1&&x!=n-1)returnfalse;if(b[ii]==1)d=(d*a)%n;}if(d!=1)returnfalse;returntrue;}doubleq

7、uickindex1(doublea,doublem,doublen)//实现a^mmodn的运算{vectorb;unsigneddoubleN=m;for(intii=0,j=1;;ii++){if(j>N)break;if((N>>ii)&(unsigneddouble)1)b.push_back(1);elseb.push_back(0);j*=2;}doublec=0,d=1;

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。