您所在位置:网站首页 > 海量文档
 > 高等教育 > 实验设计
密码学_实验一_古典密码算法_C语言.doc8页
本文档一共被下载:次,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
数学与软件科学学院 实验报告
学期:_2011_至_2012_ 第__2 学期 2012 年 月 日
课程名称: _ 专业:信息与计算科学 _2009_级_06_班
实验编号: 实验项目 _ 指导教师_ _
姓名: 林海 学号: 2009060619 实验成绩: ___
实验一 古典密码算法
实验原理
古典密码算法历史上曾被广泛应用,大都比较简单,使用手工和机械操作来实现加密和解密。它的主要应用对象是文字信息,利用密码算法实现文字信息的加密和解密。下面介绍两种常见的具有代表性的古典密码算法,以帮助读者对密码算法建立一个初步的印象。
实验目的
通过变成实现替代密码算法和置换密码算法,加深对古典密码体质的了解,为深入学习密码学奠定基础。
实验环境
运行windows或linux操作系统的pc机,具有gcc(linux)、VC(Windows)等C语言编译环境。
实验内容
4.1替代密码算法
4.1.1
根据实验远离部分对替代密码算法的介绍,创建明文信息,并选择一个密钥k,编写替代密码算法的实现程序,实现加密和解密操作。
替代密码包括多种类型,如单表替代密码、多明码替代密码、多字母替代密码、多表替代密码等。
4.1.2
替代密码算法的远离是使用替代法进行加密,就是将明文的字符用其他字符替代后形成密文。例如字母a、b、c、d,用D、E、F、G做对应替换后形成密文。
4.1.3 代码
#include
#include
#include
#define N 500
int main()
{
/*--------------------------------*/
int i=0,k,m,n,l;
char str1[N],str2[N]; /*C=M+K...K is key...*/
clrscr();
/*--------------------------------*/
printf("This is a code password program......\n");
printf("Please input proclaimed in writing(M)::\n");
gets(str1);/*输入要加密的明文M*/
printf("Please input the key(K)(int)::\n");
scanf("%d",&k);/*输入密钥K*/
m=strlen(str1);/*测试明文的长度*/
printf("The M length is %d\n",m);
printf("\n *\n *\n *\n***\n *\n");
printf("ciphertext(C) is ::\n\n");
for(i=0;i
{
n=(int)str1[i];/*将字符转换成ASCII*/
if(str1[i]==' ')/*如果字符串中出现空格返回空格*/
{
printf(" ");
str2[i]=str1[i];
}
else if(n>96&&n<123)/*对小写进行加密*/
{
n=(n-97+k)%26;
if(n<0)
n=26+n;
l=(char)(n+97);
printf("%c",l);
str2[i]=l;
}
else if(n>64&&n<91)/*对大写进行加密*/
{
n=(n-65+k)%26;
if(n<0)
n=26+n;
l=(char)(n+97);
printf("%c",l);
str2[i]=l;
}
}
str2[i]='\0';
/*--------------------------------*/
printf("\n\nThe C length is %d",strlen(str2));
printf("\n\n *\n *\n *\n***\n *\n");
printf("When the ciphertext is '%s',\nThe password program is...::\n\n",str2);
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名:
验证码:
匿名?
发表评论