实验一 古典密码算法

  • 格式: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、注意

算法要实现加密过程和解密过程并对正确性设计验证途径。