ヴィジュネル暗号 エンコーダー・デコーダー
キーワードを入力して、ヴィジュネル暗号でメッセージを暗号化または復号します。各文字は、対応するキー文字の分だけシフトされ、大文字・小文字は保持され、文字以外はそのまま通過します。計算過程の表をオンにすると、最初の20文字のそれぞれについて、キー文字とシフト量が表示されます。無料で、登録は不要です。テキストはアップロードされません。
モード
ヴィジュネル暗号ツールの使い方
- 1. 暗号化か復号かを選びます。 暗号化は平文を暗号文に変えます。復号は、同じキーワードを使って元に戻します。
- 2. キーワードを入力します。 使えるのはA〜Zの文字だけで、空白や数字は使えません。キーワードは、メッセージに沿って繰り返し使われます。キーワードが
aだけの場合、シフトは0になり、何も変わりません。 - 3. メッセージを入力または貼り付けます。 結果は入力に合わせて更新されます。大文字・小文字は保持され、数字、空白、句読点はキー文字を消費せずにそのまま通過します。
- 4. 「計算過程を表示」をオンにします。 最初の20文字について、平文の文字、キー文字、シフト量、結果を並べた表が表示されます。
ヴィジュネル暗号のしくみ
文字をA = 0からZ = 25まで番号で表します。キーワードを、メッセージの文字の下に、1文字ずつ対応させて繰り返し書きます。暗号化するには、メッセージの文字の番号に、キー文字の番号を足し、Zを超えたら26で割った余りを取ります:C = (P + K) mod 26。復号するには引きます:P = (C − K) mod 26。各キー文字は、異なるシーザー暗号のシフトを選びます。Aは0、Bは1、Zは25です。そのため、この暗号は多表式と呼ばれ、同じメッセージの文字が異なる暗号文字になることがあります。手計算でこの和を求めるのを速くするのが、伝統的なヴィジュネル方陣(タブロー)です。
具体例:キーワード LEMON
Attack at dawnをキーワードlemonで暗号化すると、Lxfopv ef rnhrになります。最初の6文字を、計算過程の表で示すと次のとおりです。
| 平文の文字 | キー文字 | シフト量 | 結果 |
|---|---|---|---|
| A | l | +11 | L |
| t | e | +4 | x |
| t | m | +12 | f |
| a | o | +14 | o |
| c | n | +13 | p |
| k | l | +11 | v |
繰り返しに注目してください。「Attack」の2つのtは、異なるキー文字の下に来るため、xとfになります。2つのaはoとeになります。単純なシーザー暗号では、同じ文字の組がそれぞれ同じ暗号文字になりますが、それこそが頻度分析が利用するパターンです。復号も、同じ表を逆向きに使います。lemonで復号モードにすると、Lxfopv ef rnhrはAttack at dawnに戻ります。キー文字は空白をまたいで続きますが、空白自体はキー文字を使いません。
簡単な歴史
ジョヴァン・バッティスタ・ベラーゾが、この暗号を1553年に記述しました。名前はブレーズ・ド・ヴィジュネルに由来しますが、彼は1586年に関連する、より強固なオートキー暗号を発表したもので、19世紀にはこの暗号が誤って彼の功績とされました。「le chiffre indéchiffrable」(解読不能な暗号)と呼ばれ、1863年にフリードリヒ・カジスキーが一般的な手法を発表するまで、攻撃に耐えました。チャールズ・バベッジは1854年までにこれを解読していましたが、発表はしませんでした。
ヴィジュネル暗号の破り方
すべては、キーワードの長さにかかっています。平文の同じ部分が、キーワードの同じ部分と二度並ぶと、同じ暗号文が二度生まれます。カジスキー法は、そうした繰り返しの間隔を測り、キー長はそれらの共通因数である可能性が高いと考えます。キー長をnと分かれば、n番目ごとの文字は同じキー文字でシフトされているので、n本の列はそれぞれ通常のシーザー暗号になり、頻度分析で解けます。長く予測しにくいキーワードは、これに抵抗します。メッセージと同じ長さのランダムなキーを一度だけ使うものが、解読できないワンタイムパッドです。このツールは、あなたが指定したキーワードで暗号化・復号するもので、キーを探すことはしません。
このツールの限界
- 暗号化されるのはA〜Zとa〜zだけです。 ほかの文字体系の文字や、é などのアクセント付きのラテン文字は変えられず、ツールは飛ばした文字数を知らせます。
- キーワードは文字だけでなければなりません。 空白、数字、アクセント付きの文字をキーワードに入れると拒否されます。
- 計算過程の表は、メッセージの長さにかかわらず、20行です。
- 安全ではありません。 パズル、授業、ゲームに使ってください。個人的な情報には使わないでください。
どのツールが必要ですか?
| 暗号 | キーの仕組み |
|---|---|
| シーザー暗号 | メッセージ全体に対する1つのシフト |
| ヴィジュネル暗号(このページ) | 繰り返すキーワード。キー文字ごとに1つのシフト |
| Beaufort Cipher | ヴィジュネル暗号と似ていますが、キー文字からメッセージの文字を引くため、1つの操作で暗号化と復号の両方を行えます |
| Autokey Cipher | 短い初期キーの後、メッセージ自体がキーになります |
| Porta Cipher | キーワードによって、13の相互対応するアルファベットから1つを選びます |
どの暗号か確信が持てない場合は、予定されている Cipher Identifier が絞り込みに役立ちます。
よくある質問
- ヴィジュネル暗号とは何ですか?
- 繰り返されるキーワードで決まる量だけ、各文字をシフトする多表式の換字暗号です。1文字目は1番目のキー文字を、2文字目は2番目のキー文字を使い、以下同様です。そのため、1つの平文の文字が、複数の暗号文字になることがあります。
- ヴィジュネル暗号とシーザー暗号の違いは何ですか?
- シーザー暗号は、固定された1つのシフトを使います。ヴィジュネル暗号はキーワードを使い、各文字に異なるシーザーのシフトを与えます。実質的には、キー文字ごとに1つずつ、複数のシーザー暗号を織り交ぜたものです。
- 空白、数字、句読点はどうなりますか?
- 変わらずに通過し、キー文字を消費しません。そのため、キーワードが進むのはA〜Zとa〜zの文字だけです。
- ヴィジュネル暗号を復号するにはどうすればよいですか?
- キーワードがわかっている場合は、「復号」を選び、キーワードを入力して暗号文を貼り付けます。各文字が対応するキー文字の分だけ逆方向にシフトされます。キーワードがわからない場合は、暗号解読が必要です。カジスキー法でキー長を求め、各列に頻度分析を行います。
- 結果が入力とまったく同じに見えるのはなぜですか?
- Aだけでできたキーワード(または1文字の
a)は、すべての文字を0だけシフトします。A以外の文字を含むキーワードを選んでください。 - ヴィジュネル暗号は安全ですか?
- いいえ。約3世紀にわたって解読されないように見えましたが、1863年にカジスキーが一般的な攻撃法を発表し、コンピュータなら瞬時に解けます。多表式の暗号を学ぶには、今も良い題材です。
- アルファベット以外の言語にも対応していますか?
- 暗号としては対応していません。ヴィジュネル方陣は26文字のラテン文字なので、ほかの文字体系は暗号化されずに通過し、ツールは暗号化しなかった文字の数を知らせます。