实验一 古典密码算法
- 格式:doc
- 大小:41.00 KB
- 文档页数:3
第1页 实验一 古典密码算法
1、目的
使学生认识理解古典密码算法:凯撒密码算法,维吉尼亚密码算法。
2、环境
PC 1 台、安装软件VC60、JBuilder8、Delphi7。
3、预备知识
1.凯撒密码的过程:
表1:字母编码表
0 1 2 3 4 5 6 7 8 9 10 11 12
a b c d e f g h i j k l m
13 14 15 16 17 18 19 20 21 22 23 24 25
n o p q r s t u v w x y z
再用配对字母取代信息里的原始字母位移加密法(shift cipher):模数计算。Ek(x)=(x+k)mod 26,Dk(y)=(y –k)mod 26
如:k=5;“hello world”加密为:mjqqt„.
2.维吉尼来密码
维吉尼来方阵:(不区分大小写)
数学表达式:
[]([][])%26;CiPiKi
验证:V[0,0]=0;V[25,25]=24 第2页 V[13,12]=25
0 1 2 3 4 5 6 7 8 9 10 11
12
a b c d e f g h i j k l m
13 14 15 16 17 18 19 20 21 22 23 24 25
n o p q r s t u v w x y z
解密:
[]([][])%26;PiCiKi
如:k=”BEST”;“HELLO WORLD”加密为:IIDE„.
4字符一组:
hellOWOR LD
BESTBEST BEST
以第一行字母为列标,2行为行标(B,H)=I;
解密:
IIDE
BEST,
明文字母是B行字母为I的列号H,或B列=I的行H。
4、方法和步骤
(1)请根据算法的描述和你对算法过程的理解,选用一种编程语言C,C++,Java,Pascal来实现凯撒算法,用自己学号的最后起之3位数为密钥,加密自己姓名的全拼,将解密,将密文为结果写于实验报第3页 告上。
(2)请根据算法的描述和你对算法过程的理解,选用一种编程语言C,C++,Java,Pascal来实现维吉尼亚算法,用“best”为密钥,加密自己姓名的全拼,将解密,将密文为结果写于实验报告上.附参考源程序:Vigenere.cpp.pdf
5、注意
算法要实现加密过程和解密过程并对正确性设计验证途径。