T

Text Machine

強力なテキストツールを、ブラウザで

ヴィジュネル暗号

好きなキーワードを使ってヴィジュネル暗号を暗号化・復号できます。古典的なヴィジュネル・自動鍵・ボーフォートの各変種を切り替え、インタラクティブなタブラ・レクタをたどりながら、結果をコピー・ダウンロード・リンク共有できます。すべての処理はブラウザ上で実行されます。

キーワード

古典ヴィジュネル: キーワードがメッセージ全体にわたって繰り返され、各文字に異なるシフトを加えます。

平文
暗号文

上にテキストを入力すると、結果がここに表示されます。

タブラ・レクタ (ヴィジュネル方陣)

左の列で鍵の文字を見つけ、上の行で平文の文字を見つけると、その二つが交わるマスが暗号文の文字です。キーワードに含まれる文字の行が強調されます。

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
A
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
B
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
C
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
D
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
E
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
F
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
G
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
H
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
I
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
J
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
K
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
L
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
M
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
N
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
O
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
P
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
Q
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
R
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
S
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
T
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
U
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
V
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
W
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
X
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
Y
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
Z
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

ヴィジュネル暗号 の使い方

  1. 1

    暗号化か復号を選ぶ

    平文を暗号文に変えるには暗号化を、同じキーワードで暗号文を平文に戻すには復号を選びます。

  2. 2

    暗号の変種を選ぶ

    古典的なヴィジュネル、鍵が決して繰り返されないより強力な自動鍵、または可逆のボーフォートの変種から選びます。キーワードの下の短いヒントがそれぞれを説明します。

  3. 3

    キーワードを入力する

    LEMONのようなキーワードを入力します。キーワードのうちAからZまでのアルファベットだけが使われ、メッセージに合わせて自動で繰り返されたり延長されたりします。

  4. 4

    テキストを入力または貼り付ける

    メッセージを入力すると、入力すると同時に暗号が適用されます。アルファベットは暗号化され、スペースや数字、記号は変換されずに通過します。

  5. 5

    コピー・ダウンロード・共有する

    結果をコピーしたり、テキストファイルとしてダウンロードしたり、入力したキーワード・テキスト・設定をそのまま再現するリンクで共有したりできます。

ヴィジュネル暗号を理解する

ヴィジュネル暗号とは何ですか?

ヴィジュネル暗号は、キーワードを使ってテキストを暗号化する多表式換字暗号です。シーザー暗号のようにすべての文字を同じ固定量だけずらすのではなく、キーワードの各文字を使ってメッセージの各文字に異なるシフトを適用し、キーワードを何度も循環させます。同じ平文の文字が位置によっていくつもの異なる暗号文の文字になりうるため、この暗号は単純な暗号をたやすく破らせてしまう一文字ごとの頻度のパターンを隠します。

およそ三世紀のあいだ、この暗号は破れないものと考えられ、フランス語で le chiffre indéchiffrable、すなわち解読不能な暗号という呼び名を得ました。今日ではパズルや脱出ゲーム、CTFのチャレンジで好んで使われ、鍵が暗号をどのように強くするかを示す古典的な題材として残っています。

ヴィジュネル暗号化の仕組み

まずLEMONのようなキーワードを選びます。キーワードをメッセージの上に繰り返し並べ、平文のすべての文字が鍵の一文字と対になるようにします。各鍵の文字はシフトを表します。Aは0、Bは1、Cは2を意味し、このようにZまで進むと25のシフトになります。暗号化するには各平文の文字にその鍵の文字を足してアルファベットを回り込ませ、復号するには代わりに引きます。

AからZまでのアルファベットだけが暗号化され、それぞれ大文字か小文字の形を保ちます。スペースや数字、記号は変換されずに通過し、鍵の文字を消費しないため、鍵は常にメッセージの実際の文字と揃ったままになります。

実例: キーワード LEMON

フレーズ ATTACK AT DAWN とキーワード LEMON を例にとりましょう。繰り返したキーワードを文字に揃えて並べると LEMONLEMONLE になります。各平文の文字にその鍵の文字を足すと、A plus L is L、T plus E is X、T plus M is F、このように進めて暗号文 LXFOPVEFRNHR が生まれます。ATTACKの二つのTは異なる鍵の文字の下に置かれるため、それぞれXとFという別の暗号文の文字になることに注目してください。これこそが単純な頻度分析を打ち破るものです。

復号するには、同じキーワードで手順を逆にたどって各鍵の文字を引くか、タブラ・レクタを逆に読みます。キーワードがなければ、暗号文はほとんど何も明かしません。

ヴィジュネルの計算式とタブラ・レクタ

文字をAを0、Zを25として0から25まで番号付けすると、暗号化は C = (P + K) mod 26、復号は P = (C - K) mod 26 です。ここでPは平文の文字、Kは現在の鍵の文字であり、mod 26 がアルファベットを回り込ませます。同じ演算は、ずらしたアルファベットを集めた26かける26の格子であるタブラ・レクタを使って手作業でも行えます。左で鍵の文字を見つけ、上で平文の文字を見つけると、その行と列が交わるマスが暗号文の文字です。

自動鍵とボーフォートの変種

自動鍵の変種は、標準の暗号の最大の弱点である繰り返す鍵を補います。キーワードが尽きると鍵は平文そのもので続くため、流れる鍵が決して繰り返されず、暗号を攻撃するのがはるかに難しくなります。復号は平文を一文字ずつ復元し、それを鍵の流れに戻し入れていきます。

ボーフォートの変種は C = (K - P) mod 26 の式を使います。鍵から引く操作はそれ自身が逆になるため、同じ操作で暗号化と復号の両方ができ、この点が、かつて海上で使われた暗号円盤に都合がよかったのです。このツールは三つすべてに対応しているので、同じテキストとキーワードで比べられます。

ヴィジュネル暗号を破る方法

この暗号は二段階で破られます。まずキーワードの長さを見つけます。古典的には、暗号文の中で繰り返される文字のかたまりを探してその間隔を測るカシスキー検査を使うか、一致指数を用いるフリードマン検定を使います。鍵の長さがわかると、暗号文はその数だけの列に分かれ、各列は単一のシーザーシフトで暗号化されているため、通常の頻度分析が各列を別々に破ります。

つまり、長いメッセージに短い鍵を使ったヴィジュネル暗号はかなり破りやすいということであり、だからこそこの暗号の強さは、長く繰り返さない鍵を使うことに大きく依存します。自動鍵やワンタイムパッドという発想は、まさにその繰り返しを取り除こうとする試みから直接育ちました。

ヴィジュネル暗号の短い歴史

キーワードを使ってアルファベットを切り替えるという発想は、1553年にジョヴァン・バッティスタ・ベラーゾが初めて発表したもので、ヨハネス・トリテミウスとレオン・バッティスタ・アルベルティの多表式の表に基づいていました。この方法はのちにフランスの外交官ブレーズ・ド・ヴィジュネルの功績と誤って帰され、彼自身の著作はより強力な自動鍵の方式を記していたにもかかわらず、その名が定着してしまいました。繰り返し鍵の暗号は何世紀も暗号解読者を退けてきましたが、1850年代にチャールズ・バベッジが非公開で破り、1863年にフリードリヒ・カシスキーが一般的な方法を発表したことで崩れました。

ヴィジュネル暗号は安全ですか?

現代の基準では安全ではありません。カシスキーとフリードマンの方法が発表されてからは、繰り返し鍵を使うどのヴィジュネル暗号も、根気さえあれば破れ、今日ではコンピューターで一瞬で破れます。その本当の価値は、いまや教育的かつ娯楽的なものです。鍵がいかにして取るに足らない暗号をはるかに強い暗号に変えるかを最も明快に示す方法であり、パズルやプログラミング演習の定番であり続けています。本当の安全性のためには、代わりにAESのような現代のアルゴリズムが使われます。

よくある質問

ヴィジュネル暗号とは何ですか?
ヴィジュネル暗号は、キーワードを使ってテキストを暗号化する多表式換字暗号です。キーワードの各文字がメッセージの一文字に異なるシフトを適用し、キーワードはテキスト全体にわたって繰り返されます。同じ平文の文字が異なる暗号文の文字に対応しうるため、シーザーのような単純な暗号を破る文字頻度のパターンを隠します。
ヴィジュネル暗号はシーザー暗号とどう違いますか?
シーザー暗号はすべての文字を同じ固定量だけずらすため、鍵が25通りしかなく、たやすく破れます。ヴィジュネル暗号はキーワードを使って各文字に順番に異なるシフトを適用しますが、これは複数のシーザー暗号を横に並べて動かすのと同じです。これによって鍵空間が大きく広がり頻度のパターンが隠れるため、ヴィジュネルは何世紀ものあいだ破れないものと考えられていました。
キーワードとは何で、どう使われますか?
キーワードは暗号を動かす秘密です。その各文字がシフトを表し、Aは0、Bは1、というように続きます。キーワードをメッセージの上に繰り返してすべての平文の文字を鍵の文字と対にし、暗号化するには両者を足し、復号するには引きます。キーワードのうちAからZまでのアルファベットだけが使われるため、その中のスペースや数字は無視されます。
答え付きのヴィジュネルの例を見せてもらえますか?
キーワード LEMON で ATTACK AT DAWN を暗号化すると、繰り返した鍵が LEMONLEMONLE と並び、文字を足すと暗号文 LXFOPVEFRNHR になります。平文の二つのTは異なる鍵の文字の下にくるため、それぞれ別の暗号文の文字になります。LXFOPVEFRNHR を復号するには、復号モードで同じキーワードを使うと元のテキストがそのまま戻ってきます。
タブラ・レクタ、すなわちヴィジュネル方陣とは何ですか?
タブラ・レクタは、ずらしたアルファベットを一行に一つずつ、すべて並べた26かける26の格子です。手作業で一文字を暗号化するには、左の列で鍵の文字を見つけ、上の行で平文の文字を見つけます。その二つが交わるマスが暗号文の文字です。ツールの下の方陣はインタラクティブで、現在のキーワードに含まれる文字の行を強調します。
自動鍵とボーフォートの変種とは何ですか?
自動鍵は、キーワードが尽きると鍵を平文そのもので続けることで暗号を強くし、鍵が決して繰り返されないため、はるかに破りにくくなります。ボーフォートは cipher equals key minus plaintext の式を使い、これによって可逆になるため、同じ操作で暗号化と復号の両方ができます。このツールは古典的なヴィジュネル、自動鍵、ボーフォートの変種に対応しています。
ヴィジュネル暗号はどうやって破る、または解くのですか?
まず鍵の長さを見つけます。古典的には、繰り返される暗号文のかたまりの間隔を測るカシスキー検査を使うか、一致指数を用いるフリードマン検定を使います。長さがわかると、暗号文はその数だけの列に分かれ、各列は単一のシーザーシフトで暗号化されているため、頻度分析が各列を解きます。したがって、長いメッセージに短い鍵を使うとかなり破りやすくなります。
ヴィジュネル暗号はなぜ解読不能と呼ばれたのですか?
約三百年のあいだ、これを破る信頼できる方法を誰も発表しなかったため、フランス語で le chiffre indéchiffrable、すなわち解読不能な暗号として知られるようになりました。鍵を繰り返すことが、暗号解読者の頼みとする文字頻度を覆い隠したのです。その評判は、1850年代にチャールズ・バベッジが非公開で破り、1863年にフリードリヒ・カシスキーが一般的な方法を発表するまで続きました。
ヴィジュネル暗号は誰が発明したのですか?
キーワードの方法は、1553年にジョヴァン・バッティスタ・ベラーゾが初めて記述したもので、ヨハネス・トリテミウスとレオン・バッティスタ・アルベルティによる先行の多表式の研究に基づいていました。のちにフランスの外交官ブレーズ・ド・ヴィジュネルの功績と誤って帰され、ヴィジュネルが実際にはより強力な自動鍵の方式を記述していたにもかかわらず、その名がそれ以来ずっと定着しています。
数字やスペース、記号も変換されますか?
いいえ。AからZまでのアルファベットだけが暗号化され、それぞれ大文字か小文字の形を保ちます。数字・スペース・改行・記号は変換されずに通過し、鍵の文字を消費しないため、キーワードは常にメッセージの実際の文字と揃ったままになります。
ヴィジュネル暗号は安全ですか?
本当の保護には向きません。カシスキーとフリードマンの方法が発表されてからは、繰り返し鍵を使うどのヴィジュネル暗号も破ることができ、コンピューターなら一瞬で破れます。鍵がいかにして暗号化を強くするかを示す、教育用・パズル用の暗号として扱うのが最適です。本当の安全性のためには、代わりにAESのような現代のアルゴリズムを使うべきです。
入力したテキストはサーバーに送信されますか?
いいえ。すべての暗号化と復号はブラウザ内だけで実行されるため、入力したテキストとキーワードがアップロード・記録・保存されることはありません。共有リンクでさえ、テキストとキーワードをURLのハッシュ以降の部分に保持しますが、ブラウザはこの部分をサーバーに送信しないため、自分で共有するまで非公開のまま保たれます。
ヴィジュネル暗号はコードでどう書きますか?
メッセージをたどりながら、アルファベットだけを数えるカウンターを別に持っておきます。各アルファベットについて、その文字と対になる鍵の文字を0から25までの数に変換し、暗号化するには足し、復号するには引き、アルファベットが回り込むように26で割った余りを取り、そのあと文字に戻します。アルファベットでない文字は鍵を進めずに、そのままコピーして通します。JavaScriptではcharCodeAtとfromCharCodeがこの変換を担い、これこそが、このブラウザ内ツールの動作のしかたそのものです。

関連ツール

こちらの便利なツールもどうぞ

ボーフォート暗号

グロンスフェルト暗号

オートキー暗号

ランニングキー暗号

ポルタ暗号

トリテミウス暗号