ヴィジュネル暗号エンコーダー・デコーダー(キーワード式暗号)

キーワードを使ってシフト量を文字ごとに変化させるヴィジュネル暗号のエンコード・デコードをブラウザ内で完結して行うツールです。同じキーワードで暗号化と復号ができ、変換過程を1文字ずつ確認できます。処理はすべてブラウザ内で行われ、入力内容が外部へ送信されることはありません。


Tips

  • ヴィジュネル暗号はかつて「解読不能な暗号」(le chiffre indéchiffrable)と呼ばれ、約300年間実用的な解読法が見つかりませんでした。
  • キーワードを繰り返し使うため、キーワードが短いほど同じシフトパターンが早く繰り返され、解読の手がかりが増えます。長いキーワードほど安全性が高まります。
  • 空白・記号・数字はキーワードの文字を消費せずそのまま出力されます。改行やスペースの入れ方を変えても暗号化の規則性は変わりません。
  • 暗号化と復号は同じキーワードを使う対称的な操作です。「結果を入力に反映」ボタンを使えば、暗号化した結果をそのまま復号モードで試せます。
  • 大文字・小文字は元の入力の見た目のまま出力されます(内部のシフト計算はアルファベット上の位置で行われます)。

よくある質問

1863年にプロイセンの陸軍将校フリードリヒ・カジスキーが、暗号文中に現れる繰り返しパターンの間隔からキーワードの長さを推定する「カジスキー試験」を発表し、これにより組織的な解読が可能になりました。平文の一部が分かっている場合は既知平文攻撃でも解読できます。

シーザー暗号は文字列全体に固定のシフト量を1つだけ適用しますが、ヴィジュネル暗号はキーワードの各文字が表す数値を使い、文字ごとに異なるシフト量を繰り返し適用します。そのため単純な頻度分析だけでは解読できません。

長らくフランスの外交官ブレーズ・ド・ヴィジュネルの発明とされてきましたが、実際には16世紀のイタリアの暗号学者ジョヴァン・バティスタ・ベラーゾがより早くほぼ同じ方式を発表していたことが分かっています。

暗号文中に同じ文字列が繰り返し現れる箇所を探し、その間隔(文字数)の最大公約数からキーワードの長さを推定する手法です。長さが分かれば、あとは各位置ごとに頻度分析を行うことで単純なシーザー暗号の集まりとして解読できます。

意味のある単語である必要はなく、英字であればどのような文字列でも指定できます。ただし実際の運用では覚えやすさのために単語が使われることが多く、それが逆にカジスキー試験などの解読の手がかりになることもありました。
ツールくん

余談ですが ― 「解読不能な暗号」を破ったカジスキー試験

ヴィジュネル暗号は、16世紀フランスの外交官ブレーズ・ド・ヴィジュネルの名を冠していますが、実際の考案者は別人だとされています。1553年にイタリアの暗号学者ジョヴァン・バティスタ・ベラーゾが、キーワードを使って文字ごとにシフト量を変える同種の方式をすでに発表しており、ヴィジュネル自身は19世紀になってから彼の著作を通じて広く知られるようになった別の暗号を考案したにすぎません。歴史上、業績の帰属が誤って伝わった典型例とされています。

シーザー暗号が固定の1つのシフト量、エニグマ暗号機が機械的なローターの回転で毎回シフト量を変えるのに対し、ヴィジュネル暗号はキーワードという「覚えやすい鍵」を繰り返し使うことで文字ごとに異なるシフト量を実現しました。単一のシフト量で暗号化するシーザー暗号は文字の出現頻度分析だけで容易に解読できますが、ヴィジュネル暗号は見かけ上その頻度分布を平坦化するため、19世紀半ばまで「解読不能な暗号(le chiffre indéchiffrable)」と呼ばれ、実務でも広く使われ続けました。

この評判に終止符を打ったのが、1863年にプロイセンの陸軍将校フリードリヒ・カジスキーが発表した「カジスキー試験」です。暗号文中に同じ文字列が繰り返し出現する間隔を調べることでキーワードの長さを推定し、長ささえ分かれば各位置ごとに単純な頻度分析(シーザー暗号の解読と同じ手法)を適用できることを示しました。これにより約300年間実用的だった暗号が体系的に破られる方法が確立され、暗号解読の歴史における重要な転換点になりました。

もっとも、キーワードが平文と同じ長さでかつ使い捨てであれば、ヴィジュネル暗号は理論的に解読不可能な「ワンタイムパッド」と等価になります。実際の運用でキーワードが短く繰り返し使われたことが弱点となった点は、鍵管理の重要性を示す歴史的な教訓として現代の暗号設計にも引き継がれています。