T

Text Machine

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

グロンスフェルト暗号

短い数字の列をキーとして使う、簡略化されたヴィジュネル暗号であるグロンスフェルト暗号を暗号化・復号しましょう。各桁がメッセージの対応する文字をずらし、キーはテキスト全体にわたって繰り返されます。暗号化と復号を切り替え、計算過程がリアルタイムで組み上がっていく様子を眺められます。すべての処理はブラウザ上で実行されます。

数字キー

キーの数字

キーは 31415 のように 0 から 9 までの数字の列として入力します。各桁が、メッセージの対応する文字をどれだけずらすかを決め、キーはテキスト全体にわたって繰り返されます。使われるのは数字だけで、キーに入力された文字・スペース・句読点は無視されます。

平文
暗号文

上にテキストを入力すると、グロンスフェルト暗号の結果がここに表示されます。

グロンスフェルト暗号 の使い方

  1. 1

    暗号化か復号かを選ぶ

    平文をグロンスフェルト暗号文に変えるには暗号化を、暗号文から平文を復元するには復号を選びます。どちらの向きにも同じ数字キーが使われます。

  2. 2

    数字キーを入力する

    キーを 31415 のように 0 から 9 までの数字の列として入力します。各桁が、それと並ぶ文字のシフトを決め、キーはメッセージ全体にわたって繰り返されます。キー中の文字・スペース・句読点は無視されます。

  3. 3

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

    変換したいメッセージを入力します。入力すると同時に暗号が自動で実行され、1文字ずつの計算過程が下にリアルタイムで更新されるので、各シフトを確認できます。

  4. 4

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

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

グロンスフェルト暗号を理解する

グロンスフェルト暗号とは何ですか?

グロンスフェルト暗号は、ヴィジュネル (Vigenère) 暗号とまったく同じように動作しますが、キーをキーワードではなく短い数字の列として取る多表式換字暗号です。0 から 9 までの各桁が、メッセージの対応する文字をどれだけずらすかを示し、それらの桁はテキスト全体にわたって繰り返されます。同じ平文の文字でも、その位置に応じていくつもの異なる暗号文の文字になりうるため、この暗号は単純なシーザー (Caesar) シフトを露呈させる素朴な文字頻度のパターンを隠します。

この暗号は、17世紀の外交官にして軍人であったグロンスフェルト伯ヨハン・フランツ (Johann Franz, Count of Gronsfeld) にちなんで名づけられ、学者ガスパール・ショット (Gaspar Schott) が秘密の書記法に関する1665年の著作で記述しました。その魅力は実用的なものでした: 数字キーは覚えやすく送りやすく、たとえば日付や覚えやすい数として、あらかじめ秘密の語を取り決めることなく扱えます。そのためグロンスフェルト暗号は、書簡のやり取りや、後の電信の時代に実際に使われました。

グロンスフェルト暗号の仕組み

アルファベットに A を 0 から Z を 25 まで番号を振ります。メッセージのすべての文字の下に1つずつ桁が並ぶよう、必要なだけ繰り返しながら数字キーをメッセージの下に書きます。暗号化するには、各キーの桁をその上の文字に足し、26 で割った余りでアルファベットを循環させます。そうすると暗号文の文字は C = (P + K) mod 26 になります。復号するには代わりに引き算をして、P = (C − K) mod 26 とします。これはシフトを打ち消し、元の文字を返します。

ずらされるのは26文字だけです。スペース・句読点・さらにはメッセージ自体に現れる数字までもがそのまま通り抜け、キーの桁を消費しないため、キーは肝心の文字と並んだままになります。大文字・小文字は保たれるので、大文字は大文字のまま、小文字は小文字のままです。どの桁も 0 から 9 までなので、各位置では10通りしかないシフトのうちの一つが使われます。これがグロンスフェルト暗号を特徴づける性質です。

実例で見る

メッセージ HELLO を数字キー 31415 で暗号化しましょう。キーを繰り返すと、文字 H、E、L、L、O の下に桁 3、1、4、1、5 が並びます。各文字をその桁だけ前へずらすと、H に 3 を足して K、E に 1 を足して F、L に 4 を足して P、L に 1 を足して M、O に 5 を足して T となります。暗号文は KFPMT です。

同じキー 31415 で KFPMT を復号するには、代わりに各桁を引きます。K から 3 を引いて H、F から 1 を引いて E、P から 4 を引いて L、M から 1 を引いて L、T から 5 を引いて O となり、再び HELLO と綴られます。暗号化と復号の手順は互いに鏡像なので、受信者に必要なのは同じ数字キーだけです。

グロンスフェルト 対 ヴィジュネル

グロンスフェルト暗号は、制限されたキーを持つヴィジュネル暗号として理解するのが最もよいでしょう。ヴィジュネルのキーワードは、アルファベット全体を使い、その各文字を 0 から 25 までのシフトに変えます。グロンスフェルトのキーは 0 から 9 までのシフトしか使わず、これはヴィジュネルのキーワードの文字 A から J までと同じです。ですからグロンスフェルトのキー 31415 は、ヴィジュネルのキーワード DBEBF とまったく同じように振る舞います。D はシフト 3、B はシフト 1、E はシフト 4、というふうにです。

この制限は一つの引き換えです。利点は便利さです: 数は語よりも覚えたり、口頭で伝えたり、持ち運んだりするのが簡単で、頭の中でアルファベットからシフトへの変換をする必要がありません。代償は強度です。各位置で、26通りありうるシフトのうち10通りしか使われないため、キー空間は同じ長さの完全なヴィジュネルキーよりはるかに小さく、それがグロンスフェルト暗号をより破りやすくしています。

なぜキーに数を使うのか?

数字キーこそがグロンスフェルト暗号の眼目です。人は、誕生日や番地、あるいは円周率のようなおなじみの定数の冒頭の数字など、すでに自分にとって何か意味のある数を覚えるのが得意です。2人の通信者はそのような数を素早く取り決め、見つかってしまうかもしれない秘密の語を書き留めることなく、記憶から再構成できます。

数はまた、きれいに伝わります。電信の時代には、数字でできたキーは語よりも誤りの可能性が少なく送信・記録でき、特別な暗号表も必要としませんでした。その実用性こそが、より強力な方法が存在するようになってからもずっと、グロンスフェルト暗号が日常の秘密の書記法として人気を保った理由であり、今日でもパズルや教育の場に登場し続ける理由です。

グロンスフェルト暗号を破る方法

グロンスフェルトは繰り返しキーの暗号なので、ヴィジュネルを破るのと同じ攻撃に、ただしより容易に屈します。最初の一歩はキーの長さを見つけることです。これの古典的な道具は、繰り返される文字の組の間の距離を測るカシスキー (Kasiski) 検査と、文字頻度がどれだけ偏っているかを検出する一致指数です。キーの長さが分かれば、暗号文はそれぞれ一つの桁でずらされた列に分かれます。

各列を解くところが、グロンスフェルトがヴィジュネルより弱い点です。各列は10通りしかありうる値のうちの一つでずらされていたので、攻撃者は単に10通りすべてを試し、その列が普通の言語のように読めるシフトを選べばよいのです。短いキーでは、桁ごとに10通りしか選択肢がないため、キー全体を総当たりで見つけることさえできます。したがってグロンスフェルトのメッセージは、そのキーが長く、予測しにくく、二度と再利用されない限りにおいてのみ安全です。

グロンスフェルト暗号は安全ですか?

いいえ。現代の基準では、グロンスフェルト暗号は実質的な安全性をまったく提供しません。その小さな1文字あたりのキー空間と繰り返されるキーは、紙と鉛筆の方法でも素早く破られ、コンピュータにとっては造作もありません。これは手作業の暗号の歴史に属するものであり、その価値は解析に対する真剣な抵抗ではなく、数字キーの便利さにありました。

今日、グロンスフェルト暗号は学習と娯楽のために楽しまれています。数字キーがどのように多表式のシフトを駆動するかを見る、明快で親しみやすい方法であり、パズルハント・脱出ゲーム・ジオキャッシング・キャプチャー・ザ・フラッグの課題に定期的に登場します。本物の情報を守るためには、代わりに AES のような現代的で十分に検証されたアルゴリズムに頼るべきです。

よくある質問

グロンスフェルト暗号とは何ですか?
グロンスフェルト暗号は、ヴィジュネル (Vigenère) 暗号のように動作しますが、キーワードではなく数字でできたキーを使う多表式換字暗号です。0 から 9 までの各桁がメッセージの対応する文字をずらし、キーはテキスト全体にわたって繰り返されます。17世紀の伯爵にちなんで名づけられ、数字キーの便利さゆえに重んじられました。
グロンスフェルト暗号はどう動きますか?
アルファベットに A を 0 から Z を 25 まで番号を振り、メッセージの下に数字キーを必要なだけ繰り返しながら書きます。暗号化するには、各キーの桁をその上の文字に 26 を法として足します: C = (P + K) mod 26。復号するには代わりに引きます: P = (C − K) mod 26。ずらされるのは文字だけで、テキスト中のスペース・句読点・数字はそのまま通り抜けます。
グロンスフェルトはヴィジュネル暗号とどう違いますか?
グロンスフェルトは制限されたキーを持つヴィジュネル暗号です。ヴィジュネルのキーワードは 0 から 25 までのシフトを使いますが、グロンスフェルトのキーは 0 から 9 までのシフトしか使いません。ですからグロンスフェルトのキー 31415 は、ヴィジュネルのキーワード DBEBF と同一です。数字キーは覚えやすいものの、シフトの集合が小さいことがグロンスフェルトを破りやすくしています。
グロンスフェルト暗号の例を見せてもらえますか?
HELLO をキー 31415 で暗号化すると KFPMT になります。桁 3、1、4、1、5 が文字の下に並び、それぞれを前へずらします: H に 3 を足して K、E に 1 を足して F、L に 4 を足して P、L に 1 を足して M、O に 5 を足して T。同じキーで KFPMT を復号すると桁を引いて HELLO に戻ります。
どんなキーを使えばよいですか?
0 から 9 までの任意の数字の列を使えます。長く、予測しにくいキーほど強くなります。暗号の安全性は、キーが長く、推測しにくく、二度と再利用されないことにかかっているからです。1234 のような短い、あるいは明白な数はほぼ即座に破られます。キーに入力された文字やその他の記号は無視されるので、肝心なのは数字だけです。
グロンスフェルト暗号はどうやって復号しますか?
ツールを復号に切り替え、暗号化に使われたのと同じ数字キーを入力し、暗号文を貼り付けます。ツールが各キーの桁を引いて平文を復元します。キーが分からない場合でも、各位置は10通りしかありうるシフトのうちの一つしか使わないため、暗号解読によってしばしば復元できます。
なぜキーは文字ではなく数を使うのですか?
数字キーはグロンスフェルト暗号を定義づける特徴であり、その主な実用的利点です。日付や円周率の数字のような数は覚えやすく口頭で伝えやすく、文字からシフトへの変換を必要としません。歴史的には、これがこの暗号を書簡のやり取りや、数字がきれいに伝わる電信に便利なものにしました。
この暗号はスペース・数字・句読点を変えますか?
いいえ。ずらされるのは26文字だけです。スペース・句読点・メッセージ自体に現れる数字はそのまま通り抜け、キーの桁を消費しないため、キーは文字と並んだままになります。大文字・小文字は保たれるので、出力は元のテキストの形を保ちます。
キーの桁に 0 は使えますか?
はい。桁 0 は有効なキーの値で、その文字を0だけずらし、その位置では変えずに残します。したがってすべて0でできたキーは、メッセージを変えずに返します。長いキーに0を混ぜるのはまったく問題なく、単に一部の位置がずらされないことを意味するだけです。
グロンスフェルト暗号はどうやって破りますか?
キーが繰り返されるため、まずカシスキー (Kasiski) 検査と一致指数でキーの長さを見つけ、次に暗号文を一つの桁を共有する列に分けます。各列は10通りしかありうるシフトのうちの一つしか使っていなかったので、10通りすべてを試して読める結果を残せば素早く復元できます。短いキーは総当たりで丸ごと破ることさえできます。
グロンスフェルト暗号は安全ですか?
いいえ。現代の基準では実質的な安全性を提供しません: 小さな1文字あたりのキー空間と繰り返されるキーは、手作業でも素早く破られ、コンピュータにとっては造作もありません。教育とパズルのための暗号、そして暗号史の一片として扱うのが最もよいでしょう。本物の保護のためには、代わりに AES のような現代的なアルゴリズムを使ってください。
入力したテキストはサーバーに送信されますか?
いいえ。すべての暗号化と復号はブラウザ内だけで実行されるため、あなたのテキストとキーがアップロード・記録・保存されることは決してありません。共有リンクでさえ、データを URL のハッシュ以降の部分に保持しますが、ブラウザはこの部分をサーバーに決して送信しないため、自分で共有を選ぶまで非公開のまま保たれます。

関連ツール

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

ボーフォート暗号

ポルタ暗号

トリテミウス暗号

ヴィジュネル暗号

オートキー暗号

ランニングキー暗号