密码学与应用课程设计-rsa算法加密解密

密码学与应用课程设计-rsa算法加密解密

ID:12063190

大小:121.01 KB

页数:20页

时间:2018-07-15

密码学与应用课程设计-rsa算法加密解密_第1页
密码学与应用课程设计-rsa算法加密解密_第2页
密码学与应用课程设计-rsa算法加密解密_第3页
密码学与应用课程设计-rsa算法加密解密_第4页
密码学与应用课程设计-rsa算法加密解密_第5页
资源描述:

《密码学与应用课程设计-rsa算法加密解密》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、课程设计说明书课程名称:密码学与应用设计题目:RSA算法加密解密院部:计算机科学与信息工程学院学生姓名:学号:专业班级:指导教师:2015年6月19目录一、RSA算法的简介21、RSA的由来22、大数分解和素性检测23、RSA密码体制的建立:24、RSA算法实例:2二、设计目的3三、设计思路3四、部分代码及功能41、candp函数......................................................................................42、fun函数......................................

2、.....................................................53、prime函数......................................................................................64、欧拉数方法..................................................................................65、选择加密还是解密................................................

3、........................6五、运行结果7六、总结.....................................................................................................819一、RSA算法的简介1、RSA的由来RSA是Rivet,Shamir和Adleman于1978年在美国麻省理工学院研制出来的,它是一种比较典型的公开密钥加密算法。2、大数分解和素性检测将两个大素数相乘在计算上很容易实现,但将该乘积分解为两个大素数因子的计算量是相当巨大的,以至于在实际计算中是不能实现的。3、RSA密

4、码体制的建立:(1)选择两个不同的大素数p和q;(2)计算乘积n=p*q和Φ(n)=(p-1)(q-1);(3)选择大于1小于Φ(n)的随机整数e,使得gcd(e,Φ(n))=1;(4)计算d使得de=1modΦ(n);(5)对每一个密钥k=(n,p,q,d,e),定义加密变换为Ek(x)=xemodn,解密变换为Dk(x)=ydmodn,这里x,y∈Zn;(6)以{e,n}为公开密钥,{p,q,d}为私有密钥。4、RSA算法实例:下面用两个小素数7和17来建立一个简单的RSA算法:(1)选择两个素数p=7和q=17;(2)计算n=p*q=7*17=119,计算Φ(n)=(p-1)(q-1

5、)=6*16=96;19(3)选择一个随机整数e=5,它小于Φ(n)=96并且于96互素;(4)求出d,使得de=1mod96且d<96,此处求出d=77,因为77*5=385=4*96+1;(5)输入明文M=19,计算19模119的5次幂,Me=195=66mod119,传出密文C=66;(6)接收密文66,计算66模119的77次幂;Cd=6677≡19mod119得到明文19。一、设计目的通过完成具有一定难度的题目,使自己能够将课本上的理论知识和具体问题有机地结合起来,锻炼自己分析问题、解决问题的能力,提高编程能力;完成一些需要查阅相关资料才能做的题目,提高自己的自学习能力和创新能力

6、。同时,使自己对密码学以及RSA算法具有了深刻的认识和体会,能够认识到加密解密在当今社会的重要性。二、设计思路(包括所用的函数)RSA的公钥、私钥的组成,以及加密、解密的公式可见于下表:19主函数实现求n的欧拉数,由公钥求解私钥,加密解密选择以及相应的密文明文输出。candp实现加密解密时的求幂取余运算子函数fun实现e与t的互素判断,以验证e是否符合要求prime实现一个素数判断,以验证输入的数是否为素数一、部分代码及功能1、candp函数函数candp为数据处理函数,作用为实现幂的取余运算,通过while循环,判断b是不是等于1,%为取余符号。intcandp(inta,intb,in

7、tc){intz;z=1;b=b+1;while(b!=1){z=z*a;z=z%c;b--;}19printf("%d",z);returnz;}2、fun函数函数fun为实现e与t的互素判断,以验证e是否符合要求intfun(intx,inty){ints;while(y){s=x;x=y;y=s%y;}if(x==1)return0;//x与y互素时返回0elsereturn1;//x与y不互素时返回1}3、p

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

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

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