Cryptology Academy · レッスン

AESの鍵拡張と鍵長

128、192、256ビット鍵と鍵スケジュールの仕組みを学びます。

レッスン 3/413 ステップ

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

ようこそ

AESは、Key Scheduleによって短い鍵を複数のラウンド鍵に拡張します。鍵がすべてのラウンドにどのように行き渡るのかを理解するうえで、これは欠かせない知識です。

なぜ鍵を拡張するのか

AES-128には10ラウンドと、初期のAddRoundKeyがあります。そのため、11個のラウンド鍵×16バイト、合計176バイトが必要です。Key Scheduleは16バイトのマスターキーを、この完全な鍵素材に拡張します。

Key Scheduleのワード

Key Scheduleは4バイトのワード単位で動作します。AES-128は、元の鍵から4ワード(W[0..3])を作ります。そこからW[4..43]を生成し、44ワード=176バイト=11個×128ビットのラウンド鍵となります。

SubWord

SubWordは、ワード内の4バイトそれぞれにAES S-boxを個別に適用します。鍵拡張に非線形性をもたらし、関連鍵攻撃を防ぎます。

RotWord

RotWordは、4バイトのワードを左に巡回シフトします。 [a, b, c, d] → [b, c, d, a] これにより、鍵拡張中に同じ32ビットワードが繰り返されないようにします。

ラウンド定数(Rcon)

Rcon[i] = [2^(i-1), 0, 0, 0](GF(2^8)上)。鍵拡張中、4ワードごとにXORします。これにより各ラウンド鍵が異なるものになり、スライド攻撃を防ぎます。

鍵拡張の公式

i ≥ 4 の場合: if i % 4 == 0: W[i] = W[i-4] XOR SubWord(RotWord(W[i-1])) XOR Rcon[i/4] else: W[i] = W[i-4] XOR W[i-1]

AES-192とAES-256のスケジュール

AES-192:入力6ワードから52ワードを生成(12+1ラウンド)。AES-256:入力8ワードから60ワードを生成(14+1ラウンド)。AES-256では、8ワードごとにSubWordが追加で適用されます。

鍵サイズの安全性

AES-128は128ビットのセキュリティ(2^128通りの総当たり)を提供します。AES-256は256ビットのセキュリティを提供します。量子攻撃者に対しても、AES-256は128ビットのセキュリティを維持します(Groverのアルゴリズムによって半分になります)。

AESの鍵長を選ぶ

現在のほとんどのアプリケーションでは、AES-128で十分です。長期的に保護する秘密情報、機密データ、またはポスト量子暗号を想定する場合はAES-256を使用します。AES-192は実際にはほとんど使われません。

パスワードからの鍵導出

パスワードをAES鍵として直接使ってはいけません。KDFを使用してください。key = PBKDF2(password, salt, 600000, 32, SHA256) または key = Argon2id(password, salt, mem=65536, t=3, p=4) のようにします。

理解度チェック

初期のAddRoundKeyを含めると、AES-128にはいくつのラウンド鍵が必要ですか?

まとめ

AESの鍵展開を習得しました。次はすべてを組み合わせ、PythonとOpenSSLを使って実際のファイルをAESで暗号化します。
無料で開始

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

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

コース
67
レッスン
261

よくある質問

「AESの鍵拡張と鍵長」レッスンは無料ですか?

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

「AESの鍵拡張と鍵長」で何を学びますか?

128、192、256ビット鍵と鍵スケジュールの仕組みを学びます。 ブラウザで直接実行するハンズオンコードでCryptology Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「AESの鍵拡張と鍵長」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

  1. 対称暗号の概念
  2. AESの構造:ラウンドと状態行列
  3. AESの鍵拡張と鍵長
  4. 実践:AESによるファイル暗号化
← Cryptology Academyに戻る