多表替换加密

2023-07-30 17:47:27 浏览数 (3)

Playfair

Playfair密码依据一个5*5的正方形组成的密码表来编写,密码表里排列有25个字母。如果一种语言字母超过25个,可以去掉使用频率最少的一个。如,法语一般去掉w或k,德语则是把i和j合起来当成一个字母看待。英语中z使用最少,可以去掉它。

加密步骤
编制密码表

确定一个密钥,将后出现的重复字母去掉,按行或列的顺序写入5*5的密码表中,剩下的字母按顺序写入密码表中,例如密钥为LEAFBACK,去重后为LEAFBCK,得到密码表如下:

L

E

A

F

B

C

K

D

G

H

I/J

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

整理明文

将明文每两个字母组成一对。如果成对后有两个相同字母紧挨或最后一个字母是单个的,就插入一个字母X(或者Q)。

编写密文

对于每一对字母p1p2:

  1. 若p1 p2在同一行,对应密文c1 c2分别是紧靠p1 p2 右端的字母。其中第一列被看做是最后一列的右方。
  2. 若p1 p2在同一列,对应密文c1 c2分别是紧靠p1 p2 下方的字母。其中第一行被看做是最后一行的下方。
  3. 若p1 p2不在同一行,不在同一列,则c1 c2是由p1 p2确定的矩形的其他两角的字母(横向对应或纵向对应)
解密步骤
  1. 根据密钥编制密码表
  2. 将密文每两个字母组成一对c1c2
  3. 若c1 c2在同一行,对应明文p1 p2分别是紧靠c1 c2 左端的字母。其中最后一列被看做是第一列的左方。
  4. 若c1 c2在同一列,对应明文p1 p2分别是紧靠c1 c2 上方的字母。其中最后一行被看做是第一行的上方。
  5. 若c1 c2不在同一行,不在同一列,则p1 p2是由c1 c2确定的矩形的其他两角的字母。

Polybius

Polybius 密码又称为棋盘密码,其一般是将给定的明文加密为两两组合的数字。 例如LEAF加密后为:31 15 11 21

密码表

1

2

3

4

5

1

A

B

C

D

E

2

F

G

H

I/J

K

3

L

M

N

O

P

4

Q

R

S

T

U

5

V

W

X

Y

Z

ADFGX密码表

A

D

F

G

X

A

b

t

a

l

p

D

d

h

o

z

k

F

q

f

v

s

n

G

g

j

c

u

x

X

m

r

e

w

y

Vigenere

维吉尼亚密码(Vigenere)是使用一系列凯撒密码组成密码字母表的加密算法,属于多表密码的一种简单形式。

加密过程
  1. 取一个密钥,重复这个密钥使其与密文一样长度
  2. 将密钥与明文一一对应
  3. 每个密钥字符与明文字符在表上对应一个密文字符
密码表

0 人点赞