Cryptology Academy · レッスン

AESとストリーム暗号におけるXOR

実際の暗号アルゴリズムでXORがどのように使われるかを追います。

レッスン 4/413 ステップ

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

ようこそ

XORは、現代のあらゆる暗号で使われる基本的な構成要素です。このレッスンでは、AESのAddRoundKeyやストリーム暗号のキーストリーム混合でXORがどのように使われるかを追っていきます。

AESにおけるXOR: AddRoundKey

AESには10~14ラウンドあります。各ラウンドはAddRoundKeyから始まり、16バイトのstateと16バイトのラウンド鍵をXORします。秘密鍵を実際に導入するのは、このステップだけです。

AESのラウンド鍵導出

元の128/192/256ビット鍵は、鍵スケジュールによって11/13/15個のラウンド鍵に拡張されます。各AddRoundKeyステップでは、異なる導出済みラウンド鍵を使用します。

AES内部でXORが機能する理由

AESでは、XORはGF(2^8)の算術の中で行われます。その周囲にある非線形操作(SubBytes、MixColumns)が、Claude Shannonの説明した拡散と混乱の性質をXORに与えます。

ストリーム暗号のキーストリーム

ストリーム暗号は、鍵とnonceから擬似乱数のキーストリームを生成します。 keystream = CSPRNG(key, nonce) ciphertext = plaintext XOR keystream ChaCha20はquarter-round関数を使い、64バイト単位でキーストリームを生成します。

ChaCha20のQuarter Round

ChaCha20のミキシング関数: a += b; d ^= a; d <<<= 16 c += d; b ^= c; b <<<= 12 a += b; d ^= a; d <<<= 8 c += d; b ^= c; b <<<= 7 XOR(^)とローテーション(<<<)が主要な操作です。

ストリーム暗号のNonceとCounter

ChaCha20は、256ビット鍵 + 96ビットnonce + 32ビットcounterを使用します。異なるcounterによって、異なるキーストリームブロックが生成されます。(key, nonce)の組を再利用すると壊滅的な結果になります。決して再利用しないでください。

AES-CTRモード: ブロック暗号をストリーム暗号として使う

AES-CTRは連続するcounterの値をAESで暗号化し、その結果を平文とXORします。これにより、ブロック暗号であるAESがストリーム暗号に変わり、任意の長さの出力を生成できます。

OFBおよびCFBモードにおけるXOR

OFB: keystream = AES(AES(AES(IV)...))。平文 XOR キーストリーム = 暗号文。 CFB: 暗号文ブロック = 平文 XOR AES(前の暗号文)。 どちらも混合ステップとしてXORを使用します。

XORとS-Boxによる混乱と拡散

Shannonのいう混乱とは、S-box(SubBytes)によって鍵と暗号文の関係を複雑にすることです。拡散では、ShiftRowsとMixColumnsによって各バイトの影響を広げます。XORはこの両方を鍵に結び付けます。

独自の暗号を作らないでください

XORの役割を理解すると、素人の暗号設計がなぜ失敗するのかが分かります。非線形層なしにXORを使うからです。S-boxと拡散がなければ、XORベースの暗号は代数的に簡単に破られます。

確認問題

stateとラウンド鍵を直接XORするAESの操作はどれですか?

まとめ

実際の暗号の内部でXORが果たす役割を理解しました。次はハッシュ関数について、MD5からSHA-256まで学びます。
無料で開始

AI チューターと学ぶ Cryptology Academy — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
67
レッスン
261

よくある質問

「AESとストリーム暗号におけるXOR」レッスンは無料ですか?

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

「AESとストリーム暗号におけるXOR」で何を学びますか?

実際の暗号アルゴリズムでXORがどのように使われるかを追います。 ブラウザで直接実行するハンズオンコードでCryptology Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「AESとストリーム暗号におけるXOR」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

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