Einsatzmöglichkeiten kryptographischer Methoden zur Signatur und ...

Einsatzmöglichkeiten kryptographischer Methoden zur Signatur und ... Einsatzmöglichkeiten kryptographischer Methoden zur Signatur und ...

iti.cs.tu.bs.de
von iti.cs.tu.bs.de Mehr von diesem Publisher
05.11.2013 Aufrufe

N b Z1 Z2 Z3 4 (128 Bit) 1 2 3 6 (192 Bit) 1 2 3 8 (256 Bit) 1 3 4 Tabelle 5-3: Zeilenverschiebung (ShiftRow) [DaRi1999] In der Matrix M werden nun die Bytes in den Zeilen nach links verschoben. Zeile 0: Zeile 1: Zeile 2: Zeile 3: keine Änderung verschiebe die Bytes um Z1 Positionen zyklisch nach links verschiebe die Bytes um Z2 Positionen zyklisch nach links verschiebe die Bytes um Z3 Positionen zyklisch nach links Im Fall von 192 Bit Blocklänge (N b =6) und mit Buchstaben als Bytes sieht das dann folgendermaßen aus: a g m s b h n t c i o u d j p v e k q w f l r x ShiftRow a h o v b i p w c j q x d k r s e l m t f g n u ShiftRow MixColumn - Transformation Die N b Spaltenvektoren (für N b =4: a 0 , a 1 , a 2 , a 3 ) von M bestehen jeweils aus 4 Bytes und werden als Polynome über GF(2 8 ) betrachtet und mit dem festen Polynom c(x) = 03h·x 3 + 01h·x 2 + 01h·x + 02h (beim Entschlüsseln mit dem Inversen Polynom d(x) = 0Bh·x 3 + 0Dh·x 2 + 09h·x + 0Eh) modulo x 4 +1 multipliziert (die Koeffizienten sind jeweils in Hexadezimalschreibweise angegeben). Die Polynommultiplikation modulo eines festen Polynoms lässt sich auch als Matrizenmultiplikation darstellen, bei der die Koeffizienten (von rechts nach links) in die unterste Zeile der Matrix geschrieben und jeweils in der darüber liegenden Zeile um eine Position zirkulär nach links verschoben werden: 31

0 02 b1 = 01 b2 01 3 b 03 03 02 01 01 01 03 02 01 01 a0 01 × a1 03 a2 02 3 a MixColumn AddRoundKey – Schlüsseladdition Zur Addition des Schlüssels wird der aktuelle Rundenschlüssel als Matrix betrachtet, die aus den jeweiligen Bits von RK besteht (in der 1. Runde RK 192 -RK 383, in der 2. RK 384 -RK 575 usw.). Die Addition erfolgt als Matrizenaddition, die mittels eines XOR realisiert werden kann. Im Fall von N b =6 (192 Bit Blocklänge) sieht das folgendermaßen aus: a a a a 0,0 1,0 2,0 3,0 a a a a 0,1 1,1 2,1 3,1 a a a a 0,2 1,2 2,2 3,2 b b b b a a a a 0,0 1,0 2,0 3,0 0,3 1,3 2,3 3,3 a a a a b b b b 0,4 1,4 2,4 3,4 0,1 1,1 2,1 3,1 a a a a b b b b 0,5 1,5 2,5 3,5 0,2 1,2 2,2 3,2 b b b b 0,3 1,3 2,3 3,3 k ⊕ k k k 0,0 1,0 2,0 3,0 b b b b 0,4 1,4 2,4 3,4 k k k k 0,1 1,1 2,1 3,1 b0,5 b 1,5 = b2,5 b3,5 k0,2 k k k 1,2 2,2 3,2 k k k k 0,3 1,3 2,3 3,3 k k k k 0,4 1,4 2,4 3,4 k k k k 0,5 1,5 2,5 3,5 AddRoundKey 32

N b Z1 Z2 Z3<br />

4 (128 Bit) 1 2 3<br />

6 (192 Bit) 1 2 3<br />

8 (256 Bit) 1 3 4<br />

Tabelle 5-3: Zeilenverschiebung (ShiftRow) [DaRi1999]<br />

In der Matrix M werden nun die Bytes in den Zeilen nach links verschoben.<br />

Zeile 0:<br />

Zeile 1:<br />

Zeile 2:<br />

Zeile 3:<br />

keine Änderung<br />

verschiebe die Bytes um Z1 Positionen zyklisch nach links<br />

verschiebe die Bytes um Z2 Positionen zyklisch nach links<br />

verschiebe die Bytes um Z3 Positionen zyklisch nach links<br />

Im Fall von 192 Bit Blocklänge (N b =6) <strong>und</strong> mit Buchstaben als Bytes sieht das dann<br />

folgendermaßen aus:<br />

a<br />

<br />

<br />

g<br />

m<br />

<br />

s<br />

b<br />

h<br />

n<br />

t<br />

c<br />

i<br />

o<br />

u<br />

d<br />

j<br />

p<br />

v<br />

e<br />

k<br />

q<br />

w<br />

f <br />

l<br />

<br />

<br />

r <br />

<br />

x<br />

<br />

ShiftRow<br />

a<br />

<br />

<br />

h<br />

o<br />

<br />

v<br />

b<br />

i<br />

p<br />

w<br />

c<br />

j<br />

q<br />

x<br />

d<br />

k<br />

r<br />

s<br />

e<br />

l<br />

m<br />

t<br />

f <br />

g<br />

<br />

<br />

n<br />

<br />

u<br />

ShiftRow<br />

MixColumn - Transformation<br />

Die N b Spaltenvektoren (für N b =4: a 0 , a 1 , a 2 , a 3 ) von M bestehen jeweils aus 4 Bytes<br />

<strong>und</strong> werden als Polynome über GF(2 8 ) betrachtet <strong>und</strong> mit dem festen Polynom c(x) =<br />

03h·x 3 + 01h·x 2 + 01h·x + 02h (beim Entschlüsseln mit dem Inversen Polynom d(x)<br />

= 0Bh·x 3 + 0Dh·x 2 + 09h·x + 0Eh) modulo x 4 +1 multipliziert (die Koeffizienten sind<br />

jeweils in Hexadezimalschreibweise angegeben).<br />

Die Polynommultiplikation modulo eines festen Polynoms lässt sich auch als Matrizenmultiplikation<br />

darstellen, bei der die Koeffizienten (von rechts nach links) in die<br />

unterste Zeile der Matrix geschrieben <strong>und</strong> jeweils in der darüber liegenden Zeile um<br />

eine Position zirkulär nach links verschoben werden:<br />

31

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!