AES-Schlüsselplan - AES key schedule

AES verwendet einen Schlüsselplan , um einen kurzen Schlüssel in eine Reihe von separaten runden Schlüsseln zu erweitern. Die drei AES-Varianten haben eine unterschiedliche Rundenanzahl. Jede Variante erfordert einen separaten 128-Bit-Rundenschlüssel für jede Runde plus einen weiteren. Der Schlüsselplan erzeugt die benötigten Rundenschlüssel aus dem Anfangsschlüssel.

Rundenkonstanten

Werte von rc i in Hexadezimal
ich 1 2 3 4 5 6 7 8 9 10
rc ich 01 02 04 08 10 20 40 80 1B 36

Die Rundenkonstante rcon i für Runde i der Schlüsselerweiterung ist das 32-Bit-Wort:

wobei rc i ein Acht-Bit-Wert ist, der wie folgt definiert ist:

Dabei ist der bitweise XOR- Operator und Konstanten wie 00 16 und 11B 16 werden hexadezimal angegeben . Äquivalent:

wobei die Bits von rc i als Koeffizienten eines Elements des endlichen Körpers behandelt werden , so dass zB das Polynom repräsentiert .

AES verwendet bis zu rcon 10 für AES-128 (da 11 runde Schlüssel benötigt werden), bis zu rcon 8 für AES-192 und bis zu rcon 7 für AES-256.

Der wichtigste Zeitplan

AES-Schlüsselzeitplan für einen 128-Bit-Schlüssel.

Definieren:

  • N als Länge des Schlüssels in 32-Bit-Wörtern: 4 Worte für AES-128, 6 Worte für AES-192 und 8 Worte für AES-256
  • K 0 , K 1 , ... K N -1 als die 32-Bit-Wörter des Originalschlüssels
  • R als Anzahl der benötigten Rundschlüssel: 11 Rundschlüssel für AES-128, 13 Schlüssel für AES-192 und 15 Schlüssel für AES-256
  • W 0 , W 1 , ... W 4 R -1 als die 32-Bit-Wörter des erweiterten Schlüssels

Definieren Sie RotWord auch als kreisförmige Verschiebung nach links um ein Byte :

und SubWord als Anwendung der AES S-Box auf jedes der vier Bytes des Wortes:

Dann für :

Anmerkungen

Verweise

Externe Links