欢迎来到天天文库
浏览记录
ID:26021795
大小:228.00 KB
页数:18页
时间:2018-11-24
《实验一 加密算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《计算机网络安全》实验指导书实验一加密算法1、实验背景l多表替代密码:由多个简单的替代密码构成,例如,可能有5个不同的简单替代密码,分别用于替代明文中不同位置的字符。主要学习维吉尼亚表。l换位密码:一种早期的加密方法,明文的字母保持相同,但顺序被打乱了。lDES加密算法工作的基本原理:其入口参数有三个:key、data、mode。key为加密解密使用的密钥,data为加密解密的数据,mode为其工作模式。当模式为加密模式时,明文按照64位进行分组,形成明文组,key用于对数据加密,当模式为解密模式时,key用于对数据解密。实际运用中,密钥只用到了64位中的
2、56位,这样才具有高的安全性。主要掌握S盒替代。2、实验目的1、实验课前复习DES加密、传统加密算法—多表替代(维吉尼亚表替代)、换位密码算法。2、任选C、C++、VC++等其中一种来实现编程实现加密算法。3、调试程序,给定一段明文,和密钥,通过加密算法,给出密文。4、目的:掌握加密算法的基本原理及其加密方法的详细步骤。3、实验所需设备安装Windows9x/2000/XP/2003操作系统和Visualstudio6.0环境的PC。4、实验拓扑无5、实验步骤l多表替代注意红色字体代码1启动VC++6.0。2新建Win32ConsoleApplicatio
3、n。3在ProjectName和Locate位置填上工程名weijiniya和保存位置(自选)。4按OK按钮。选AnsimpleProject。5按Finish按钮。6在weijiniya.cpp中添加如下代码:#include"stdafx.h"#include#include17《计算机网络安全》实验指导书#include#includevoidShift()/*移位密码*/{charc[100];intlength,i=0,key=0;//clrscr();printf("*
4、*******ShiftCipher********Pleaseinputprimalsentence:");gets(c);length=strlen(c);printf("Inputthekey(0~26):");scanf("%d",&key);getchar();if(key<0){printf("Thevalueofkeyiserror!Pressanykeytoreturn...");getch();return;}for(i=0;i96&&c[i]<123)c[i]=(c[i]+key-97)
5、%26+65;elseif(c[i]>64&&c[i]<91)c[i]=(c[i]+key-65)%26+65;}printf("Resultis:%s",c);for(i=0;i64&&c[i]<91)c[i]=(c[i]-key-65+26)%26+97;}printf("Aftertranslatedthesentence,wecanseetheprimalsentenceasfollow:%s",c);printf("Pressanykeytoreturn...");getch();}int
6、gcd(inta,intb)/*辗转相除法求a,b的最大公因数*/17《计算机网络安全》实验指导书{intk=0;do{k=a%b;a=b;b=k;}while(k!=0);returna;}intNi(inta,intb)/*求a相对于b的逆*/{inti=0;while(a*(++i)%b!=1);returni;}voidAffine()/*仿射密码*/{charc[100];intlength,i=0,ka=0,kb=0,tmp;//clrscr();printf("********AffineCipher********Pleaseinput
7、primalsentence:");gets(c);length=strlen(c);printf("Inputthekey(2numbers):");scanf("%d%d",&ka,&kb);getchar();if(gcd(ka,26)!=1){printf("Thevalueofthekeyiserror!Pressanykeytoreturn...");return;}for(i=0;i96&&c[i]<123)c[i]=(ka*(c[i]-97)+kb)%26+65;elseif(c[i]>64&&
8、c[i]<91)17《计算机网络安全》实验指导书c[i]=(ka*
此文档下载收益归作者所有