0Pricing
Cryptology Academy · レッスン

Vigenère暗号と多表式暗号

複数のアルファベットで頻度分析を打ち破る仕組みを理解します。

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

ようこそ

Vigenère暗号は、繰り返しキーワードを鍵として複数のCaesarアルファベットを順番に使用することで、300年間にわたって頻度分析を打ち破りました。

基本概念

鍵を'KEY'、平文を'HELLO'とすると、H+K=R、E+E=I、L+Y=J、L+K=V、O+E=Sとなり、暗号文は'RIJVS'です。同じ平文文字でも、位置によって異なる文字に暗号化されます。

Vigenère方陣

Tabula Rectaは、各行が1文字ずつずれたアルファベットの26×26の表です。鍵の文字に対応する行と、平文の文字に対応する列を調べると、暗号文の文字が見つかります。

頻度分析を打ち破った理由

鍵が'CAT'(長さ3)の場合、文字'E'は位置によって'G'、'E'、または'Y'になります。頻度分布が平坦になるため、単純な分析では解読できません。

Pythonによる実装

def vigenere(text, key, encrypt=True): result, ki = '', 0 for c in text.upper(): if c.isalpha(): shift = ord(key[ki % len(key)].upper()) - 65 if not encrypt: shift = -shift result += chr((ord(c) - 65 + shift) % 26 + 65) ki += 1 else: result += c return result

カシスキテスト

カシスキ(1863)は、暗号文に現れる繰り返しパターンから鍵長が分かることに気づきました。平文の繰り返し+鍵の繰り返し=暗号文の繰り返しです。繰り返し間の距離は鍵長で割り切れます。

一致指数

IoCは文字頻度の分布を測定します。ランダムなテキストのIoCは約0.038、英語では約0.065です。異なる鍵長を試してIoCを測定すると、正しい鍵長が分かります。

ヴィジュネル暗号を段階的に解読

1. カシスキテストまたはIoCで鍵長を見つけます。2. 鍵長ごとに暗号文をグループに分割します。3. 各グループはシーザー暗号なので、それぞれに頻度分析を適用します。

ランニングキー暗号

鍵がメッセージと同じ長さで、繰り返されない場合(Beaufort / running key)、カシスキテストは機能しません。鍵が本当にランダムなら、ワンタイムパッドとなり、解読不可能です。

オートキー方式

Autokey暗号では、短い初期鍵で鍵を始め、そこに平文自体を続けて追加します。これにより繰り返しを避けられますが、既知平文攻撃には依然として破られます。

実用的な安全性の評価

短い鍵を使うヴィジュネル暗号は、現在では簡単に解読できます。歴史的に重要なのは、複数のアルファベットを使うと頻度分析に限界があることを示した点です。

確認問題

カシスキは、ヴィジュネル暗号の鍵長を見つけるためにどのような手法を使いましたか?

まとめ

すばらしい成果です!ヴィジュネル暗号と、その解読方法を習得しました。次は、暗号解読に広く使われる手法として、頻度分析をさらに詳しく学びます。

よくある質問

「Vigenère暗号と多表式暗号」レッスンは無料ですか?

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

「Vigenère暗号と多表式暗号」で何を学びますか?

複数のアルファベットで頻度分析を打ち破る仕組みを理解します。 ブラウザで直接実行するハンズオンコードでCryptology Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「Vigenère暗号と多表式暗号」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

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