维吉尼亚密码是一个很著名的多码加密法,多码加密法是一种替换加密法,其中的每个明文字母可以用密文中的多个字母来代替,而每个密文字母也可以表示多个明文字母。
维吉尼亚密码引入了“密钥”的概念,即根据密钥来决定用哪一行的密表来进行替换,以此来对抗字频统计。
例1 维吉尼亚(Vigenere)密码加密:
设字母数字对应表为:
A
B
C
D
E
F
G
H
I
J
K
L
M
0
1
2
3
4
5
6
7
8
9
10
11
12
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
13
14
15
16
17
18
19
20
21
22
23
24
25
设n=6,密钥是cipher,这相应于密钥k=(2,8,15,7,4,17),明文是“this cryptosystem is not secure”(明文用小写字母表示), 试用(Vigenere)密码对其加密(密文用大写字母表示)。
解:首先将明文按每6个分为一组,然后与密钥进行模26加计算,得如下算式结果(两种列表形式,任选一种):
t
h
i
s
c
r
y
p
t
o
s
y
19
7
8
18
2
17
24
15
19
14
18
24
2
8
15
7
4
17
2
8
15
7
4
17
21
15
23
25
6
8
0
23
8
21
22
15
V
P
X
Z
G
I
A
X
I
V
W
P
就第一列t而言,(19+2)mod26=21→V
s
t
e
m
i
s
n
o
t
s
e
c
18
19
4
12
8
18
13
14
19
18
4
2
2
8
15
7
4
17
2
8
15
7
4
17
20
1
19
19
12
9
15
22
8
25
8
19
U
B
T
T
M
J
P
W
I
Z
I
T
u
r
e
20
17
4
2
8
15
22
25
19
W
Z
T
相应的密文是:VPXZGIAXIVWPUBTTMJPWIZITWZT
例2 维吉尼亚密码解密:
设n=5,密钥是ynfjw, 这相应于密钥k=(24,13,5,9,22), 已知密文是“GJNUH ZRARO GGNWC QUFWC FNNCK KBWAK UJNCD KLKAE CAI”(密文用大写字母表示),试用(Vigenere)密码对其解密(即求出明文,明文除英文习惯外用小写字母表示)。
解:首先将明文按每5个分为一组,然后与密钥进行模26减计算,得如下算式结果:
i
w
i
l
l
b
e
v
i
s
i
t
i
n
g
8
22
8
11
11
1
4
21
8
18
8
19
8
13
6
24
13
5
9
22
24
13
5
9
22
24
13
5
9
22
6
9
13
20
7
25
17
0
17
14
6
6
13
22
2
G
J
N
U
H
Z
R
A
R
O
G
G
N
W
C
s
h
a
n
g
h
a
i
t
o
m
o
r
r
o
18
7
0
13
6
7
0
8
19
14
12
14
17
17
14
24
13
5
9
22
24
13
5
9
22
24
13
5
9
22
16
20
5
22
2
5
13
13
2
10
10
1
22
0
10
Q
U
F
W
C
F
N
N
C
K
K
B
W
A
K
w
w
i
t
h
m
y
f
r
i
e
n
d
22
22
8
19
7
12
24
5
17
8
4
13
3
24
13
5
9
22
24
13
5
9
22
24
13
5
20
9
13
2
3
10
11
10
0
4
2
0
8
U
J
N
C
D
K
L
K
A
E
C
A
I
相应的明文是:iwillbevisitingshanghaitomorrowwithmyfriend
版权归原作者 柴柴笔记 所有, 如有侵权,请联系我们删除。