0Pricing
Cryptology Academy · レッスン

AESの構造:ラウンドと状態行列

SubBytes、ShiftRows、MixColumns、AddRoundKeyの処理を順に確認します。

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

ようこそ

AESは、Stateと呼ばれる4×4のバイト行列を処理する置換・転置ネットワークです。各ラウンドでは、4つの操作を適用してStateを変換します。

State行列

AESは16バイトの平文を、Stateと呼ばれる4×4のグリッドに読み込みます。 [b0 b4 b8 b12] [b1 b5 b9 b13] [b2 b6 b10 b14] [b3 b7 b11 b15] すべての操作がこの行列を変換します。

ラウンド数

AES-128:10ラウンド。AES-192:12ラウンド。AES-256:14ラウンド。各ラウンドでは、SubBytes、ShiftRows、MixColumns、AddRoundKeyを適用します。ただし、最後のラウンドではMixColumnsを省略します。

SubBytes:非線形置換

SubBytesは、各バイトをAES S-boxの値に置き換えます。AES S-boxは、GF(2^8)上の逆元を使って構成された、256個のエントリを持つ固定のルックアップテーブルです。これがAESの非線形性と攪乱を生み出します。

AES S-box

S-boxは0x00→0x63、0x01→0x7C、...のように対応付けます。各入力バイトは一意の出力バイトに対応します。復号では逆S-boxを使って元に戻します。どのバイトも自分自身には対応しません(逆変換では0x63が0x00に対応します)。

ShiftRows:行の置換

ShiftRowsは、Stateの各行を巡回シフトします。 行0:シフトなし。行1:左に1。行2:左に2。行3:左に3。 これにより、次のMixColumnsの段階でバイトが異なる列に分散されます。

MixColumns:列の拡散

MixColumnsは、4バイトの各列をGF(2^8)上の多項式として扱い、固定行列を掛け合わせます。各出力バイトは4つの入力バイトすべてに依存するため、拡散が実現されます。

AddRoundKey

AddRoundKeyは、元の鍵から導出した16バイトのラウンド鍵とStateのXORを取ります。これは秘密鍵を使う唯一のステップであり、機密性をもたらす唯一のステップです。

ラウンド構造

初期処理:AddRoundKey ラウンド1..N-1:SubBytes → ShiftRows → MixColumns → AddRoundKey 最終ラウンド:SubBytes → ShiftRows → AddRoundKey(MixColumnsなし) 復号では、逆の順序で逆変換を適用します。

Wide-Trail戦略

AESの設計者は、差分解析と線形解析への耐性を証明するためにWide-Trail戦略を使用しました。4ラウンド後には、どの攻撃でも2^128通りの可能性を調べる必要があります。

AESのハードウェアサポート

最新のCPU(Intel、AMD、ARM)にはAES-NI命令(AESENC、AESENCLAST、AESDEC)が搭載されています。1つのCPU命令でAESの1ラウンドを実行できるため、AESはハードウェア上で非常に高速です。

クイックチェック

代数攻撃を防ぐ非線形性(攪乱)をもたらすAESの操作はどれですか?

まとめ

AESの構造を理解できました。次は鍵拡張を学び、128ビットの鍵がどのように11個のラウンド鍵になるのかを見ていきます。

よくある質問

「AESの構造:ラウンドと状態行列」レッスンは無料ですか?

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

「AESの構造:ラウンドと状態行列」で何を学びますか?

SubBytes、ShiftRows、MixColumns、AddRoundKeyの処理を順に確認します。 ブラウザで直接実行するハンズオンコードでCryptology Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「AESの構造:ラウンドと状態行列」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

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