Kryptografi og nettverkssikkerhet Kapittel 5: Advanced Encryption Standard
Truls Fretland September 2004 Kort historie Publisert av NIST (National Institute of Standards and Technology) i 2001. En erstatning for 3DES som tiltross for at den er sikker nok (168-bits nøkkellengde) har: Lav hastighet (optimalisert for maskinvare) 64-bits blokkstørrelse (ineffektivt) Etter en innledende runde med 15 algoritmer, og finale med 5 algoritmer ble ”Rijndael” (Rijmen og Daemen fra Belgia) valgt. Truls Fretland September 2004
Truls Fretland September 2004 Krav til AES Symmetrisk blokkchiffer Blokkstørrelse: 128 bit Nøkkellengde: 128, 192, 256 bit Raskere og bedre eller like bra sikkerhet som 3DES Truls Fretland September 2004
Evalueringskriterier for AES Sikkerhet Kostnad: Lav, i form av høy hastighet Algoritme og implementasjons-karakteristikker: Fleksibel: Skal kunne benyttes i mange ulike implementasjoner på flere platformer. Enkelhet: Skal være enkel å analysere. Truls Fretland September 2004
Truls Fretland September 2004 Rijndael Designet av Rijmen-Daemen fra Belgia. Blokkstørrelse og nøkkellengde kan uavhengig spesifiseres til 128, 192, 256 bits. Iterativt chiffer (ikke Feistel), dvs. opererer på en hel blokk hver runde. Behandler data i 4 grupper á 4 bytes. Designet for å være: Motstandsdyktig mot alle kjente angrep. Hastighet og kompakt kode på mange plattformer. Enkelt design. I Feistel brukes halvparten av blokken til å modifisere den andre halvdelen, for deretter å bytte plass. Truls Fretland September 2004
Truls Fretland September 2004 AES-chifferet Har 10/12/14 runder. Hver runde (bortsett fra siste) inneholder 4 trinn: Byte substitusjon (S-box på hver byte). Radskifte (permuterer bytes) Kolonneblanding (ved matrisemultiplikasjon) Legge til rundenøkkel (bitvis XOR med tilstand) Alle operasjonene kan implementeres som XOR og tabell-oppslag – dermed veldig rask og effektiv. Aritmetikken foregår i GF(28) med det irredusible polynomet m(x) = x8 + x4 + x3 + x + 1. Truls Fretland September 2004
Truls Fretland September 2004 Hvert trinn er reversibelt. De utvidede nøklene brukes i motsatt rekkefølge. Truls Fretland September 2004
Byte substitusjon (S-box) En enkel substitusjon av hver byte. Bruker en tabell (S-box) med 16x16 bytes som inneholder en permutasjon av alle 256 8-bits verdiene. Hver byte (b1b2b3b4b5b6b7b8) i tilstanden erstattes med en byte som hentes fra rad (b1b2b3b4) og kolonne (b5b6b7b8). Eks. byte {95} erstattes med byte i rad 9, kolonne 5, som har verdien {2A}. S-box’en konstrueres ved å bruke definerte transformasjoner av verdiene i GF(28). Designet for å motstå alle kjente angrep. Truls Fretland September 2004
Truls Fretland September 2004 Radskifte Et sirkulært byte-skifte i hver rad: 1. rad: Uforandret 2. rad: 1 byte sirkulær-skift til venstre. 3. rad: 2 byte sirkulær-skift til venstre. 4. rad: 3 byte sirkulær-skift til venstre. Dekryptering skifter til høyre. Truls Fretland September 2004
Truls Fretland September 2004 Kolonneblanding Hver kolonne behandles separat. Hver byte erstattes med en verdi som avhenger av alle 4 bytes i kolonnen. Kan sees på som en matrisemultiplikasjon i GF(28) med det irredusible polynomet m(x) = x8 + x4 + x3 + x + 1. Truls Fretland September 2004
Addering av rundenøkkel XOR tilstanden med 128-bits av rundenøkkelen. Dekryptering er identisk, siden XOR er sin egen invers (A A B = B), bare med korrekt rundenøkkel. Designet for å være så enkel som mulig. Truls Fretland September 2004
Truls Fretland September 2004
Implementasjons-aspekter Kan effektivt implementeres på: 8-bits CPU 32-bits CPU Truls Fretland September 2004