Morbit暗号
Morbit暗号をエンコード・デコードします。まずメッセージを、文字の間を1つのx、単語の間を2つのxで区切ってモールス符号で書き表し、続いてドット・ダッシュ・xの並びを2記号ずつ読み取り、9通りの各ペアを、キーワードで定めた順序に従って1から9までの数字に置き換えます。文字からモールス符号、そして数字への変換過程をリアルタイムで確認しながら、結果をコピー・ダウンロード・共有できます。すべての処理はブラウザ内で実行されます。
鍵
鍵によって、各モールス符号のペアがどの数字になるかが決まります。9文字のキーワード(その文字をアルファベット順に1〜9で番号付けし、同じ文字は左から順に割り当てます)か、1〜9を並べ替えた9桁の数字を直接入力します。それ以外を入力した場合は、通常の1〜9の順序が使われます。送信側と受信側は同じ鍵を使う必要があります。
上にテキストを入力すると、ここに結果が表示されます。
ペア → 数字 の対応表
..
5
.-
6
.x
8
-.
9
--
3
-x
1
x.
7
x-
2
xx
4
モービット暗号 の使い方
- 1
エンコードかデコードかを選ぶ
平文をMorbit暗号の数字に変換するにはエンコードを、暗号の数字を平文に戻すにはデコードを選びます。
- 2
鍵を設定する
9文字のキーワードか、1〜9を並べ替えた9桁の数字を入力します。鍵によって、各モールス符号のペアがどの数字になるかが決まります。両者が一致するよう、送信側と受信側は同じ鍵を使う必要があります。
- 3
テキストを入力または貼り付ける
メッセージを入力すると、入力に合わせて変換されます。エンコード時には、手順パネルが各文字とそのモールス符号を上下に並べて示し、続いて並びがペアに分割され、それぞれの下に数字が表示されます。
- 4
ペア表を確認する
ペア表を開くと、現在の鍵のもとで9つのモールス符号ペアそれぞれが対応する数字を確認できます。
- 5
コピー・ダウンロード・共有する
結果をコピーしたり、テキストファイルとしてダウンロードしたり、あなたのテキストと鍵がそのまま入力された状態でツールを再び開くリンクを共有したりできます。
Morbit暗号を理解する
Morbit暗号とは?
Morbit暗号は、通常のモールス符号を1から9までの数字の並びに変換します。これにより、おなじみのドットとダッシュが完成したメッセージにはまったく現れません。Fractionated MorseやPolluxと同じく、モールス符号をベースにした手書き暗号の仲間であり、これらはいずれもAmerican Cryptogram Association(米国暗号協会)によって体系化され、今日まで受け継がれてきました。出力が意味のない数字の羅列に見えるため、パズルハントやcapture-the-flag(CTF)の課題で人気があります。
その名前はMorse(モールス)とbit(ビット)を組み合わせたもので、その核心にあるのは分割(フラクショネーション)という考え方です。メッセージをモールス符号に変換した後、ドット・ダッシュ・区切り記号からなる並びをペアに分割し、各ペアを1つの数字に置き換えます。2つのモールス記号が1つの平文文字ときれいに揃うことはほとんどないため、すべての暗号の数字は結果的に隣接する文字の断片を含むことになります。この混ざり合いこそが、モールス符号特有のリズムを消し去り、そうでなければメッセージを露呈させてしまう文字の出現頻度を平坦にするのです。
3つの記号、9つのペア
モールス符号を切れ目のない1つの並びにするには、区切り記号が必要です。Morbitでは文字xを使い、文字の間には1つのx、単語の間には2つのxxを置きます。こうして、メッセージはドット、ダッシュ、xという3つの記号だけで表され、それ以外は何も使いません。
これらの記号を2つずつ読み取ると、3 × 3 = 9 通りのペアが考えられ、それらは決まった順序で並べられます。すなわち、ドット・ドット、ドット・ダッシュ、ドット・x、ダッシュ・ドット、ダッシュ・ダッシュ、ダッシュ・x、x・ドット、x・ダッシュ、そしてx・xです。9つのペアに対して、ちょうど1から9までの9つの数字でそれらを表せます。このきれいな対応こそが、この暗号が成り立つ理由のすべてです。すべてのペアにそれぞれ専用の数字が割り当てられ、余りも不足もありません。
キーワードと数字の割り当て
9つのペアは常に同じ決まった順序で並べられます。変わるのは、それぞれの下に書かれる数字です。キーワードがなければ、ペアは単純に順番どおりに1から9までの数字を取ります。キーワードはそれらを並べ替えます。9文字の単語を取り、その文字をアルファベット順に1から9まで番号付けし(同じ文字は左から順に割り当てます)、その並べ替えを9つのペアに対応させて読み取ります。
例えばキーワードMORSECODEは、その文字が 5, 6, 8, 9, 3, 1, 7, 2, 4 と番号付けされます。そのため、最初のペアであるドット・ドットは5に、2番目のペアであるドット・ダッシュは6に、という具合になります。上のリアルタイム表はこの対応を示しており、鍵を変更した瞬間に更新されます。お好みであれば、1から9を並べ替えた9桁の数字を直接入力することもできます。鍵は共有された秘密です。送信側と受信側は同じものを使う必要があります。
Morbit暗号の仕組み
エンコードは3つの段階で進みます。まず、メッセージ全体をモールス符号で書き、文字の間に1つのx、単語の間に2つのxを置きます。次に、できあがった並びの記号数が奇数であれば、ペアにきれいに分割できるよう末尾に1つのxを追加します。ドットやダッシュではなくxで補うことが重要です。なぜなら、余分なドットは後で誤った文字として読み取られてしまうからです。最後に、その並びを2記号ずつ読み取り、各ペアを鍵に従った数字に置き換えます。
この暗号の威力は、そのペアリングにあります。1つの平文文字は、モールス符号に変換されて区切り記号で隣の文字とつなげられると、複数のペアにまたがって分散され、さらに各ペアは片側の文字からも記号を借りてきます。したがって、1つの平文文字を復元するには周囲のモールス符号も再構築する必要があり、これこそが、単純な換字式暗号を破る文字数え攻撃を無力化するのです。上の手順パネルはこれをリアルタイムで示します。上段では各文字とそのモールス符号を対にして並べ、下段では並びをペアに分割し、それぞれの下に数字を表示します。
具体例
キーワードMORSECODEを使って、フレーズMORE BITSを考えてみましょう。モールス符号では、MOREはダッシュ・ダッシュ x ダッシュ・ダッシュ・ダッシュ x ドット・ダッシュ・ドット x ドットとなり、BITSはダッシュ・ドット・ドット・ドット x ドット・ドット x ダッシュ x ドット・ドット・ドットとなります。2つの単語の間のスペースは2つのxxで示されます。これらをつなぎ合わせると27記号の並びになり、奇数の長さなので、末尾に1つのxを追加して28にします。
次に、この28記号を2つずつ読み取って14個のペアを得て、MORSECODEの鍵を使って各ペアを数字に変換します(ドット・ドットは5、ダッシュ・ダッシュは3、ドット・xは8、という具合です)。その結果は32379749578158となります。デコードはこの過程を正確に逆にたどります。各数字をペアに戻し、それらのペアをモールス符号の並びにつなぎ直し、その並びをモールス符号の表を通して読み戻すことで、MORE BITSを復元します。
Morbitメッセージのデコード
デコードは、単に3つの段階を逆向きにたどるだけです。各数字を鍵で照合してそのモールス符号のペアを復元し、それらのペアを1つの長いドット・ダッシュ・xの並びにつなぎ直し、その並びを区切り記号で分割します。1つのxは文字の終わりを、2つのxxは単語の終わりを表します。ドットとダッシュの各まとまりをモールス符号の表を通して読み戻すことで、元のテキストが再構築されます。エンコード時に追加されたxの補填は末尾に無害に残り、消えていきます。そのため、このツールでエンコードされたメッセージは常に正確にデコードされて元に戻ります。
正しくデコードするには、エンコードに使われたのと同じ鍵を使う必要があります。鍵が異なると、ペアが誤った数字に対応してしまい、モールス符号は意味をなさないものになります。モールス符号を持つのは文字と数字だけなので、元のメッセージにあった句読点やその他の記号はエンコード時に取り除かれ、復元されません。暗号の数字のグループ間のスペースはデコード時に無視されるため、暗号文が詰めて書かれていても、きれいに5桁ずつのブロックに分けて書かれていても結果は変わりません。
歴史、用途、そして安全性
Morbitは、Fractionated MorseやPolluxと並び、娯楽的な暗号解読のためにAmerican Cryptogram Association(米国暗号協会)によって体系化され、受け継がれてきた、モールス符号をベースにした数少ない紙と鉛筆の暗号の1つです。これらは、隠されたモールス符号の構造を見抜ける解読者に報いるものであり、分割の段階によって単なる換字式よりも興味深いものになっているからこそ、暗号課題の定番であり続けています。
現代の基準で見れば、この暗号は安全ではありません。分割は単純な頻度分析を無力化しますが、その基礎にあるモールス符号は強い統計的パターンを残します。そして、鍵が判明または推測された場合や、単に十分な量の暗号文があれば、意欲的な解読者やコンピューターがメッセージを復元できてしまいます。Morbitは、エンコードと換字を組み合わせることで暗号がどのように強化されるかを生き生きと示すパズルおよび教材として扱い、本当の秘密を守る手段として決して使わないでください。真の機密性が必要な場合は、AESのような現代的で専門家の検証を経たアルゴリズムを常に使ってください。
よくある質問
Morbit暗号とは何ですか?
なぜちょうど9つのペアになるのですか?
キーワードは何をするのですか?
具体例を見せてもらえますか?
Morbitメッセージはどうやってデコードしますか?
なぜ補填はドットやダッシュではなくxで行うのですか?
数字や句読点には対応していますか?
単語の代わりに9桁の数字を鍵として使えますか?
MorbitはFractionated Morseとどう違うのですか?
Morbit暗号は安全ですか?
私のテキストはサーバーにアップロードされますか?
関連ツール
こちらの便利なツールもどうぞ