ヴィジュネル暗号(Vigenere cipher)

シーザー暗号は、文字の出現頻度の分析から比較的容易に解読されてしまう暗号でした。

そこで少し工夫してシーザー暗号を複雑にしようとしたのが次に紹介する暗号です。

まず次の文章を暗号化するとしましょう。

  I think, therefore I am

CAESAR SHIFT 5とCAESAR SHIFT 7を重ねて書きます。

平文
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
CAESAR SHIFT 5
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
CAESAR SHIFT 7
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G

そこで1文字目の I はまず上段より N に変換する。次に2文字目の t は下段より A に変換する。3文字目は上段にかえって…、というふうに上段、下段を交互に対応させながら暗号化していく。そうして出来上がった暗号文は

  N AMPSR YOJYJMTYJ P FT

となりスペースを詰めると

  NAMPSRYOJYJMTYJPFT

となります。この方法では同じ文字(上の例でいうと最初の I と最後の I とでは文字が異なっています。NとP。)

これを応用して発明されたのがヴィジュネル暗号です。上の例では上段と下段の2つのCAESAR SHIFTを使いましたがヴィジュネル暗号では26のCAESAR SHIFTを利用します。その際、下に示すヴィジュネル方陣を使います。

ヴィジュネル方陣

平文
a b c d e f g h i j k l m n o p q r s t u v w x y z
1
B C D E F G H I J K L M N O P Q R S T U V W X Y Z A
2
C D E F G H I J K L M N O P Q R S T U V W X Y Z A B
3
D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
4
E F G H I J K L M N O P Q R S T U V W X Y Z A B C D
5
F G H I J K L M N O P Q R S T U V W X Y Z A B C D E
6
G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
7
H I J K L M N O P Q R S T U V W X Y Z A B C D E F G
8
I J K L M N O P Q R S T U V W X Y Z A B C D E F G H
9
J K L M N O P Q R S T U V W X Y Z A B C D E F G H I
10
K L M N O P Q R S T U V W X Y Z A B C D E F G H I J
11
L M N O P Q R S T U V W X Y Z A B C D E F G H I J K
12
M N O P Q R S T U V W X Y Z A B C D E F G H I J K L
13
N O P Q R S T U V W X Y Z A B C D E F G H I J K L M
14
O P Q R S T U V W X Y Z A B C D E F G H I J K L M N
15
P Q R S T U V W X Y Z A B C D E F G H I J K L M N O
16
Q R S T U V W X Y Z A B C D E F G H I J K L M N O P
17
R S T U V W X Y Z A B C D E F G H I J K L M N O P Q
18
S T U V W X Y Z A B C D E F G H I J K L M N O P Q R
19
T U V W X Y Z A B C D E F G H I J K L M N O P Q R S
20
U V W X Y Z A B C D E F G H I J K L M N O P Q R S T
21
V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
22
W X Y Z A B C D E F G H I J K L M N O P Q R S T U V
23
X Y Z A B C D E F G H I J K L M N O P Q R S T U V W
24
Y Z A B C D E F G H I J K L M N O P Q R S T U V W X
25
Z A B C D E F G H I J K L M N O P Q R S T U V W X Y
26
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

ヴィジュネル方陣を使用するのに、CAESAR SHIFTの順番を当事者同士で取り決めておく必要があります。例えば、

19→4→15→11→24→17→…

という具合に決めておきますと平文の1文字目はCAESAR SHIFT19で変換し、2文字目はCAESAR SHIFT4で変換します。

しかし非常に複雑すぎます。

そこでキーワードまたはキーフレーズを使います。

仮に、キーワードをDANTEとおきます。するとまず平文の1文字目は左の行でDに対応するCAESAR SHIFT3で変換します。次に2文字目は左の行でAに対応するCAESAR SHIFT26で変換します。

ヴィジュネル方陣

平文
a b c d e f g h i j k l m n o p q r s t u v w x y z
1
B C D E F G H I J K L M N O P Q R S T U V W X Y Z A
2
C D E F G H I J K L M N O P Q R S T U V W X Y Z A B
3
D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
4
E F G H I J K L M N O P Q R S T U V W X Y Z A B C D
5
F G H I J K L M N O P Q R S T U V W X Y Z A B C D E
6
G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
7
H I J K L M N O P Q R S T U V W X Y Z A B C D E F G
8
I J K L M N O P Q R S T U V W X Y Z A B C D E F G H
9
J K L M N O P Q R S T U V W X Y Z A B C D E F G H I
10
K L M N O P Q R S T U V W X Y Z A B C D E F G H I J
11
L M N O P Q R S T U V W X Y Z A B C D E F G H I J K
12
M N O P Q R S T U V W X Y Z A B C D E F G H I J K L
13
N O P Q R S T U V W X Y Z A B C D E F G H I J K L M
14
O P Q R S T U V W X Y Z A B C D E F G H I J K L M N
15
P Q R S T U V W X Y Z A B C D E F G H I J K L M N O
16
Q R S T U V W X Y Z A B C D E F G H I J K L M N O P
17
R S T U V W X Y Z A B C D E F G H I J K L M N O P Q
18
S T U V W X Y Z A B C D E F G H I J K L M N O P Q R
19
T U V W X Y Z A B C D E F G H I J K L M N O P Q R S
20
U V W X Y Z A B C D E F G H I J K L M N O P Q R S T
21
V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
22
W X Y Z A B C D E F G H I J K L M N O P Q R S T U V
23
X Y Z A B C D E F G H I J K L M N O P Q R S T U V W
24
Y Z A B C D E F G H I J K L M N O P Q R S T U V W X
25
Z A B C D E F G H I J K L M N O P Q R S T U V W X Y
26
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

このようにして

D→CAESAR SHIFT3

A→CAESAR SHIFT26

N→CAESAR SHIFT13

T→CAESAR SHIFT19

E→CAESAR SHIFT4

となり、この5つの変換を繰り返すことで暗号化します。例を示しましょう。

VIGENERE

をキーワード”DANTE”で暗号化しましょう。

D→CAESAR SHIFT3 V→Y

A→CAESAR SHIFT26 I→I

N→CAESAR SHIFT13 G→T

T→CAESAR SHIFT19 E→X

E→CAESAR SHIFT4 N→R

D→CAESAR SHIFT3 E→H

A→CAESAR SHIFT26 R→R

N→CAESAR SHIFT13 E→R

つまり

VIGENERE→YITXRHRR

となるわけです。

この方法だと複雑さは少しはましになりますがやはり複雑ですね。

 ヴィジュネル暗号(Vigenere cipher)