1、1 实验题目:信息加密实验 2 实验意义 本实验教学旨在加强实践环节,培养学生动手能力,使学生学完课程后,对密码学的原理、思想和算法都有清晰、深入的理解。让学生通过密码算法的程序设计实现,更好地掌握密码算法设计的机理和方法。同时,掌握密码系统设计的基本方法和步骤环节,理解密码学在信息安全的地位,了解密码学领域的新进展、新应用。 3 软硬件环境 一台装有 C 语言编译工具的计算机。 4 实验步骤 (1)选择或自己设计一种加密算法。 (2)编写程序实现这种算法。 (3)使用明文和密钥进行测试,与预定方案对比加密后的秘文是否符合。 (4)使用对密文进行解密并与原明文对比是否相同 5 示例程序清单 /
2、* Vigenere.c*/ #include char k20;/密钥int key20;/偏移量int a,i,j; char f100;/明文和密文void encrypt()/加密函数 char k20;/密钥int key20;/偏移量int a,i,j; char f100;/明文和密文printf(“n 请输入密钥:“); gets(k);/读入密钥i=0; while(ki!=0)/将密钥转换为整形偏移量 keyi=ki-97;/偏移量i=i+1; a=i-1;/a 为密钥长度printf(“n 请输入明文:“); gets(f);/读入明文i=0; while(fi!=0)/
3、将明文加密 if(ja) j=0;/循环使用密钥fi=fi-32; fi=fi+keyj;/加密并转换成大写字母if(fi90) fi=fi-26;/超过Z 则从A 继续i=i+1; j=j+1; printf(“n 密文为:“); puts(f);/输出密文 void decrypt()/解密函数 char k20;/密钥int key20;/偏移量int a,i,j; char f100;/明文和密文printf(“n 请输入密钥:“); gets(k);/读入密钥i=0; while(ki!=0)/将密钥转换为整形偏移量 keyi=ki-97; i=i+1; a=i-1;/a 为密钥长度
4、printf(“n 请输入密文:“); gets(f);/读入密文i=0; while(fi!=0)/解密 if(ja)j=0; fi=fi-keyj;/解密if(fi97)fi=fi+26;/若小于a 则从z 继续i=i+1; j=j+1; printf(“n 明文为:“); puts(f);/输出明文 void main() char c; printf(“加密请选择1,解密请选择2:“); scanf(“%c“,/读入选项getchar();/读入回车,防止干扰 if(c=1) encrypt();/选择1 加密else if(c=2) decrypt();/选择2 解密printf(“n 欢迎使用,再见!“);