このツールについて
一致指数(IoC)計算ツールは、古典的な暗号解読の統計量を計算します。テキストからランダムに引いた2文字が同じである確率です。入力を文字のみにフィルタし、大文字化し、26文字それぞれ n_i を総文字数 N のうちでカウントし、IC = Σ n_i·(n_i − 1) / (N·(N − 1)) を評価します。正規化IC = IC × 26 も報告します。これは一様乱数テキストが約1.0、英語平文が約1.73になるようにスケールされています。
これらの参照値こそがIoCを有用にしています。英語平文は文字分布が均一からほど遠いため、ICは約0.0667(正規化 ≈ 1.73)です。一方、一様乱数やよく混ざった多表式暗号文は約0.0385(正規化 ≈ 1.00)に下がります。単表式換字は平文のICを保つため、高いICは単純な暗号を示し、低いICはVigenèreのような多表式暗号を示します。
Vigenère鍵長の復元では、最大鍵長を入力して列スキャンを実行します。ツールは各候補kについてテキストをk列に分割し、それらの列にわたる平均ICを計算し、平均が英語の値に最も近いkをフラグ付けします — それが有力な鍵長です。真の周期で分割すると単表式の列に再構成されるためです。すべては決定論的で、ブラウザ内でオフラインに計算されます。アップロードは一切ありません。
よくある質問
一致指数は何を教えてくれますか?
文字分布がどれだけ偏っているかを測ります。英語平文はICが約0.0667(正規化 ≈ 1.73)です。乱数や多表式暗号文は約0.0385(正規化 ≈ 1.00)に下がります。高いICは平文または単表式暗号を示唆し、低いICはVigenèreのような多表式暗号を示唆します。
正規化ICはなぜ有用ですか?
生のICを26倍すると、一様乱数テキストが約1.0、英語が約1.73になるように再スケールされ、直感的な参照が得られます。小さい生の小数を覚えなくても「英語にどれだけ近いか」を読み取りやすくなります。
列スキャンはどのように鍵長を推定しますか?
各候補鍵長kについてテキストをk列(k番目ごとの文字)に分割し、列の平均ICを計算し、平均が英語(約0.0667)に最も近いkをフラグ付けします。真のVigenère周期では各列が単一のシーザーシフト(単表式)になるため、そのICは英語の値に向かって上昇します。
句読点や大文字小文字は結果に影響しますか?
いいえ。ツールは文字以外をすべて取り除き、残りを大文字化してからカウントするため、スペース、数字、句読点は無視されます。A〜Zの26文字だけがNと文字カウントに寄与します。