0Pricing
Cryptology Academy · レッスン

XORだけでは安全でない理由

脆弱なXOR暗号に対する鍵再利用攻撃とcrib-draggingを学びます。

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

ようこそ

このレッスンでは理論を超えて、XOR暗号に対する具体的な攻撃を実演します。扱う攻撃は、鍵の再利用、既知平文攻撃、クリブドラッグ攻撃です。

弱い鍵再利用のシナリオ

Webアプリが同じXOR鍵でセッション・トークンを暗号化しているとします。攻撃者は暗号化された2つのトークンを取得します。これらをXORすると鍵が相殺され、C1^C2 = P1^P2となります。

既知平文攻撃

P1が既知の場合、K = P1 XOR C1によって鍵を求められます。同じKで暗号化された他の暗号文は、Pi = Ci XOR Kで復号できます。1つの既知平文によって、システム全体が破られます。

クリブドラッグ攻撃 1

P1が未知の場合、「the 」のような一般的な英語のフレーズ(クリブ)を推測します。各位置でクリブをP1^P2とXORします。P2に読みやすいテキストが現れれば、クリブはその位置にあったことになります。

クリブドラッグ攻撃 2

明らかになったP2のテキストを新しい、より長いクリブとして使い、XORストリームをさらに先へずらします。発見した各単語が、次の単語を見つける手がかりになります。多くの場合、数分でメッセージ全体を復元できます。

統計的な鍵復元

同じ鍵を使った暗号文が多数ある場合、XORの出力が0になる位置では、その位置のPi = Pjが成り立ちます。多数のメッセージを揃えることで、鍵のバイトを1つずつ明らかにできます。

短い繰り返しXOR鍵

メッセージより短い鍵は繰り返されます。これをVigenère暗号のように扱い、IoCを使って鍵長を特定し、各位置を個別に頻度分析します。数秒で破られてしまいます。

選択平文攻撃

攻撃者が任意の平文を暗号化できる場合、P=0x00...00を送信します。するとCから鍵を直接得られます。または既知の値をPとして送信すれば、任意の位置でK = P XOR Cを求められます。

ビット反転攻撃

MACのないXOR暗号ではビット反転が可能です。暗号文のビットiを反転すると、平文のビットiも反転します。攻撃者は鍵を知らなくても、暗号化されたデータを改変できます。

AESだけでは不十分な理由

AESのECBモードは決定的です。同じブロックは常に同じように暗号化されます。認証なしのCTRモードではビット反転が可能です。必ず認証付き暗号(AES-GCM)を使用してください。

防御策: 認証付き暗号

認証付き暗号(AE)は、暗号化とMACを組み合わせます。暗号文が改変されると、復号前のMAC検証で失敗します。AES-GCMなどのAEAD方式はビット反転を防ぎます。

確認問題

攻撃者が、同じ鍵でXOR暗号化された2つのメッセージを持っています。暗号文同士をXORすると何が明らかになりますか?

まとめ

適切な鍵管理と認証がなければXORが破綻することを学びました。次は、AESや現代のストリーム暗号の内部でXORがどのように正しく使われているかを見ていきます。

よくある質問

「XORだけでは安全でない理由」レッスンは無料ですか?

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

「XORだけでは安全でない理由」で何を学びますか?

脆弱なXOR暗号に対する鍵再利用攻撃とcrib-draggingを学びます。 ブラウザで直接実行するハンズオンコードでCryptology Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「XORだけでは安全でない理由」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

  1. ビット演算の復習
  2. XOR暗号とワンタイムパッド
  3. XORだけでは安全でない理由
  4. AESとストリーム暗号におけるXOR
← Cryptology Academyに戻る