T

Text Machine

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

オートキー暗号

短い起動キーワードがキーを始め、メッセージ自身がそれを続けていくため、キーが二度と繰り返されない、より強力なヴィジュネル暗号の変種であるオートキー暗号を暗号化・復号しましょう。暗号化と復号を切り替え、計算過程がリアルタイムで組み上がっていく様子を眺められます。すべての処理はブラウザ上で実行されます。

起動キーワード

キーワード

QUEENLY のような短い起動キーワードを入力します。これがキーストリームを始め、そのあとはメッセージ自身で続いていくため、キーは二度と繰り返されません。使われるのは文字だけで、大文字・小文字は同じものとして扱われ、キーワード中のスペース・数字・句読点は無視されます。

平文
暗号文

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

オートキー暗号 の使い方

  1. 1

    暗号化か復号かを選ぶ

    平文をオートキー暗号文に変えるには暗号化を、暗号文から平文を復元するには復号を選びます。どちらの向きにも同じ起動キーワードが使われます。

  2. 2

    起動キーワードを入力する

    QUEENLY のような短いキーワードを入力します。これがキーストリームを始め、そのあとはメッセージ自身で続いていきます。使われるのは文字だけで、キーワード中の大文字・小文字・スペース・句読点は無視されます。

  3. 3

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

    変換したいメッセージを入力します。入力すると同時に暗号が自動で実行され、1文字ずつの計算過程が下にリアルタイムで更新されて、どのキー文字がキーワード由来でどれがメッセージ由来かを示します。

  4. 4

    確認し、コピーし、共有する

    結果を確認し、それをコピーしたり、テキストファイルとしてダウンロードしたり、あなたの正確なキーワード・向き・テキストとともにツールを開き直すリンクで共有したりできます。すべてはブラウザ内に留まります。

オートキー暗号を理解する

オートキー暗号とは何ですか?

オートキー暗号は、オートクレーブ暗号とも呼ばれ、メッセージ自身がキーの一部となる多表式換字暗号です。短い起動キーワードがキーストリームを始め、それらの文字が尽きると、キーは単純に平文の文字でそのまま続いていきます。この走るキーはメッセージと同じ長さがあり、二度と繰り返されないため、オートキー暗号は、ふつうの繰り返しキー暗号を破りやすくする規則的で周期的なパターンを避けられます。

この暗号は、フランスの外交官ブレーズ・ド・ヴィジュネル (Vigenère) が1586年に発表したもので、ジョヴァン・バッティスタ・ベラーゾ (Bellaso) の先行する着想に基づいています。ここにはよく知られた皮肉があります: 世界が今ヴィジュネル暗号と呼ぶ単純な繰り返しキー暗号は、実はベラーゾ (Bellaso) のものであり、一方でヴィジュネル (Vigenère) 自身の、より強力な発明こそがこのオートキーだったのです。平文をキーへ送り返すことで、オートキー暗号は、のちにカシスキー (Kasiski) やフリードマン (Friedman) のような暗号解読者が繰り返しキーを破るために突いた周期性を取り除きます。

オートキー暗号の仕組み

アルファベットに A を 0 から Z を 25 まで番号を振ります。まず起動キーワードを書き、そのあと平文の文字を順に続けることでキーストリームを組み立てます。そのストリームをメッセージの下に並べ、すべての平文の文字の下に1つずつキー文字が来るようにします。暗号化するには、各キー文字をその上の文字に足し、26 で割った余りでアルファベットを循環させます。そうすると暗号文の文字は C = (P + K) mod 26 になります。

復号は左から右へ進めなければなりません。起動キーワードは分かっているので、P = (C − K) mod 26 で最初の数文字を復元できます。復元した各平文の文字はそのままキーストリームに追加され、次の文字を復号するのに使われ、これを最後まで繰り返します。ヴィジュネル (Vigenère) 暗号と同じく、変換されるのは26文字だけです。スペース・句読点・数字はそのまま通り抜けてキー文字を消費せず、大文字・小文字も保たれます。

実例で見る

メッセージ HELLO を起動キーワード KEY で暗号化しましょう。キーストリームはキーワードのあとに平文が続くので、5文字に対して K、E、Y、H、E となります。各文字をメッセージに足すと、H に K を足して R、E に E を足して I、L に Y を足して J、L に H を足して S、O に E を足して S となります。暗号文は RIJSS で、最後の2つのキー文字 H と E が、まさにメッセージ自身の最初の2文字であることに注目してください。

RIJSS を復号するには、キーワード KEY から始めます。R から K を引いて H、I から E を引いて E、J から Y を引いて L となり、HEL が復元されます。これら復元された文字が今度はキーを延ばすので、次のキー文字は H となり、S から H を引いて L、続いてキー文字 E により S から E を引いて O となって、HELLO が完成します。復元した各文字が次を解き明かす——これがオートキー暗号を読み解く核心です。

オートキー 対 繰り返しキーのヴィジュネル

ふつうのヴィジュネル (Vigenère) 暗号は、そのキーワードを何度も繰り返します: キー KEY なら、ストリームは KEYKEYKEY というふうに続きます。この繰り返しこそが致命的な弱点です。なぜなら、キーの長さがカシスキー (Kasiski) 検査や一致指数で見つけられ、そのあと各列が単純なシーザーシフトになるからです。オートキー暗号は同じ足し算の規則を使いますが、キーを決して繰り返さないため、これらの古典的な検査は当てはまりません。

その違いは実例で見て取れます。キー KEY では、繰り返すヴィジュネルは HELLO を RIJVS と暗号化しますが、オートキーは RIJSS を生み出します——両者はキーワードが続く間だけ一致し、そのあとは食い違います。オートキーが平文へと移っているからです。メッセージをキーへ送り返すというそのただ一つの変更こそが、ヴィジュネル (Vigenère) の真の貢献であり、彼の暗号を、今その名を冠する暗号よりも著しく強力にしたのです。

オートキー 対 ランニングキー暗号

オートキー暗号は、ランニングキー暗号と密接に関係しています。どちらも何も繰り返さないようメッセージと同じ長さのキーを使いますが、その長いキーがどこから来るかが異なります。ランニングキー暗号は、取り決めた本のページのような、共有された外部のテキストからキーを取りますが、オートキー暗号は、短い起動部分に平文自身を足したものから、その長いキーを生成します。

それぞれのやり方に落とし穴があります。自然言語から取ったランニングキーは、それ自体が攻撃されうる統計的構造を抱えていますが、平文のフィードバックは必要としません。オートキーはごく小さな共有秘密、すなわち起動キーワードだけで済みますが、キーの一部が平文であるために、よくある単語を当てた攻撃者は、それをキーであるかのようにメッセージ上で滑らせて試すことができます。これがオートキー暗号を破る主な手口です。

オートキー暗号を破る方法

キーが二度と繰り返されないため、繰り返しキー暗号に対する標準的な道具であるカシスキー (Kasiski) 検査と一致指数は、オートキー暗号文には直接は効きません。そのため、これはヴィジュネル (Vigenère) より目立って手ごわくなりますが、それでも安全からは程遠いものです。よくある攻撃は、この暗号を定義づけるまさにその特徴を突きます: キーの大部分は平文であり、それはふつうの言語なのです。

解析者は、THE やありそうな名前といった見込みのある単語を当て、それをキーであるかのように引きながら暗号文の上を引きずります。当てが正しいところでは、この操作がさらなる平文の断片を明らかにし、それを両方向へ延ばしていけます。短い起動キーワードの総当たりと組み合わせれば、このクリブドラッグ (crib-dragging) は手作業でオートキーのメッセージを復元します。したがってこの暗号は、安全な選択肢というよりも、巧妙な歴史的前進と見るのが最もよいでしょう。

オートキー暗号は安全ですか?

いいえ。オートキー暗号は素朴な繰り返しキーのヴィジュネル (Vigenère) より強力ではありますが、現代の基準では実質的な保護をまったく提供しません。キーとして平文に頼ることがクリブドラッグへの扉を開き、短い起動部分は総当たりされうるため、本気の解析者なら鉛筆と紙でこれを破れます。これは安全な手法のどんな一覧でもなく、古典暗号の歴史に属するものです。

今日、オートキー暗号は学習と娯楽のために重んじられています。メッセージをキーへ送り返すことが、より単純な暗号を破る周期性攻撃をどのように打ち負かすかを見る、洗練された方法であり、パズルハント・脱出ゲーム・キャプチャー・ザ・フラッグの課題に登場します。本物の情報を守るためには、代わりに AES のような現代的で十分に検証されたアルゴリズムに頼るべきです。

よくある質問

オートキー暗号とは何ですか?
オートキー、すなわちオートクレーブ暗号は、短い起動キーワードがキーを始め、平文自身がそれを続ける多表式換字暗号です。キーはメッセージと同じ長さがあり、二度と繰り返されないため、繰り返しキー暗号を破りやすくする周期的なパターンを避けられます。これはブレーズ・ド・ヴィジュネル (Vigenère) が1586年に発表しました。
オートキー暗号はどう動きますか?
アルファベットに A を 0 から Z を 25 まで番号を振り、キーワードのあとに平文を続けてキーストリームを組み立てます。暗号化するには、各キー文字をメッセージの文字に 26 を法として足します: C = (P + K) mod 26。復号するには引きます: P = (C − K) mod 26。左から右へ平文を復元し、復元した各文字をキーへ送り返します。変えられるのは文字だけです。
オートキー暗号はヴィジュネル暗号とどう違いますか?
ヴィジュネル (Vigenère) 暗号はそのキーワードをメッセージ全体にわたって繰り返しますが、オートキー暗号はキーワードを始めにだけ使い、そのあとは平文で続けます。これが繰り返しを取り除くため、カシスキー (Kasiski) 検査も一致指数もキーの長さを明らかにできなくなります。実はオートキーこそがヴィジュネル (Vigenère) 自身の、より強力な暗号であり、彼の名を冠する繰り返しの暗号はベラーゾ (Bellaso) のものでした。
オートキー暗号の例を見せてもらえますか?
HELLO をキーワード KEY で暗号化すると RIJSS になります。キーストリームは K、E、Y、H、E ——キーワードのあとにメッセージの最初の文字が続いたもの——なので、H に K を足して R、E に E を足して I、L に Y を足して J、L に H を足して S、O に E を足して S。RIJSS を KEY で復号すると HELLO が1文字ずつ復元されます。
どんなキーワードを使えばよいですか?
任意の短い単語や文字の列を使えます。QUEENLY が古典的な例です。肝心なのは文字だけで、大文字・小文字は同じものとして扱われます。長く、予測しにくい起動部分のほうがわずかに強くなりますが、どんな起動部分を選んでもオートキー暗号の安全性は限られているので、本物の秘密のために頼ってはいけません。
オートキー暗号はどうやって復号しますか?
ツールを復号に切り替え、暗号化に使われたのと同じ起動キーワードを入力し、暗号文を貼り付けます。ツールがキーワードを引いて最初の文字を復元し、次に復元した各文字をキーへ送り返して残りを解き明かします。キーワードがなければ、見込みのある単語を推測してこの暗号を攻撃するほかありません。
オートキー暗号とランニングキー暗号の違いは何ですか?
どちらもメッセージと同じ長さの、繰り返さないキーを使います。ランニングキー暗号はそのキーを本のような共有された外部テキストから取りますが、オートキー暗号は短い起動部分に平文自身を足したものからキーを組み立てます。オートキーはごく小さな共有秘密だけで済みますが、キーの一部が平文であることこそが、まさにクリブドラッグにそれを破らせる原因です。
この暗号はスペース・数字・句読点を変えますか?
いいえ。変換されるのは26文字だけです。スペース・句読点・メッセージ中の数字はそのまま通り抜け、キー文字を消費しないため、キーは文字と並んだままになります。大文字・小文字は保たれるので、出力は元のテキストの形を保ちます。
キーワードは大文字・小文字を区別しますか?
いいえ。起動キーワードは文字としてのみ読み取られ、大文字も小文字も同じシフトを与えるので、KEY と key はまったく同じように振る舞います。キーワードに入力されたスペース・数字・句読点は無視され、キーストリームを始める文字だけが残ります。
オートキー暗号はどうやって破りますか?
キーが循環しないため繰り返しキーの道具は当てはまらず、解析者は代わりにキーの平文部分を攻撃します。THE のような見込みのある単語をキーとして引きながら暗号文の上を引きずり、正しい位置はさらなる平文を明らかにして、それを外側へ延ばせます。このクリブドラッグと並行して短い起動部分を総当たりすれば、メッセージが復元されます。
オートキー暗号は安全ですか?
いいえ。素朴な繰り返しキーのヴィジュネル (Vigenère) より強力ですが、クリブドラッグと総当たりされた起動部分により手作業で破られうるため、今日では実質的な安全性を提供しません。教育とパズルのための暗号、そして暗号史の注目すべき一片として扱いましょう。本物の保護のためには AES のような現代的なアルゴリズムを使ってください。
入力したテキストはサーバーに送信されますか?
いいえ。すべての暗号化と復号はブラウザ内だけで実行されるため、あなたのテキストとキーワードがアップロード・記録・保存されることは決してありません。共有リンクでさえ、データを URL のハッシュ以降の部分に保持しますが、ブラウザはこの部分をサーバーに決して送信しないため、自分で共有を選ぶまで非公開のまま保たれます。

関連ツール

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

ヴィジュネル暗号

ボーフォート暗号

グロンスフェルト暗号

ランニングキー暗号

ポルタ暗号

トリテミウス暗号