ポルックス暗号
ポルックス暗号をエンコード・デコードします。まずメッセージを、文字の間を1つのx、単語の間を2つのxで区切ってモールス符号で書き表し、続いてすべてのドット・ダッシュ・区切り記号を、あなたが割り当てた0から9までの数字のいずれかに置き換えます。複数の数字が同じ記号を表せるため、同じ文字でも書き表され方が毎回異なります。文字からモールス符号、そして数字への変換過程をリアルタイムで確認しながら、結果をコピー・ダウンロード・共有できます。すべての処理はブラウザ内で実行されます。
鍵
鍵によって、各数字0〜9が何を表すかが決まります。0から9まで順に各数字に1つずつ、ドット(.)、ダッシュ(-)、または区切り記号のxを使って、10個の記号を入力します。すべての記号に数字が割り当てられるよう、鍵には3種類それぞれを少なくとも1つ含める必要があります。例のx...x--xxxでは、0, 4, 7, 8 and 9が区切り記号、1, 2 and 3がドット、5 and 6がダッシュになります。使用できない入力はこの既定値に戻り、送信側と受信側は同じ鍵を使う必要があります。
上にテキストを入力すると、ここに結果が表示されます。
鍵表(記号 → 数字)
記号
数字
•
ドット
–
ダッシュ
×
区切り記号(x)
ポルックス暗号 の使い方
- 1
エンコードかデコードかを選ぶ
平文をポルックス暗号の数字に変換するにはエンコードを、暗号の数字を平文に戻すにはデコードを選びます。
- 2
鍵を設定する
0から9まで各数字に1つずつ、ドット、ダッシュ、または区切り記号のxを使って、10個の記号を入力します。すべての記号に数字が割り当てられるよう3種類すべてを必ず登場させ、送信側と受信側は同じ鍵を使ってください。
- 3
テキストを入力または貼り付ける
メッセージを入力すると、入力に合わせて変換されます。エンコード時には、手順パネルが各文字とそのモールス符号を上下に並べて示し、続いて並び全体を1記号ずつ並べ、それぞれの下に数字を表示します。
- 4
鍵表を確認する
鍵表を開くと、現在の鍵のもとでどの数字がドット、ダッシュ、区切り記号を表すかを確認できます。
- 5
コピー・ダウンロード・共有する
結果をコピーしたり、テキストファイルとしてダウンロードしたり、あなたのテキストと鍵がそのまま入力された状態でツールを再び開くリンクを共有したりできます。
ポルックス暗号を理解する
ポルックス暗号とは?
ポルックス暗号は、無害に見える0から9までの数字の並びの中にメッセージを隠します。その仕組みは、まずテキストをモールス符号に変換し、そのモールス符号を覆い隠すというものです。すべてのドット、すべてのダッシュ、そしてすべての区切り記号が、数字に置き換えられます。完成したメッセージは数字以外の何ものでもないため、その下にモールス符号が隠れていることを示す明らかな手がかりがありません。これこそが、パズルハント、脱出ゲーム、capture-the-flag(CTF)やScience Olympiad CodeBustersの課題で人気を集める理由です。
ポルックスは、Fractionated MorseやMorbitと同じく、モールス符号をベースにした紙と鉛筆の暗号の小さな仲間に属しており、これらはいずれもAmerican Cryptogram Association(米国暗号協会)によって体系化され、今日まで受け継がれてきました。ポルックスを際立たせているのは、記号よりも多くの数字を巧みに使う点です。モールス記号は3種類しかないのに対して数字は10個あるため、各記号には複数の数字が隠れ蓑として与えられます。その1つの発想がこの暗号の仕掛けのすべてであり、解読者が頼りにしようとする文字の出現頻度を平坦にするのです。
3つの記号、10個の数字
メッセージがモールス符号で書き表されると、使われる記号はドット、ダッシュ、そしてここではxと書かれる区切り記号の3つだけです。文字の間には1つのx、単語の間には2つのxxを置きます。これを暗号化するには、0から9までのどの数字をドットに、どれをダッシュに、どれを区切り記号に対応させるかを決めます。決まった規則はありません。唯一の条件は、3つの記号それぞれに少なくとも1つの数字が割り当てられることで、こうすればどの記号も数字を持たないまま残らず、デコードが可能なままになります。
10個の数字を3つの記号で分け合うため、ほとんどの記号には2つ、3つ、あるいはそれ以上の数字が選べるようになります。並びの中でドットに行き当たったときは、ドットに割り当てられた数字のどれを書いてもかまいません。この自由度こそがポルックスの核心です。1つのドットである文字Eは、ある場所では1、別の場所では3になるかもしれず、そのため各数字がどれだけ頻繁に現れるかを数える攻撃者は、どの文字がよく使われるかをほとんど知ることができません。
数字の選び方
1つの記号が複数の数字に対応できるため、暗号化する人は毎回どれか1つを選ばなければなりません。伝統的にはその選択はランダムに行われ、まったく同じメッセージを2回暗号化すると、2通りの異なる数字の並びが生まれます。これは解析をさらに妨げる有用な性質です。
しかしオンラインツールは再現可能でなければなりません。同じテキストを同じ鍵で入力すれば常に同じ結果が得られるべきであり、共有リンクは見たとおりのものを正確に再現する必要があります。このツールは、各記号の数字を順番に巡回させることで、ランダム性なしに多様性を保ちます。ドットに1, 2, 3が割り当てられている場合、最初のドットは1に、次は2に、その次は3に、そしてまた1に戻る、という具合です。出力は依然として利用可能なすべての数字に散らばりますが、再現可能になっています。そしてデコードは、どの数字が選ばれたかに依存することは決してありません。すべての数字がちょうど1つの記号に対応して戻るからです。
ポルックス暗号の仕組み
エンコードは2つの動作で進みます。まず、メッセージ全体をモールス符号で書き、文字の間に1つのx、単語の間に2つのxを置きます。次に、そのドット・ダッシュ・xの並びを1記号ずつたどり、各記号を、それに割り当てた数字のいずれかに置き換えます。気にすべき補填もグループ分けもありません。すべての記号が単に1つの数字になるだけなので、20記号の並びはちょうど20桁の数字になります。
上の手順パネルがこれをリアルタイムで示します。上段では各文字とそのモールス符号を対にして並べ、下段では並び全体を1記号ずつ並べ、それぞれの下にその記号がなった数字を表示します。繰り返し現れる文字を見れば、それが異なる数字を取るのがわかり、ポルックスがどのように数字を散らすかが目に見えて確かめられます。その下の鍵表は、現在の鍵について、どの数字がドット、ダッシュ、区切り記号に属するかを正確に示します。
具体例
鍵x...x--xxxを使って、救難信号SOSを取り上げてみましょう。この鍵では、1, 2 and 3がドット、5 and 6がダッシュ、そして0, 4, 7, 8 and 9が区切り記号になります。モールス符号では、SOSはSがドット・ドット・ドット、Oがダッシュ・ダッシュ・ダッシュ、そして再びSがドット・ドット・ドットであり、これらが1つの区切り記号でつながれて、ドット ドット ドット x ダッシュ ダッシュ ダッシュ x ドット ドット ドットという11記号の並びになります。
次に、各記号をその数字で巡回させながら置き換えます。最初の3つのドットは1, 2, 3を取り、最初の区切り記号は0を取り、3つのダッシュは5, 6, 5を取り(ダッシュには2つの数字しかないため巡回して戻ります)、次の区切り記号は4を取り、最後の3つのドットは再び1, 2, 3を取ります。その結果は12305654123となります。デコードはこの過程を逆にたどります。各数字がその記号になり、1, 2, 3はドット、0と4は区切り記号、5と6はダッシュとなって、ドット ドット ドット x ダッシュ ダッシュ ダッシュ x ドット ドット ドットを再構築し、これをモールス符号の表を通して読み戻すとSOSになります。
ポルックスメッセージのデコード
デコードは見事なまでに単純です。あいまいさがなく、各数字がちょうど1つの記号を表すからです。すべての数字を鍵で照合して、数字の並びをドット・ダッシュ・区切り記号に戻し、それらを1つの長い並びにつなぎ、続いてその並びを区切り記号で分割します。1つのxは文字の終わりを、2つのxxは単語の終わりを表します。そしてドットとダッシュの各まとまりをモールス符号の表を通して読み戻すことで、テキストを復元します。
正しくデコードするには、エンコードに使われたのと同じ鍵を使う必要があります。鍵が異なると、数字が誤った記号に対応してしまい、モールス符号は意味をなさないものになります。モールス符号を持つのは文字と数字だけなので、元のメッセージにあった句読点やその他の記号はエンコード時に取り除かれ、復元されません。また、it's のような短縮形は単一の単語ITSとして戻ってきます。暗号の数字のグループ間のスペースはデコード時に無視されるため、暗号文が詰めて書かれていても、きれいに5桁ずつのブロックに分けて書かれていても結果は変わりません。
歴史、用途、そして安全性
ポルックスは、Fractionated MorseやMorbitと並び、娯楽的な暗号解読のためにAmerican Cryptogram Association(米国暗号協会)によって収集された、モールス符号をベースにした数少ない暗号の1つであり、Science Olympiad CodeBustersのような学校の競技会で第二の人生を見出しました。そこでは、生徒たちがモールス符号が残す痕跡から鍵を復元することを学びます。平文の記号よりも多くの暗号記号を使い、複数の記号で1つを表すという仕掛けは、頻度を数える手法をどのように打ち破るかについての、小さくも優雅な教訓です。
現代の基準で見れば、ポルックスは安全ではありません。各記号を複数の数字に散らすことは素朴な頻度分析を無力化しますが、その基礎にあるモールス符号は強く、よく知られたパターンを課します。3つの区切り記号が続けて現れることは決してなく、ある種の短い符号は非常によく現れるのです。そして、判明または推測された鍵があれば、あるいは単に十分な量の暗号文があれば、意欲的な解読者やコンピューターがメッセージを復元できてしまいます。ポルックスは、1つの符号を別の符号で覆い隠すことがどのように難度を上げるかを生き生きと示す、パズルおよび教材として扱い、本当の秘密を守る手段として決して使わないでください。真の機密性が必要な場合は、AESのような現代的で専門家の検証を経たアルゴリズムを常に使ってください。
よくある質問
ポルックス暗号とは何ですか?
ポルックスの鍵はどのように機能しますか?
なぜ複数の数字が同じ記号を表せるのですか?
なぜここでは同じテキストが同じ数字になるのですか?
具体例を見せてもらえますか?
ポルックスメッセージはどうやってデコードしますか?
数字や句読点には対応していますか?
鍵が無効だった場合はどうなりますか?
ポルックスはMorbitやFractionated Morseとどう違うのですか?
ポルックス暗号は安全ですか?
私のテキストはサーバーにアップロードされますか?
関連ツール
こちらの便利なツールもどうぞ