T

Text Machine

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

換字式暗号ソルバー

単一換字式暗号やクリプトグラムを貼り付けるだけで、鍵を知らなくても元のメッセージを復元します。ソルバーはまず文字の出現頻度を合わせて初期の推測を作り、次に英語のトライグラムでスコアリングするシミュレーテッドアニーリングを使って26文字のアルファベットを探索し、最も英語らしく読める解を見つけます。すべてブラウザ内で動作します。

サンプルを試す:

暗号文

上に換字式暗号を貼り付けて「解く」を押すと、復元されたメッセージと換字アルファベットがここに表示されます。テキストが多いほど答えの信頼性が高まります。

換字式暗号ソルバー の使い方

  1. 1

    暗号文を貼り付ける

    換字式暗号やクリプトグラムをコピーして、ボックスに貼り付けます。テキストが多いほど確実に解読できます。文字は大文字・小文字を区別せずに読み取られ、スペース・数字・句読点は解読中は無視され、答えの中で復元されます。

  2. 2

    「解く」を押す

    「暗号を解く」をクリックします。探索は少しの間実行され — 何十万通りもの候補アルファベットを試します — その後、見つけた最も英語らしい読みを表示します。

  3. 3

    復元されたメッセージを読む

    復号されたテキストは、元の大文字小文字、スペース、句読点が復元された状態で表示されます。ワンクリックでコピーして結果を保存できます。

  4. 4

    復元されたアルファベットを確認する

    メッセージの下に、換字アルファベットが各暗号文字の復号先を示します。薄く表示された文字はあなたのテキストに一度も現れなかったため、ソルバーはそれらを配置できませんでした。アルファベットをコピーして、鍵を再利用または検証できます。

  5. 5

    共有またはクリア

    あなたの正確な暗号文でツールを再び開く共有可能なリンクをコピーします — テキストは URL のハッシュ以降の部分に乗り、その部分はサーバーに到達することはありません。「クリア」ですべてをリセットします。

換字式暗号の解読を解説

このツールができること

単一換字式暗号は、アルファベットのすべての文字を別の文字に置き換え — A は Q に、B は W になるかもしれません — メッセージ全体でその同じ並べ替えたアルファベットを使います。これは新聞のクリプトグラム、脱出ゲームのパズル、アメリカ暗号協会のアリストクラットの背後にある暗号です。可能なアルファベットは4億の100京を超え、一つずつ試すにはあまりに多すぎますが、それでも換字式暗号はあらゆる暗号の中で最も破りやすいものの一つです。このツールは鍵なしで、自動的にそれを破ります。

暗号文を貼り付けると、ソルバーは最も可能性の高い元のメッセージと、復元した完全な換字アルファベットを返します。経験豊富なパズル愛好家のやり方で動作します — 文字の頻度から始め、テキストがより英語らしく読めるように文字を入れ替え続けて、その変更を保持します — ただし1秒間に何十万回もそれを行います。何もブラウザの外に出ません。探索全体があなた自身のマシン上で動作します。

換字式暗号が破れる理由

換字式暗号はどの文字がどれであるかを隠しますが、各文字がどれだけ頻繁に使われるかは隠せません。英語では E が他のどの文字よりもはるかに一般的で、次いで T、A、O、I、N が続き、J、Q、X、Z はまれです。暗号化はそれらの頻度に貼り替えるだけです。E の代わりに立つ文字が何であれ、それが暗号文で最も一般的な文字になります。そのたった一つの事実 — 文字の頻度は換字を経ても残る — が、すべての暗号解読が築かれた鎧の隙間です。

頻度だけでは十分とは言えません。いくつかの文字は出現数が似ていて、誤って入れ替えられることがあるからです。より深い手がかりは、文字がどう組み合わさるかにあります。英語は特定のパターン — TH、HE、ING、THE、AND — を好み、他のものはほとんど完全に避けます。正しい復号はそうした自然なパターンに満ちており、誤ったものは本物の英語が決して使わない組み合わせだらけです。その違いを測ることこそ、無数のもっともらしく見える誤った答えの中から正しい答えをコンピューターが認識できる理由です。

ステップ1:頻度に合わせた初期の推測

ソルバーはまず、暗号文に各文字がどれだけ頻繁に現れるかを数え、それらの出現数を英語の既知の頻度順に並べます。暗号文で最も一般的な文字は E、次が T、続いて A、O、I、N とリストを下っていくと推測されます。これはすべてのクリプトグラムソルバーが手作業で学ぶ古典的な第一手です。

その推測が完璧であることはまれです — まれな文字は特に置き間違えられやすいものです — が、完璧である必要はありません。探索に妥当な出発点を与えるのに十分なほど近ければよいのです。そこからツールはアルファベットを1文字ずつ洗練し、メッセージが鮮明に浮かび上がるまで続けます。

ステップ2:シミュレーテッドアニーリングが鍵を見つける

初期の推測から、ソルバーは2つの文字の平文での意味を繰り返し入れ替え、メッセージが今より英語らしく読めるかを確認します。入れ替えが役立てば、それを保持します。問題は、常に即座の改善を求めると、探索が惜しい状態 — 局所最適解 — で行き詰まり、単一の入れ替えでは抜け出せなくなることです。換字式暗号の解読は、まさにこれを解決するシミュレーテッドアニーリングと呼ばれる技法の教科書的な事例です。

シミュレーテッドアニーリングは、状況を一時的に悪化させる入れ替えを時々受け入れます。その確率は高い値から始まり、徐々に下げられます — まるで探索が最初は熱く、ゆっくり冷えていくかのように。初期には自由に動き回って行き止まりから抜け出し、後半には落ち着いて、見つけた最良のアルファベットを磨き上げます。ツールはこれを異なる出発点から数回実行し、それぞれを厳密な改善のみのパスで仕上げ、唯一の最良の結果を保持します — だからこそ、単純な山登り法では見逃すであろう答えを確実に見つけられるのです。

ソルバーが英語らしさを判断する方法:トライグラム適合度

すべての候補アルファベットは、たった一つの数値 — そのトライグラム適合度 — によって採点されます。ツールは復号されたテキスト中の連続する3文字すべての並びを調べ、各三文字組が本物の英語でどれだけ起こりやすいかを、大量の英文から構築した三文字頻度表を使って合計します。THE、AND、ING のような一般的な三文字組は高得点になり、英語が決して使わない三文字組はひどい得点になります。

トライグラムが重要なのは、単一文字の頻度はあまりに簡単に騙されるからです — 誤った鍵が文字の出現数に一致しても、なお意味不明なままということがあります。信じられるような三文字の組み合わせをページ全体にわたって偽造するのははるかに困難です。すべての入れ替えをより高いトライグラム適合度へと導くことで、探索は1回の入れ替えごとに本物の英語へと引き寄せられます。この表はこのサイト自身の記事から生成されているため、外部から何も取得せず、ツールは高速かつプライベートなまま保たれます。

必要なテキスト量と、解読が難しくなる場合

換字式暗号の解読は統計的な作業なので、与えるテキスト量によって成否が分かれます。およそ150文字以上の通常の英語があれば、復元はたいていほぼ完璧です。約80〜100文字程度でも機能しますが、まれな文字 — ほとんど現れない J、Q、X、Z — が1〜2文字誤読されることがあります。それらを特定するための証拠が十分にないからです。約50文字を下回ると、人間であれ機械であれ、どんなソルバーもほとんど当て推量になります。

他にもメッセージを難しくする要因がいくつかあります。一般的な文字を意図的に避けるテキスト(パングラムのような)、英語ではない文章、あるいは文字を貼り替えるだけでなく並べ替えもする暗号などです。読みがほぼ正しく出てきた場合、答えはほぼ常により多くの暗号文か、頑固な1〜2文字を目視で修正することです。テキストが単純な換字式暗号ではまったくない場合は、暗号識別ツールが実際に何を見ているのかを教えてくれます。

換字式暗号とその仲間たち

単語の区切りを保つ単純な換字式暗号は、クリプトグラムの作成者がアリストクラットと呼ぶものです。スペースを取り除いた同じ暗号はパトリストクラットです。どちらも単一換字式 — メッセージ全体で一つの固定されたアルファベット — であり、どちらもここで紹介する方法に屈します。Caesar と Atbash は、特別なさらに単純な換字式暗号にすぎないので、このツールはそれらも破ります。ただし専用ページの方が即座に解いてくれます。

難易度が大きく跳ね上がるのが多表式暗号で、進むにつれてアルファベットを変えるため、同じ文字がいくつもの異なる文字を表すことができます。Vigenère 暗号が有名な例で、メッセージ全体に対する頻度分析はもはやそれには通用しません。あなたのメッセージがこのソルバーに抵抗し、文字の頻度が怪しいほど平坦に見える場合、それは多表式かもしれません — 代わりに Vigenère ソルバーを使ってください。

よくある質問

鍵なしで本当に換字式暗号を解けるのですか?
はい。換字式暗号はどの文字がどれであるかは隠しますが、各文字がどれだけ頻繁に使われるかは隠せません。そして英語の文字と三文字組の頻度は非常に特徴的です。ソルバーはそれらの頻度から始め、復号が最も英語らしく読めるアルファベットを探索し、事前に何も与えられることなくメッセージと鍵の両方を復元します。
これはどんな種類の暗号を解きますか?
単一換字式暗号を解きます — メッセージ全体で一つの固定された並べ替えたアルファベットが文字を置き換える種類です。これには新聞のクリプトグラム、アリストクラットとパトリストクラット、キーワードアルファベット暗号、そして Caesar や Atbash のような単純なものが含まれます。Vigenère のような、進むにつれてアルファベットを変える多表式暗号は解けません。
ソルバーはどのように動作しますか?
2段階です。まず暗号文の文字頻度を英語に合わせて初期の推測を作ります。次にシミュレーテッドアニーリングを使います — 2つの文字を繰り返し入れ替え、テキストをより英語らしくする入れ替えを保持しつつ、行き止まりから抜け出すために時々後退を受け入れます — これを三文字の組み合わせがどれだけ自然に見えるかでスコアリングします。これを数回実行し、最良の結果を保持します。
なぜ文字頻度ではなくトライグラムのスコアリングが使われるのですか?
単一文字の頻度は、なお意味不明なものを生み出す鍵でも一致させられるので、正しい答えを認識するにはそれだけでは不十分です。トライグラム適合度は3文字すべての並びを本物の英語に対して採点します。本物の英語では THE、AND、ING が一般的で、ほとんどの三文字組は極めてまれです。誤った鍵は不自然な三文字組を生み出して低い得点になり、それによって探索が本物の読みに絞り込めるのです。
クリプトグラムを解読するにはどれだけのテキストが必要ですか?
ほぼ完璧な解読には、少なくとも150文字の通常の英語を目安にしてください。約80〜100文字程度でもたいてい機能しますが、まれな文字が1〜2文字誤読されることがあります。約50文字を下回ると、どんなソルバーも確信を持てるだけの統計的証拠がめったにないため、部分的な読みしか期待できません。
結果はほぼ正しいのですが、いくつかの文字が間違っています。なぜですか?
J、Q、X、Z のようなまれな文字はとても少ししか現れないため、短いメッセージには自信を持って配置できるだけの数が含まれていないことがあり、頻度が似ている2つの文字が時々入れ替わることもあります。修正は通常、より多くの暗号文を与えるか、残りのメッセージが読めるようになった後で、迷子になった1〜2文字を目視で修正することです。
スペースを保持するクリプトグラム(アリストクラット)も解けますか?
はい。スペース・数字・句読点は出力で保持されますが解読中は無視されるので、単語の区切りは助けにも妨げにもなりません。あなたのパズルがスペースを保持していても(アリストクラット)、取り除いていても(パトリストクラット)、同じ頻度とトライグラムの方法でメッセージを復元します。
ソルバーは決定論的ですか?
はい。ランダム化された探索を使いますが、そのランダム性は固定されたシードで駆動されるので、同じ暗号文は常に同じ結果を生み出します。これはまた、共有リンクが開いた人すべてに対してまったく同じ解読を再現することも意味します。
英語にしか機能しませんか?
組み込みの頻度表とトライグラム表は英語を記述しているので、英語の平文に合わせて調整されています。別の言語のメッセージは、探索が成功してもたいてい意味不明なものとして出てきます。誤った統計に合わせているからです。英語以外のテキストには、その言語の頻度データが必要になります。
私の暗号文はサーバーに送信されますか?
いいえ。探索全体があなたのブラウザ内で動作するので、あなたのテキストがアップロード、記録、保存されることは決してありません。共有リンクでさえ、あなたの暗号文を URL のハッシュ以降の部分に保持します。その部分をブラウザがサーバーに送信することは決してないので、あなたが共有を選ばない限りプライベートに保たれます。
もし換字式暗号でまったくなかったらどうなりますか?
解読が意味不明なものとして出てきて、文字の頻度が異常に平坦に見える場合、そのメッセージは多表式、転置式、あるいはまったく別の何かかもしれません。暗号識別ツールを実行して何を扱っているのかを突き止め、それから一致するツールを使ってください — 例えば、繰り返し鍵の暗号には Vigenère ソルバーを使います。

関連ツール

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

暗号識別ツール

頻度分析

Unixタイムスタンプ変換

JSON ↔ CSV 変換

CSVをJSONに変換

JSON ↔ YAML 変換