下载此文档

密码学实验报告.doc


文档分类:高等教育 | 页数:约45页 举报非法文档有奖
1/45
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/45 下载此文档
文档列表 文档介绍
《— 现代密码学—》
实验指导书
适用专业: 计算机科学与技术

江苏科技大学计算机科学学院
2011年 11 月
实验一古典密码
实验学时:2学时
实验类型:验证
实验要求:必修
一、实验目的
编程实现古典密码的加解密方法。
二、实验内容
(1)移位密码的加密和解密函数。
(2)仿射密码的加密和解密函数。
(3)维吉尼亚密码的加密和解密函数。
三、实验原理、方法和手段
(1)移位密码
对于明文字符,加密密钥,加密方法为

解密方法为

(2)仿射密码
对于明文字符,加密密钥,加密方法为

解密方法为

(3)维吉尼亚密码
选取密钥字Key,将明文按照密钥字长度分组,将明文与密钥字对应字符相加并对26求余,即为密文字符。
解密过程为
四、实验组织运行要求
本实验采用集中授课形式,每个同学独立完成上述实验要求。
五、实验条件
每人一台计算机独立完成实验,有如下条件:
(1)硬件:微机;
(2)软件:VC++、VC++.Net 2005。
六、实验步骤
(1)将各函数编写完成;
(2)在主函数中调用各函数,实现加密和解密。
七、实验报告
实验报告主要包括实验目的、实验内容、实验原理、源程序及结果。
移位密码加密:
#include<>
#define n 3 //移位位数
void change(char string[])
{
int i;
for(i=0;string[i]!='\0';i++)
{
if(string[i]>='a'&&string[i]<='z')
string[i]=(string[i]+n>='z'?string[i]+n-26:string[i]+n);
}
}
void main()
{
char str[100];
printf("请输入一段明文");
gets(str);
change(str);
printf("密文为:\n");
puts(str);
}
移位密码解密:
#include<>
#define n 3 //移位位数
void change(char string[])
{
int i;
for(i=0;string[i]!='\0';i++)
{
if(string[i]>='a'&&string[i]<='z')
string[i]=(string[i]+n<'a'?string[i]-n+26:string[i]-n);
}
}
void main()
{
char str[100];
printf("请输入一段密文");
gets(str);
change(str);
printf("明文为:\n");
puts(str);
}
仿射密码加密:
#include<>
void fun( char a[],int x,int y)
{
int i;
for(i=0;a[i]!='\0';i++)
{
a[i]=(x*(a[i]-97)+y)%26+97;
}
}
main()
{
char string[100];
int x,y;
printf("输入");
gets(string);
printf("请输入密钥");
scanf("%d,%d",&x,&y);
printf("明文:%s\n",string);
fun(string,x,y);
printf("密文为:%s\n",string);
}
仿射密码解密:
#include<>
void fun( char a[],int x,int y)
{
int i;
for(i=0;a[i]!='\0';i++)
{
a[i]=(x*(a[i]-97)+y)%26+97;
}
}
main()
{
char string[100];
int x,y;
printf("输入");
gets(string);
printf("请输入密钥");
scanf("%d,%d",&x,&y);
printf("密文:%s\n",string);
fun(string,x,y);
printf("明文:%s\n",string);
}
密码加密:
#include<>
void change(char old[],char new1[][5])
{ int i,j,t;
char temp[2

密码学实验报告 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数45
  • 收藏数0 收藏
  • 顶次数0
  • 上传人mh900965
  • 文件大小620 KB
  • 时间2017-11-12