《 — 现代密码学—》 实 验 指 导 书 适用专业: 计算机科学与技术 江苏科技大学计算机科学学院 2 0 1 1 年 1 1 月 实验一 古典密码 实验学时:2 学时 实验类型:验证 实验要求:必修 一、实验目的 编程实现古典密码的加解密方法
二、实验内容 (1)移位密码的加密和解密函数
(2)仿射密码的加密和解密函数
(3)维吉尼亚密码的加密和解密函数
三、实验原理、方法和手段 (1)移位密码 对于明文字符 x ,加密密钥k ,加密方法为 ,1,2,,25yxk k 解密方法为 ,1,2,,25xyk k (2)仿射密码 对于明文字符x ,加密密钥( , )a b ,加密方法为 ,gcd( ,26)1,1,2,,25yaxbab 解密方法为 1()xayb (3)维吉尼亚密码 选取密钥字 Key,将明文按照密钥字长度分组,将明文与密钥字对应字符相加并对 26求余,即为密文字符
iiiyxk 解密过程为 iiixyk 四、实验组织运行要求 本实验采用集中授课形式,每个同学独立完成上述实验要求
五、实验条件 每人一台计算机独立完成实验,有如下条件: (1)硬件:微机; (2)软件:VC++6
0、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