实训3-2:加密算法DES和RSA的实现.ppt_第1页
实训3-2:加密算法DES和RSA的实现.ppt_第2页
实训3-2:加密算法DES和RSA的实现.ppt_第3页
实训3-2:加密算法DES和RSA的实现.ppt_第4页
实训3-2:加密算法DES和RSA的实现.ppt_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章 网络加密与认证技术 实训3-2:加密算法DES和RSA的实现(学时),本次课要点,学习目标 重点 难点,实训目的,通过软件对实际数据进行加密和解密来了解DES的运行原理 复习C语言的开发过程 通过RSA的C语言源程序了解RSA的加密、解密过程,掌握其工作原理; 通过实训进一步弄清对称加密DES和非对称加密RSA的区别。,实训背景,数据加密技术是数据安全的核心技术。尤其是在当今的电子商务、数字货币、网络银行等各种网络业务的快速的兴起时代。使得如何保护数据安全使之不被窃取、不被篡改或破坏等问题越来越受到人们的重视。解决这些问题的关键就是数据加密技术。,实训设备,实训步骤,1. MixedCS软件实现DES加密 2. MixedCS软件实现RSA加密 3. C语言实现RSA算法,1. MixedCS软件实现DES加密,1. MixedCS软件实现DES加密,(1)运行MixedCS.exe软件,打开软件的主窗口,如所示。,1. MixedCS软件实现DES加密,(2)单击 按钮,选择要进行DES加密的源文件,成功后在“输出文件”文本框中将自动显示默认的文件名,如所示。,1. MixedCS软件实现DES加密,(3)选中 项,在“DES密钥”文本框中输入4位密钥,在”确认密钥”文本框中重新输入相同的4位密钥。,1. MixedCS软件实现DES加密,(4)单击 按钮,立即会打开“提示“消息框,如所示,表示加密成功。,1. MixedCS软件实现DES加密,(5)将步骤3的密钥长度设为10位,重复加密过程,此时该软件将自动采用3DES算法进行加密,加密的时间显著增加,如所示。,1. MixedCS软件实现DES加密,(6)在主窗口的“输入文件”文本框中输入加密文件的名称,在“输出文件”文本框中将自动产生解密文件名,输入DES密钥,便可进行解密,如所示。,2. MixedCS软件实现RSA加密,2. MixedCS软件实现RSA加密,(1)打开MixedCS软件,单击 按钮,打开“产生RSA密钥对”窗口,单击 按钮产生素数p、q和密钥对,如所示。,2. MixedCS软件实现RSA加密,(2)单击 按钮将模n、公密e和私密d导出,分别保存为“n.txt”、“e.txt”和“d.txt”,如所示。,2. MixedCS软件实现RSA加密,(3)创建一个文本文件“1.txt”用于加密测试,其内容是“12345678”,如所示。,2. MixedCS软件实现RSA加密,(4)在MixedCS软件的主窗口,单击 按钮输入文件“1.txt”,自动会产生输出文件“1.txt.mcs”,单击 按钮导入“RSA密钥”文件“e.txt”,单击 按钮导入“RSA模n”文件“n.txt”,选择 ,选中 ,如所示。,2. MixedCS软件实现RSA加密,(5)单击 按钮开始进行加密,加密完成后显示“加密成功”消息框,并产生密文文件“1.txt.mcs”,用词本打开该文件,其内容如所示。,2. MixedCS软件实现RSA加密,(6)在MixedCS软件的主窗口,单击 按钮输入加密后的文件“1.txt.mcs”,自动会产生输出文件“1.txt”,单击 按钮导入“RSA密钥”文件“d.txt”,单击 按钮导入“RSA模n”文件“n.txt”,选择 ,选中 ,如所示。,2. MixedCS软件实现RSA加密,(7)单击 按钮开始进行解密,解密完成后显示“解密成功!”消息框,并产生文件“1.txt”,用词本打开该文件,其内容仍然是“12345678”。,3. C语言实现RSA算法,3. C语言实现RSA算法,(1)运行Turbo C2.0开发工具,输入RSA的源程序,进行编译产生可执行文件“RSA.exe”。 #include #include /* 判定一个数是否为素数 */ int isprime(long m) if (m = 1) return 0; else if (m = 2) return 1; else int i; for(i=2; im; i+) ,3. C语言实现RSA算法,if(m % i) = 0) return 0; return 1; /*判断e是否符合要求 gcd(e,n)=1*/ int gcd(long e,long n) long p100,i,j=0; for(i=2;i=n;i+) ,3. C语言实现RSA算法,if(n%i=0) if(j=0 | pj-1!=i) pj=i; j+; n=n/i; i-; for(i=1;ij;i+) if(e=pi) break;,3. C语言实现RSA算法, if(ij) printf(“e is error!n“); printf(“e can not only are these value:“); for(i=1;ij;i+) printf(“%d“,pi); printf(“n“); return 0; else return 1; /*加解密函数:m为信息,e为密钥,r为公开值*/,3. C语言实现RSA算法,int candp(long m,long e,long r) long c=1; e=e+1; while(e!=1) c=c*m; c=c%r; e-; return c; void main() ,3. C语言实现RSA算法,long p=0,q=0,e=0,d=0,m=0,r=0,n=0,c=0; char s3; do if(strcmp(s,“1“)=0) p=0; q=0; m=0; c=0; r=0; n=0; d=0; e=0;,3. C语言实现RSA算法, if(strcmp(s,“2“)=0) while(1) printf(“p(0-100): “); scanf(“%d“, ,3. C语言实现RSA算法,else printf(“error!the data is out of range (0-100)n“); gets(s); if(q0) r=p*q; n=(p-1)*(q-1); if(e0) d=1;,3. C语言实现RSA算法,while(e*d)%n)!=1) d+; m=0; c=0; else if(strcmp(s,“3“)=0 if(0=q & q=100 ),3. C语言实现RSA算法, if(isprime(q)=1) break; printf(“error!please input a prime datan“); else printf(“error!the data is out of range (0-100)n“); gets(s); r=p*q;,3. C语言实现RSA算法,n=(p-1)*(q-1); if(e0) d=1; while(e*d)%n)!=1) d+; m=0; c=0; else if(strcmp(s,“4“)=0 & q0) do ,3. C语言实现RSA算法,while(1) printf(“e(0-100): “); scanf(“%d“, else,3. C语言实现RSA算法,printf(“error!the data is out of range (0-100)n“); while(gcd(e,n)=0); gets(s); m=0; c=0; d=1; while(e*d)%n)!=1) d+; else if(strcmp(s,“5“)=0 & e0) ,3. C语言实现RSA算法,while(1) printf(“the plain is(0-100): “); scanf(“%d“, ,3. C语言实现RSA算法,gets(s); else if(strcmp(s,“6“)=0 ,3. C语言实现RSA算法,else printf(“error!the data is out of range (0-100)n“); gets(s); system(“cls“); printf(“nnnn“); printf(“*RSA CALCULATION*n“); printf(“* 0Exit!%12c*n“,); printf(“* 1Clear!%11c*n“,);,3. C语言实现RSA算法,if(p=0) printf(“* 2p:%15c*n“,); else printf(“* 2p:%-8ld%7c*n“,p,); if(q=0) printf(“* 3q:%15c*n“,); else printf(“* 3q:%-8ld%7c*n“,q,); if(e=0) printf(“* 4e:%15c*n“,); else printf(“* 4e:%-8ld%7c*n“,e,); if(m=0) printf(“* 5plain:%11c*n“,);,3. C语言实现RSA算法,else printf(“* 5plain:%-8ld%3c*n“,m,); if(c=0) printf(“* 6cipher:%10c*n“,); else printf(“* 6cipher:%-8ld%2c*n“,c,); if(r!=0) printf(“* r:%-5ld n:%-5ld d:%-5ld*n“,r,n,d); printf(“*n“); printf(“Please select(0-6):“);,3. C语言实现RSA算法,gets(s); while(strcmp(s,“0“)!=0); ,3. C语言实现RSA算法,(2)测试3.1的RSA实例 运行可执行

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论