T

Text Machine

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

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

    エンコードかデコードかを選ぶ

    平文をMorbit暗号の数字に変換するにはエンコードを、暗号の数字を平文に戻すにはデコードを選びます。

  2. 2

    鍵を設定する

    9文字のキーワードか、1〜9を並べ替えた9桁の数字を入力します。鍵によって、各モールス符号のペアがどの数字になるかが決まります。両者が一致するよう、送信側と受信側は同じ鍵を使う必要があります。

  3. 3

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

    メッセージを入力すると、入力に合わせて変換されます。エンコード時には、手順パネルが各文字とそのモールス符号を上下に並べて示し、続いて並びがペアに分割され、それぞれの下に数字が表示されます。

  4. 4

    ペア表を確認する

    ペア表を開くと、現在の鍵のもとで9つのモールス符号ペアそれぞれが対応する数字を確認できます。

  5. 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暗号とは何ですか?
これは、モールス符号を1から9までの数字の並びの中に隠す手書き暗号です。メッセージは、文字をxで、単語をxxで区切ってモールス符号で書き表し、ドット・ダッシュ・xの並びを2記号ずつ読み取り、9通りの各ペアを鍵で定めた表の数字に置き換えます。ペアが単一の文字と揃うことはまれなので、各暗号の数字は隣接する文字の一部分が混ざり合ったものになります。
なぜちょうど9つのペアになるのですか?
メッセージがモールス符号になった後、使われる記号はドット、ダッシュ、区切り記号のxという3つだけです。2つずつ読み取ると、ドット・ドットからx・xまで 3 × 3 = 9 通りの組み合わせになります。それらを表すのにちょうど1から9までの9つの数字があるので、すべてのペアにそれぞれ専用の数字が割り当てられ、余りも不足もありません。
キーワードは何をするのですか?
キーワードは、9つのペアそれぞれがどの数字になるかを定めます。9文字の単語を取り、その文字をアルファベット順に1から9まで番号付けし、同じ文字は左から順に割り当てます。その並べ替えを、決まった順序の9つのペアに対応させて読み取ります。キーワードがなければ、ペアは単純に順番どおりに1から9までの数字を取ります。そのため、キーワードは送信側と受信側の双方が使わなければならない共有された秘密なのです。
具体例を見せてもらえますか?
キーワードMORSECODEを使うと、フレーズMORE BITSは数字32379749578158になります。メッセージはまず27記号の並びとしてモールス符号で書かれ、1つのxで28に補填され、続いてペアごとに読み取られて、各ペアがMORSECODEの鍵(ペアを 5, 6, 8, 9, 3, 1, 7, 2, 4 と番号付けします)によって数字に変換されます。
Morbitメッセージはどうやってデコードしますか?
手順を逆にたどります。各数字を照合してそのモールス符号のペアを得て、それらのペアを1つのドット・ダッシュ・xの並びにつなぎ、それを区切り記号で分割し(文字の間は1つのx、単語の間は2つのxx)、ドットとダッシュの各まとまりをモールス符号の表を通して読み戻します。このツールでは、デコードを選び、エンコードに使われたのと同じ鍵を入力します。
なぜ補填はドットやダッシュではなくxで行うのですか?
モールス符号の並びの記号数が奇数の場合、最後のペアを完成させるためにもう1つ追加されます。xで補填するとうまくいくのは、xが区切り記号だからです。末尾の区切り記号は、単に最後の文字または単語の終わりを表すだけで、メッセージがデコードされると消えてなくなります。ドットやダッシュで補填すると、代わりに本物のモールス記号として読み戻され、誤った余分な文字が加わってしまう可能性があります。
数字や句読点には対応していますか?
文字と数字はエンコードされます。どちらも標準的なモールス符号を持つからです。句読点やその他の記号は取り除かれ、連続するスペースは1つの単語の区切りになります。つまり、「it's」のような短縮形は単一の単語ITSとして扱われ、これはこの暗号の一般的な参照実装と一致します。
単語の代わりに9桁の数字を鍵として使えますか?
はい。1から9までの数字をそれぞれちょうど1回ずつ使って並べ替えた9桁の数字を入力すると、それがそのままペアから数字への割り当てとして使われます。9文字のキーワードは、同じ種類の並べ替えを覚えやすくするための、より親しみやすい方法にすぎません。有効な9桁の並べ替えでも9文字の単語でもないものを入力した場合は、通常の1〜9の順序が使われます。
MorbitはFractionated Morseとどう違うのですか?
どちらもまずメッセージをモールス符号で書き、ドット・ダッシュ・xの並びを分割しますが、Morbitはその並びを2記号ずつ読み取って1から9までの数字を出力するのに対し、Fractionated Morseは3記号ずつ読み取ってAからZまでの文字を出力します。したがって、Morbitは数字の暗号文を生成するのに対し、Fractionated Morseは文字を生成します。
Morbit暗号は安全ですか?
いいえ。分割は単純な頻度集計を無力化しますが、その基礎にあるモールス符号は強い統計的パターンを残します。そして、特に鍵が推測されたり再利用されたり、十分な量の暗号文が手に入る場合、この暗号は古典的な解読手法やコンピューターによって破られてしまいます。パズルや学習には優れていますが、本当の保護にはAESのような現代的なアルゴリズムを使ってください。
私のテキストはサーバーにアップロードされますか?
いいえ。すべてのエンコードとデコードは完全にあなたのブラウザ内で行われるため、あなたのテキストがアップロード・記録・保存されることは一切ありません。共有リンクでさえ、あなたのテキストと鍵はURLの#記号より後ろの部分に保持され、ブラウザはその部分をサーバーに送信することはありません。そのため、あなたがリンクを共有することを選ぶまで、メッセージは非公開のまま保たれます。

関連ツール

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

フラクショネイテッド・モールス暗号

ポルックス暗号

ストラドリング・チェッカーボード

モールス信号変換

シーザー暗号

ヴィジュネル暗号