实训3-2:加密算法DES和RSA的实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

} gets(s); r=p*q;
3. C语言实现RSA算法

d++;
n=(p-1)*(q-1); if(e>0) { d=1; while(((e*d)%n)!=1)
} m=0; c=0; } else if(strcmp(s,"4")==0 && q>0) { do {

else printf("error!please input a prime data\n"); }
3. C语言实现RSA算法


else
printf("error!the data is out of range (0100)\n"); } gets(s); if(q>0) { r=p*q; n=(p-1)*(q-1); } if(e>0) { d=1;

3. C语言实现RSA算法


if(p==0) printf("*** 2->p:%15c***\n",''); else printf("*** 2-->p:%8ld%7c***\n",p,''); if(q==0) printf("*** 3->q:%15c***\n",''); else printf("*** 3-->q:%8ld%7c***\n",q,''); if(e==0) printf("*** 4->e:%15c***\n",''); else printf("*** 4-->e:%8ld%7c***\n",e,''); if(m==0) printf("*** 5->plain:%11c***\n",'');
3. C语言实现RSA算法

printf("error!the data is out of range (0100)\n");

} }while(gcd(e,n)==0); gets(s); m=0; c=0; d=1; while(((e*d)%n)!=1) d++;
3. C语言实现RSA算法


else printf("*** 5-->plain:%8ld%3c***\n",m,''); if(c==0) printf("*** 6->cipher:%10c***\n",''); else printf("*** 6-->cipher:%8ld%2c***\n",c,''); if(r!=0) { printf("*** r:%-5ld n:%-5ld d:%5ld***\n",r,n,d); }

} if(i<j) { printf("e is error!\n"); printf("e can not only are these value:"); for(i=1;i<j;i++) printf("%d",p[i]); printf("\n"); return 0; } else return 1; } /*加解密函数:m为信息,e为密钥,r为公开值*/
} else if(strcmp(s,"5")==0 && e>0) {
3. C语言实现RSA算法

is(0-100): ");
while(1) { printf("the plain
scanf("%d",&m); if(0<=m && m<=100 ) { c=candp(m,e,r); break; } else printf("error!the data is out of range (0-100)\n"); }
实训设备
设备 数量 服 务 器 ( 安 装 1台 windows2000/2003操作系统) MixedCS.exe软件 1套 Turbo C 2.0开发工具 1套
实训步骤
1. MixedCS软件实现DES加密 2. MixedCS软件实现RSA加密 3. C语言实现RSA算法
1. MixedCS软件实现DES加密
解密
3. C语言实现RSA算法
3. C语言实现RSA算法
(1)运行Turbo C2.0开发工具,输入RSA的源程序,进

行编译产生可执行文件“RSA.exe”。 #include <stdio.h> #include <stdlib.h> /* 判定一个数是否为素数 */ int isprime(long m) { if (m <= 1) return 0; else if (m == 2) return 1; else { int i; for(i=2; i<m; i++) {
3. C语言实现RSA算法

} if(strcmp(s,"2")==0) { while(1) { printf("p(0-100): "); scanf("%d",&p); if(0<=p && p<=100 ) {
if(isprime(p)==1) break;
3. C语言实现RSA算法


else
printf("error!the data is out of range (0100)\n"); } gets(s); } system("cls"); printf("\n\n\n\n"); printf("********RSA CALCULATION********\n"); printf("*** 0-->Exit!%12c***\n",''); printf("*** 1-->Clear!%11c***\n",'');
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() {
(1)打开MixedCS软件,单击
RSA密钥对”窗口,单击 ,如所示。
产生
按钮,打开“产生 按钮产生素数p、q和密钥对
产生RSA密钥对
2. MixedCS软件实现RSA加密
(2)单击
按钮将模n、公密e和私密d导出,分别保 存为“n.txt”、“e.txt”和“d.txt”,如所示。
导出>>
实训设备设备数量服务器安装windows20002003操作系统mixedcs软件实现des加密1运行mixedcsexe软件打开软件的主窗口如所示mixedcs软件实现des加密2单击按钮选择要进行des加密的源文件成功后在输出文件文本框中将自动显示默认的文件名如所示
第3章 网络加密与认证技术 实训3-2:加密算法DES和RSA的实现(学时)
(3)选中
项,在“DES密钥”文本框中输入4位密 钥,在”确认密钥”文本框中重新输入相同的4位密钥。
1. MixedCS软件实现DES加密
(4)单击
按钮,立即会打开“提示“消息框,如 所示,表示加密成功。
加密
1. MixedCS软件实现DES加密
(5)将步骤3的密钥长度设为10位,重复加密过程,此
按钮输入加密 后的文件“1.txt.mcs”,自动会产生输出文件 “1.txt”,单击 按钮导入“RSA密钥”文件 “d.txt”,单击 按钮导入“RSA模n”文件 “n.txt”,选择 ,选中 ,如所示。
浏览文件
2. MixedCS软件实现RSA加密
(7)单击
按钮开始进行解密,解密完成后显示“ 解密成功!”消息框,并产生文件“1.txt”,用词本打 开该文件,其内容仍然是“12345678”。
3. C语言实现RSA算法

d++;
while(((e*d)%n)!=1)
} m=0; c=0; } else if(strcmp(s,"3")==0 && p>0) { while(1) { printf("q(0-100): "); scanf("%d",&q); if(0<=q && q<=100 )
浏览文件 <<导入
2. MixedCS软件实现RSA加密
(5)单击
按钮开始进行加密,加密完成后显示“ 加密成功”消息框,并产生密文文件“1.txt.mcs”,用 词本打开该文件,其内容如所示。
加密
2. MixedCS软件实现RSA加密
(6)在MixedCS软件的主窗口,单击
<<导入 <<导入
时该软件将自动采用3DES算法进行加密,加密的时间显 著增加,如所示。
1. MixedCS软件实现DES加密
(6)在主窗口的“输入文件”文本框中输入加密文件的
名称,在“输出文件”文本框中将自动产生解密文件名 ,输入DES密钥,便可进行解密,如所示。
2. MixedCS软件实现RSA加密
2. MixedCS软件实现RSA加密

3. C语言实现RSA算法


gets(s);
} else if(strcmp(s,"6")==0 && e>0) { while(1) { printf("the cipher is(0-100): "); scanf("%d",&c); if(0<=m && m<=100 ) { m=candp(c,d,r); break; }
本次课要点
学习目标
重点 难点
实训目的
通过软件对实际数据进行加密和解密来了解DES
的运行原理 复习C语言的开发过程 通过RSA的C语言源程序了解RSA的加密、解密过 程,掌握其工作原理; 通过实训进一步弄清对称加密DES和非对称加密 RSA的区别。
实训背景
数据加密技术是数据安全的核心技术。尤其是在 当今的电子商务、数字货币、网络银行等各种网 络业务的快速的兴起时代。使得如何保护数据安 全使之不被窃取、不被篡改或破坏等问题越来越 受到人们的重视。解决这些问题的关键就是数据 加密技术。
பைடு நூலகம்
3. C语言实现RSA算法

if(isprime(q)==1) break;
{


printf("error!please input a prime data\n"); } else printf("error!the data is out of range (0100)\n");
3. C语言实现RSA算法

100): ");
while(1) { printf("e(0scanf("%d",&e); if(0<=e && e<=100 )


if(isprime(e)==1) break;
{

printf("error!please input a prime data\n"); } else
3. C语言实现RSA算法

long p=0,q=0,e=0,d=0,m=0,r=0,n=0,c=0; char s[3]; do { if(strcmp(s,"1")==0) { p=0; q=0; m=0; c=0; r=0; n=0; d=0; e=0;
1. MixedCS软件实现DES加密
(1)运行MixedCS.exe软件,打开软件的主窗口,如所示

1. MixedCS软件实现DES加密
(2)单击
按钮,选择要进行DES加密的源文件, 成功后在“输出文件”文本框中将自动显示默认的文件 名,如所示。
浏览文件
1. MixedCS软件实现DES加密
2. MixedCS软件实现RSA加密
(3)创建一个文本文件“1.txt”用于加密测试,其内
容是“12345678”,如所示。
2. MixedCS软件实现RSA加密
(4)在MixedCS软件的主窗口,单击
<<导入
按钮输入文件 “1.txt”,自动会产生输出文件“1.txt.mcs”,单击 按钮导入“RSA密钥”文件“e.txt”,单击 按钮导入“RSA模n”文件“n.txt”,选择 ,选中 ,如所示。
3. C语言实现RSA算法

if(n%i==0) { if(j==0 || p[j-1]!=i) { p[j]=i; j++; n=n/i; i--; } }
} for(i=1;i<j;i++) { if(e==p[i]) break;
3. C语言实现RSA算法
3. C语言实现RSA算法

if((m % i) == 0) { return 0; }
} return 1; }
} /*判断e是否符合要求 gcd(e,n)=1*/ int gcd(long e,long n) { long p[100],i,j=0; for(i=2;i<=n;i++) {
相关文档
最新文档