0Pricing
Cryptology Academy · レッスン

頻度分析と暗号解読の基礎

文字頻度の統計を使って古典暗号を解読します。

「頻度分析と暗号解読の基礎」はCoddyKit上の無料Cryptology Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCryptology Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cryptology Academyコースには全4レッスンが含まれています。

ようこそ

頻度分析とは、言語に現れる統計的パターンを利用して換字式暗号を解読する技術です。これは西暦850年に発見され、現在でも重要です。

英語の文字頻度

英語で最も頻繁に現れる文字(概算)は、E(12.7%)、T(9.1%)、A(8.2%)、O(7.5%)、I(7.0%)、N(6.7%)です。暗号文の12%にXが現れるなら、XはEを表している可能性が高いです。

頻度表の作成

from collections import Counter def freq_table(text): letters = [c for c in text.upper() if c.isalpha()] counts = Counter(letters) total = len(letters) return {k: v/total for k,v in counts.most_common()}

バイグラムとトライグラム

英語でよく現れるバイグラム:TH、HE、IN、ER、AN。よく現れるトライグラム:THE、AND、ING、ION。これらのパターンは換字式暗号でも残るため、復号を速められます。

一致指数(IoC)

IoC = Σ(n_i * (n_i-1)) / (N*(N-1))。英語のIoCは約0.065、ランダムなテキストのIoCは約0.038です。IoCが高いことは、単一換字式暗号である可能性を示します。

ヴィジュネル暗号へのIoCの適用

鍵長を1..20まで試します。各長さkについて、暗号文をk個のグループに分割します。平均IoCを計算します。正しい鍵長では、IoCが0.065に最も近くなります。

頻度分析によるシーザー暗号攻撃

シーザー暗号では、最も頻繁に現れる暗号文の文字(Eである可能性が高い)を見つけます。シフト = (most_frequent - ord('E')) mod 26。復号して、読みやすい文になっているか確認します。

単語のパターン

短い単語からはパターンが分かります。1文字の単語は通常、AまたはIです。'the_'パターンで始まる3文字の単語は、'the'であることが多いです。これらの情報により、換字をすばやく絞り込めます。

手作業による攻撃手順

1. 頻度を数えます。2. 頻度の高い暗号文の文字を、英語で頻度の高い文字(E、T、A、O、I)に対応付けます。3. バイグラムや単語のパターンを使って空白を埋めます。4. 読める文章になるまで繰り返します。

現代における重要性

開発者が暗号プリミティブを誤って使うと、頻度分析によって現代の暗号方式も攻撃されます(例:ECBモードではブロックのパターンが漏れます)。この原理を理解すると、設計ミスを防げます。

自動暗号解読

dcode.frやquipqiup.comなどのツールは、辞書のパターンと山登りアルゴリズムを使って換字式暗号への攻撃を自動化し、100文字の暗号文なら数秒で解読します。

確認問題

高い一致指数(約0.065)は、暗号文について何を示しますか?

まとめ

よくできました!頻度分析は暗号解読の基本です。次は現代暗号に進み、数体系とモジュラー算術を学びます。

よくある質問

「頻度分析と暗号解読の基礎」レッスンは無料ですか?

はい。「頻度分析と暗号解読の基礎」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cryptology Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cryptology Academyコースには全4レッスンが含まれています。

「頻度分析と暗号解読の基礎」で何を学びますか?

文字頻度の統計を使って古典暗号を解読します。 ブラウザで直接実行するハンズオンコードでCryptology Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Cryptology Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのCryptology Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「頻度分析と暗号解読の基礎」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このCryptology Academyレッスンでコードを書いて実行できますか?

はい。すべてのCryptology Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. シーザー暗号の仕組み
  2. AtbashとAffine暗号
  3. Vigenère暗号と多表式暗号
  4. 頻度分析と暗号解読の基礎
← Cryptology Academyに戻る