信息安全概论实验一
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《信息安全概论》课程实验报告
实验名称古典密码验证与设计:Hill、Playfair、Vigenere算法实验序号1姓名系院专业班级学号
实验日期指导教师成绩
一、实验目的
(具体内容见实验大纲)
掌握密码学的基本概念,掌握几种典型的古典密码的设计原理。
二、实验内容与要求
(具体内容见实验大纲)
1 手工计算以下算法
1)用Vigenere加密we are discovered”
K=deceptive
2)采用Hill密码对明文best加密,并写出解密过程,使用密钥
K= 4 9
3 7
3)用Playfair算法加密明文“playfair is not secure”K=fivestars
2 采用密码分析软件CAP验证以上计算,并写出实验分析
3 编程实现Vigenere算法(编程工具不限)
三、实验设备
地点:科技楼网络实验室602
硬件环境:windows xp操作系统
软件环境:cap4,vc++6.0
四、实验步骤
1. 手工计算以下算法
1) 明文对应数字分别为22 4 0 17 4 3 8 18 2 14 21 4 17 4 3
密钥对应数字分别为3 4 2 4 15 19 8 21 4
明文22 4 017438182142141743
密钥34241519821434241519
密文25822119221613617256211922
密文z i c v t w q n g r z g v t w
由上表得密文为zicvtwqngrzgvtw
2)明文best分别对应1 4 18 19
即矩阵为1 4
18 19
此矩阵乘密钥k后mod26得到矩阵
16 11
25 9
即密文为qlzj
3)由k得到5*5矩阵 f i v e s
t a r b c
d g h k l
m n o p q
u w x y z
将明文分组得到pl ay fa ir is no ts ec ur eq
由矩阵和明文分组得对应密文qk bw it va vf op cf sb xt sp
2. 采用密码分析软件CAP验证以上计算,并写出实验分析
由CAP验证得1中1)的结果为zicvtwqngrzgvtw,结果正确
2)的数字结果分别为142 163 71 87,与结果不同,原因不明。
3)的结果为qkbwitvavfopcfsbxtsp,结果正确
3. 编程实现Vigenere算法(编程工具不限)
#include
#include
void main()
{
char a[101],b[101],d[101]={'?'},c[]={'a','b','c','d','e','f','g','h','i','j','k',
'l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
int i=0,j,k,m=0,n;
printf("输入不超过100字数的字母明文a:");
scanf("%s",a);
printf("输入不超过100字数的字母密钥b:");
scanf("%s",b);
for(i=0;i<=100;i++)
{
if(b[i]=='\0')
{
n=i;
break;
}
}
for(i=0;i<100;i++)
{
if(a[i]=='\0')break;
for(j=0;j<26;j++)
{
if(a[i]==c[j])
break;
}//j是a[i]在26字母中的序号
for(k=0;k<26;k++)
{
if(b[m]==c[k])
break;
}//k是b[m]在26字母中的序号
m++;
m=m%n;
j=(k+j)%26;
d[i]=c[j];
}
printf("密文为:%s\n",d);
}
五、实验结果与分析
1.测试数据及结果
答:第四题中,题1的1)
2)
3)
第四题中题3
2.实验中遇到的问题及解决办法
答:第四题中,题3中输入的字母中不能有空格,否则会发生错误。尚未解决。3.实验中尚未解决的问题及不足
答:未解决的问题及不足即在上一小题中所说的。