T

Text Machine

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

フォースクエア暗号

フェリックス・デラステルが考案した、2つのキーワードを使うダイグラフ暗号 — フォースクエア暗号 — を暗号化・復号しましょう。文字は4つの 5×5 のスクエアにまたがってペア単位で暗号化されます — 2つは平文用、2つはあなたのキーワードでかき混ぜられたもので — これにより Playfair よりも明らかに強くなります。両方のキーワードを設定し、リアルタイムのフォースクエアのグリッドとペアごとの内訳を追いながら、結果をコピー・ダウンロード・共有できます。すべての処理はブラウザ上で実行されます。

キーワード

キーワード1 (右上)

キーワード2 (左下)

25文字のアルファベット: I と J が1つのマスを共有するため、復号された J は I として読み戻されます。フォースクエア暗号における古典的な選択です。

平文
暗号文

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

フォースクエアのグリッド

平文の文字は2つの平文スクエア (左上と右下) の中で見つけられ、暗号文の文字は2つのキーワードスクエア (右上と左下) から読み出されます。キーワードのマスは強調表示されます。

平文スクエア

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

キーワード2スクエア

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

キーワード1スクエア

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
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

フォースクエア暗号 の使い方

  1. 1

    暗号化か復号か、そしてアルファベットを選ぶ

    平文をフォースクエア暗号のペアに変えるには暗号化を、それを元に戻すには復号を選びます。I/J を統合したアルファベット (古典的な既定) を選ぶか、J を別々に保つために Q を除外する方式を選びます。

  2. 2

    2つのキーワードを入力する

    右上のスクエア用に1つ、左下のスクエア用にもう1つ、キーワードを入力します。双方とも両方のキーワードを共有しなければなりません。片方または両方を空欄にすると、その代わりに平文スクエアを使えます。

  3. 3

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

    メッセージを入力すると、入力すると同時に変換されます。手順パネルは、各平文のペアを、それが変わる暗号ペアの上に重ねて示します。

  4. 4

    フォースクエアのグリッドを読む

    グリッドを開くと、2つの平文スクエアと2つのキーワードスクエアが、キーワードのマスを強調表示した状態で見られるので、どのペアも目で追えます。

  5. 5

    コピー・ダウンロード・共有する

    結果をコピーしたり、テキストファイルとしてダウンロードしたり、入力したテキスト・キーワード・アルファベットをそのまま整えてツールを開き直すリンクで共有したりできます。

フォースクエア暗号を理解する

フォースクエア暗号とは何ですか?

フォースクエア暗号は、文字を2つずつ暗号化する手作業の暗号で、フランスの暗号学者フェリックス・デラステルによって1902年頃に考案されました — Bifid 暗号や Trifid 暗号を生み出したのと同じ多作な才能の持ち主です。これはより古い Playfair 暗号の近い親戚ですが、Playfair が単一の 5×5 のスクエアを使うのに対し、フォースクエアはその作業を 2×2 のブロックに配置された4つのスクエアに分散させます。そのうち2つは平文のアルファベットを保持し、2つは別々のキーワードでかき混ぜられるので、この暗号は単一文字の頻度を隠し、Playfair よりも手作業で破るのが格段に難しくなります。

単一の文字ではなく文字のペア — ダイグラフ — を扱うため、フォースクエアは多文字換字式暗号です。ペア単位で暗号化することで、単純な換字式暗号を数分で陥落させる文字頻度の指紋がならされ、2つの独立したキーワードを使うことで、Playfair に比べて鍵の材料がおよそ倍になります。実際に軍隊が運用した Playfair ほどの名声には決して届きませんでしたが、配置のわずかな変更がどれほど確かな強度の跳躍をもたらすかを示す、美しく、とても学びやすい実例です。

フォースクエア暗号の仕組み

4つの 5×5 のスクエアを 2×2 のブロックに並べます。左上と右下のスクエアは平文のアルファベットを順番どおりに保持し、右上と左下のスクエアはそれぞれキーワードでかき混ぜられたアルファベット (まずキーワードの重複しない文字、続いて残りのアルファベット) を保持します。26文字を25のマスに収めなければならないため、1文字が畳み込まれます — 古典的には I と J が1つのマスを共有します。

文字のペアを暗号化するには、最初の文字を左上の平文スクエアの中で、2番目の文字を右下の平文スクエアの中で見つけます。2つの暗号文字はキーワードスクエアから読み出されます: 1つ目は、最初の文字の行と2番目の文字の列を共有する右上のスクエアの文字、2つ目は、2番目の文字の行と最初の文字の列を共有する左下のスクエアの文字です。要するに、2つの平文文字がスクエアをまたいで長方形を描き、キーワードスクエアにあるその2つの対角が暗号ペアになります。復号は単にこの経路を逆にたどります — キーワードスクエアの中で暗号文字を見つけ、平文スクエアから平文文字を読み戻します。

2つのキーワードと平文スクエア

フォースクエア暗号には2つの独立した秘密があります: 右上のスクエア用のキーワードと、左下のスクエア用のキーワードです。それぞれは鍵付きの Playfair やポリュビオスのスクエアとまったく同じように作られます — まずキーワードの重複しない文字を順番に、繰り返しなしで書き込み、続いて残りのアルファベットが並びます。下のリアルタイムのグリッドはキーワードのマスを強調表示するので、かき混ぜの様子を見られます。2つの平文スクエアは常に素のアルファベット順を保ちます。なぜなら、それらは文字を「見つける」ためだけに使われ、決して隠すためには使われないからです。

送り手と受け手は両方のキーワードを共有し、アルファベットの方式について合意しなければなりません。キーワードを空欄のままにすると、その代わりに平文スクエアを使えます — そして両方を空欄にすると、4つのスクエアはすべて同一になり、暗号は固定された文字ペアの転置に帰着します。これは、キーワードによるかき混ぜが重ねられる前に、その幾何学的な仕組みを見るのに便利な方法です。

I/J の統合か Q の除外か

26文字は25のマスに収まらないので、1文字が道を譲らなければなりません。Playfair と共通する古典的なフォースクエアの慣例では、I と J を1つのマスに統合します: メッセージ中の J は I として暗号化され、復号された I はどちらを表すこともあり得ます — ほとんどの場合、文脈から明らかです。これがここでの既定です。

もう一つの方式は Q をスクエアから (そしてテキストから) 完全に取り除き、I と J を別々に保ちます — これは、まれな Q よりも J/I の曖昧さの方が重要な場合に役立ちます。上のトグルで方式を選んでください。リアルタイムのグリッドが自らラベルを付け替えます。双方とも同じ方式を使わなければ、メッセージは復号されません。

フォースクエアの実例で見る

I/J を統合したアルファベットを使い、キーワード1に EXAMPLE (右上)、キーワード2に KEYWORD (左下) を用いて、ATTACK という単語を取り上げましょう。ATTACK はペア AT、TA、CK に分かれます。最初のペアでは、A は左上の平文スクエアの 1 行目 1 列目にあり、T は右下の平文スクエアの 4 行目 4 列目にあります。

1つ目の暗号文字は、A の行と T の列で右上のキーワードスクエアから読み出され、M に行き着きます。2つ目は、T の行と A の列で左下のキーワードスクエアから読み出され、こちらも M に行き着きます — つまり AT は MM に暗号化されます。続けると、TA は OW に、CK は PA になるので、ATTACK は MM OW PA に暗号化されます。この暗号は MM のような重なった文字を生み出すことがあり、これは Playfair では決して起こらないことに注意してください。同じ2つのキーワードで復号すると、各ペアがそのまま ATTACK に戻ります。

フォースクエアのメッセージを復号する

復号は同じ仕組みを逆向きに動かします。暗号文をペアに分け、各ペアの最初の文字を右上のキーワードスクエアの中で、2番目を左下のキーワードスクエアの中で見つけ、続いて対応する行と列で2つの平文スクエアから平文文字を読み出します。このツールは、復号を選び、暗号化に使われたのと同じ2つのキーワードとアルファベットの方式を入力すると、これらすべてを代わりに行います。

スクエアには A–Z の文字しか存在しないため、元のメッセージにあったスペース・数字・句読点は暗号化の際に取り除かれ、再び現れることはありません。最後に1文字だけ余る場合は、メッセージを丸ごとのペアに分けられるように埋め草が足されます (X で、その文字自体が X のときは Z で)。そのため、復号されたメッセージは余分な埋め草の文字で終わることがあります — これはダイグラフ暗号に固有のものであり、ツールの不具合ではありません。

フォースクエア対 Playfair、そして安全性

フォースクエアは2つの点で Playfair を改良します。1つではなく2つのキーワードを使って鍵の材料を倍にし、そして Playfair のように重なった文字の間に埋め草を挿入する必要が決してありません。なぜなら、ペアの2つの半分が別々のスクエアから読み出されるからです — そのため LL や EE のようなペアもきれいに暗号化されます。これらの変更によって、手作業では少し手間が増えますが、攻撃するのは明らかに難しくなり、それでいて同じ思い描きやすいグリッドの発想は保たれます。

とはいえ現代の基準では、フォースクエアは依然として古典的な暗号であり、コンピュータに対して安全ではありません。すべてのダイグラフ換字式暗号と同様に、文字ペアの頻度を保持するため、十分な量のテキストがあれば、ダイグラフ頻度分析や既知平文攻撃に屈します。今日におけるその価値は教育的なものです — それは Playfair から優雅に一歩進んだもので、より多くの鍵の材料がもたらす利点を実感させてくれます。本当の情報を守るには、AES のような現代的で査読を経たアルゴリズムを常に使い、フォースクエアは歴史やパズル、キャプチャー・ザ・フラッグのチャレンジのために取っておきましょう。

よくある質問

フォースクエア暗号とは何ですか?
フォースクエア暗号は、フェリックス・デラステルによって1902年頃に考案されたダイグラフ (文字のペア) 換字式暗号です。2×2 のブロックに並んだ4つの 5×5 のスクエア — 2つは平文のアルファベットを保持し、2つは別々のキーワードでかき混ぜられたもの — を使って、文字を2つずつ暗号化します。これは Playfair 暗号のより強力な親戚で、1つではなく2つのキーワードを使い、重なった文字を分割する必要が決してありません。
フォースクエア暗号はどう動きますか?
4つの 5×5 のスクエアを並べます。ペアを暗号化するには、最初の文字を左上の平文スクエアの中で、2番目を右下の平文スクエアの中で見つけます。暗号ペアは、最初の文字の行と2番目の文字の列を共有する右上のスクエアの文字に続いて、2番目の文字の行と最初の文字の列を共有する左下のスクエアの文字となります。復号はこれを逆にします — キーワードスクエアの中で暗号文字を見つけ、平文スクエアから平文文字を読み戻します。
フォースクエア暗号はなぜ2つのキーワードを使うのですか?
2つのキーワードは右上と左下のスクエアをそれぞれ独立にかき混ぜ、これによって Playfair の単一のキーワードに比べて鍵の材料がおよそ倍になり、暗号は破りにくくなります。2つの平文スクエアはアルファベット順を保ちます。なぜなら、それらは平文文字を見つけるためだけに使われ、隠すためには使われないからです。送り手と受け手は両方のキーワードと同じアルファベットの方式を共有しなければなりません。
フォースクエアの実例を見せてもらえますか?
キーワード1に EXAMPLE、キーワード2に KEYWORD、そして I/J を統合したアルファベットを使うと、ATTACK は AT、TA、CK に分かれます。AT については、A は左上の平文スクエアの 1 行目 1 列目に、T は右下の平文スクエアの 4 行目 4 列目にあります。A の行と T の列で右上のスクエアを読むと M が、T の行と A の列で左下のスクエアを読むとこちらも M が得られるので、AT は MM になります。TA は OW に、CK は PA になるので、ATTACK は MM OW PA に暗号化されます。
フォースクエア暗号はどうやって復号しますか?
暗号文をペアに分け、各ペアの最初の文字を右上のキーワードスクエアの中で、2番目を左下のキーワードスクエアの中で見つけ、続いて対応する行と列で2つの平文スクエアから平文文字を読み出します。このツールでは復号を選び、暗号化に使われたのと同じ2つのキーワードとアルファベットの方式を入力すると、メッセージを代わりに組み立て直します。
フォースクエアは Playfair 暗号とどう違いますか?
どちらも 5×5 のスクエアの上に作られたダイグラフ暗号ですが、Playfair が1つのスクエアと1つのキーワードを使うのに対し、フォースクエアは4つのスクエアと2つのキーワードを使います。フォースクエアはまた、重なった文字の間に埋め草を決して挿入しません — ペアの2つの半分が別々のスクエアから読み出されるため、LL のようなペアもきれいに暗号化されます — 一方で Playfair は重なりを分割しなければなりません。これらの変更によって、フォースクエアは手作業では少し手間が増えますが、破るのは明らかに難しくなります。
I/J の統合と Q の除外の違いは何ですか?
26文字は25のマスに収まらないので、1文字が道を譲らなければなりません。古典的な選択肢は I と J を1つのマスに統合するので、J は I として暗号化され、復号された J は I として読み戻されます。もう一つの方式は Q をスクエアとテキストから取り除き、I と J を別々に保ちます。メッセージに合う方を選んでください。双方とも同じ方式を使わなければ、暗号は正しく復号されません。
フォースクエア暗号は二重の文字を生み出せますか?
はい。ペアの2つの半分が2つの異なるスクエアから読み出されるため、平文のペアは MM や LL のような重なった文字に暗号化されることがあり、LL のような重なった平文も埋め草なしで暗号化されます。これは Playfair との目に見える違いです。Playfair は重なったペアを決して出力できず、重なった平文を X で分割しなければなりません。これは正常なことであり、エラーを示すものではありません。
スペース・数字・句読点はどうなりますか?
スクエアには A–Z の文字しか存在しないので、スペース・数字・句読点は暗号化の前に取り除かれ、復号しても再び現れることはありません。メッセージの文字数が奇数の場合は、丸ごとのペアに分けられるように埋め草 (X で、最後の文字自体が X のときは Z) が足されるので、復号されたメッセージは余分な文字で終わることがあります。この書式の喪失は、この暗号に固有のものです。
両方のスクエアにキーワードを使わなければなりませんか?
いいえ。どちらのキーワードも空欄のままにすると、その代わりに素のアルファベットのスクエアを使え、両方を空欄にすると4つのスクエアはすべて同一になります — これは暗号を固定された文字ペアの転置に変え、キーワードによるかき混ぜの前にその幾何学的な仕組みを見るのに便利な方法です。実際の用途では、強くて異なる2つのキーワードが最も高い安全性をもたらし、その両方を受け手と共有しなければなりません。
フォースクエア暗号はどれほど安全ですか?
現代の基準では安全ではありません。2つのキーワードと、重なった文字のより洗練された扱いのおかげで Playfair より強いものの、依然として古典的なダイグラフ暗号です: 文字ペアの頻度を保持するため、十分な量の暗号文があれば、ダイグラフ頻度分析や既知平文攻撃に屈します。当時としては妥当な手作業の暗号で、学習には申し分ありませんが、本当の保護には AES のような現代的なアルゴリズムを使ってください。
入力したテキストはサーバーに送信されますか?
いいえ。すべての暗号化と復号はブラウザ内だけで実行されるため、入力したテキストがアップロード・記録・保存されることはありません。共有リンクでさえ、テキストとキーワードを URL のハッシュ以降の部分に保持しますが、ブラウザはこの部分をサーバーに決して送信しないため、自分でリンクを共有するまでメッセージは非公開のまま保たれます。

関連ツール

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

ツースクエア暗号

プレイフェア暗号

バイフィッド暗号

トライフィッド暗号

ヒル暗号

シーザー暗号