自動鍵暗号エンコーダー・デコーダー
短いプライマーとメッセージを入力すると、ヴィジュネル暗号の自動鍵(オートキー)方式でエンコードまたはデコードします。鍵は繰り返さず、メッセージ自体が鍵の続きになります。鍵がテキストの下に並び、各文字の計算の和も表示されます。無料、登録不要。入力内容はブラウザの外に出ません。
鍵の始まりになる短いキーワードです。その後は、鍵がメッセージ自体の続きになるので、鍵が繰り返されることはありません。
平文の自動鍵は古典的な暗号で、パズルサイトが「自動鍵」と呼ぶものです。暗号文の形式は、教科書にあるもう1つの版です。送信側と受信側は、同じものを選ぶ必要があります。
計算過程
鍵を1文字ずつ:最初の12文字
| 平文 | A | T | T | A | C | K | A | T | D | A | W | N |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 鍵 | Q | U | E | E | N | L | Y | A | T | T | A | C |
| 暗号文 | Q | N | X | E | P | V | Y | T | W | T | W | P |
最初の7個の鍵文字(網掛け)はプライマーです。その後の各鍵文字は、7文字前の平文の文字です。
- 文字は A = 0、B = 1 … Z = 25 と番号を付け、すべての和は 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 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 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 |
行 = 鍵文字、列 = 平文字、セル = 暗号文字。下の文字を選ぶと、その行と列が青く、交差するセルが琥珀色に点灯します。
| 平文字 | 鍵文字 | 計算 | 暗号文字 |
|---|---|---|---|
| Q | 0 + 16 = 16 | Q | |
| U | 19 + 20 = 39 ≡ 13 | N | |
| E | 19 + 4 = 23 | X | |
| E | 0 + 4 = 4 | E | |
| N | 2 + 13 = 15 | P | |
| L | 10 + 11 = 21 | V | |
| Y | 0 + 24 = 24 | Y | |
| A | 19 + 0 = 19 | T | |
| T | 3 + 19 = 22 | W | |
| T | 0 + 19 = 19 | T | |
| A | 22 + 0 = 22 | W | |
| C | 13 + 2 = 15 | P |
自動鍵暗号ツールの使い方
- 1. プライマーを選びます。 鍵の始まりとなる短いキーワード(例:QUEENLY)です。数えるのは文字だけです。
- 2. 鍵の続きを選びます。 古典的な自動鍵は平文を使います。暗号文を使う形式は、教科書で使われる場合があるので選べます。送信側と受信側で同じ方式を選ぶ必要があります。
- 3. メッセージを入力し、エンコードかデコードを選びます。 空白、数字、記号はそのまま出力され、鍵の文字は使いません。
- 4. 鍵が作られる様子を確認します。 鍵の表では、平文、鍵、暗号文が縦に並び、プライマーの部分に色が付きます。計算過程の文字を選ぶと、その文字がヴィジュネル方陣で示されます。
自動鍵暗号のしくみ
自動鍵暗号は、鍵が繰り返されないように変更したヴィジュネル暗号です。送信側と受信側は短いプライマーを決めておき、鍵はプライマーに続けてメッセージそのものを並べたものになります。A = 0 から Z = 25 とすると、各暗号文字はヴィジュネル暗号と同じく C = P + K(mod 26)になり、復号では鍵を引いて P = C − K を求めます。
自動鍵暗号は、復号する側の鍵が常に1歩先を行くので復号できます。プライマーで最初の数文字を復号すると、復号された平文の文字が次の鍵の文字になり、それがさらに後の文字を復号する、という流れを最後まで繰り返します。プライマー QUEENLY とメッセージ ATTACKATDAWN の例では、次のようになります。
| 平文 | 鍵 | 和 | 暗号文 |
|---|---|---|---|
| A (0) | Q (16) | 0 + 16 = 16 | Q |
| T (19) | U (20) | 19 + 20 = 39 ≡ 13 | N |
| T (19) | E (4) | 19 + 4 = 23 | X |
| A (0) | E (4) | 0 + 4 = 4 | E |
| C (2) | N (13) | 2 + 13 = 15 | P |
メッセージ全体は QNXEPVYTWTWP になります。これは英語版ウィキペディアの自動鍵暗号の記事が、この例に示す答えと一致します。鍵は QUEENLY に続けて ATTACKATDAWN が並んだもので、その8文字目の A は、メッセージの最初の文字です。ツールは、プライマーがどこで終わり、メッセージがどこから鍵の役割を担うのかが分かるように、この鍵の行をテキストの真下に表示します。
自動鍵暗号の簡単な歴史
メッセージ自体で鍵を作るという考えは、一般に16世紀半ばのイタリアの学者ジローラモ・カルダーノに由来するとされています。彼の方式は単語ごとに鍵を書き直すもので、最初の単語は、受信者にとっても解読が難しいものでした(David Kahn の歴史書 The Codebreakers による)。1586年、ブレーズ・ド・ヴィジュネルは Traicté des chiffres で、より明快な方式を記しました。1つの初期文字を置き、その後は鍵が再び始まらずに、メッセージ全体を通して続くというものです。これが今日教えられている自動鍵暗号です。ヴィジュネルの名で知られる、繰り返し鍵を使う暗号は、まったく別のもので、それより前にジョヴァンニ・バッティスタ・ベラーゾが考案したものです。その暗号に、19世紀になってヴィジュネルの名が誤って結び付けられました。
自動鍵暗号の破り方
繰り返さない鍵は、ヴィジュネル暗号を崩す攻撃を無力にします。カシスキーの方法は鍵の長さの間隔で繰り返される断片を探し、一致指数は周期を探しますが、自動鍵のメッセージにはどちらの手がかりもありません。しかし鍵は普通の言葉でできており、そこに弱点があります。解読者は「THE」のようなよく使われる単語を推測し、暗号文に沿ってずらしながら引き算します。結果が読める英語になる箇所は、おそらく鍵の一部でもあり、そこからプライマー1つ分先の平文がさらに分かります。正しい推測が次の推測につながり、メッセージは急速にほどけていきます。最初の文字はプライマーだけで暗号化されるため、短い鍵のヴィジュネル暗号と同じです。もう1つの欠点は誤りの伝播です。暗号化や写しの際に1文字でも誤ると、それ以降のすべての文字が壊れます。
パズルや学習のための暗号であり、機密用ではありません
自動鍵は繰り返し鍵より一歩進んだ方式ですが、何世代も前から破られています。仕組みを学ぶために使い、秘密の情報を守るためには使わないでください。
よくある質問
- 自動鍵暗号とは何ですか?
- 自動鍵暗号は、鍵が短いプライマーに続けてメッセージそのものになる、多表式の換字式暗号です。各文字はヴィジュネルの規則 C = P + K(mod 26)で暗号化されるので、鍵はメッセージと同じ長さになり、繰り返しません。
- 自動鍵暗号はどのように復号しますか?
- プライマーを書き、各鍵文字を対応する暗号文字から引いて平文の文字を求めます。その平文の文字を鍵に追加し、同じ手順を続けます。プライマーを使い切った後は、鍵は復元済みの平文そのものになります。このツールで「デコード」を選ぶと、これを自動で行います。
- 自動鍵暗号とヴィジュネル暗号の違いは何ですか?
- ヴィジュネル暗号は鍵の語をメッセージ全体で繰り返しますが、自動鍵暗号は鍵の語を一度だけ使い、その後はメッセージが鍵の続きになります。その結果、カシスキーの方法や一致指数が頼りにしていた繰り返しのパターンが消え、自動鍵暗号はそれらの攻撃に強かったのです。
- 自動鍵暗号は安全ですか?
- いいえ。鍵が平文でできているため、推測された単語は、メッセージの一部と鍵の一部を同時に明らかにし、それが連鎖します。よく使われる単語を当てはめるクリブ・ドラッグで手作業でも破れますし、ソフトウェアなら数百文字からプライマーを復元できます。
- プライマーの長さはどれくらいにすべきですか?
- 1文字から任意の長さにできます。ヴィジュネルの原案は1文字で、アメリカ暗号協会(American Cryptogram Association)の例は6文字の PRIMER を使います。プライマーが長いと最初の数文字をさらに隠せますが、根本的な弱点は変わりません。プライマーの後は、鍵そのものが平文だからです。
- 暗号文の自動鍵とは何ですか?
- 暗号文の形式では、鍵は平文ではなく暗号文の続きになります。鍵全体が暗号文から見えるので復号は簡単ですが、誰でも鍵を読めるということなので、短いヴィジュネルの鍵と比べてほとんど利点はありません。送信側と受信側は、どちらの方式にするか同じものを選ぶ必要があります。