Kryptografi og nettverkssikkerhet Kapittel : Blokkchiffere og DES (the Data Encryption Standard) Moderne symmetrisk kryptografi Skal se på moderne blokkchiffere, en av de mest brukte kryptoalgoritmene. Spesielt skal vi se på DES (the Data Encryption Standard). Truls Fretland September 00 Oversikt Hvorfor blokkchiffere? Prinsipper for blokkchiffere (Feistel) DES (Data Encryption Standard) Styrken til en algoritme Kryptoanalyse Designprinsipper Operasjonsmodi Prinsipper for blokkchiffere Ser ut som en stor substitusjon. For en blokk med bits ville man trenge en tabell med innslag. Derfor: De fleste symmetriske blokkchiffere er basert på Feistel Cipher -strukturen, som bruker to eller flere enkle chiffer etter hverandre (produktchiffer) for å modellere et substitusjonschiffer. Motivasjon: For en n-bit blokk finnes n ulike blokker med data. Dette gir n! ulike reversible transformasjoner. Truls Fretland September 00 Truls Fretland September 00 Confusion & Diffusion Introdusert av Claude Shannon i. Basisideen som moderne blokkchiffere bygger på. Implementeres ofte ved bruk av to elementære kryptografiske operasjoner; Substitusjon Permutasjon Diffusion Mål: Redusere korrelasjoner mellom klartekst og chiffertekst. Fordeler den statistiske strukturen i klarteksten, slik at frekvensanalyse av chifferteksten vanskeliggjøres. Truls Fretland September 00 Truls Fretland September 00
Confusion Mål: Gjøre forholdet mellom krypteringsnøkkelen og chifferteksten så komplisert som mulig. Feistel chiffer Basert på konseptet inverterbare produktchiffer og confusion & diffusion -prinsippet. Generell struktur: Klartekst bestående av w bits og en nøkkel K. Deler input i to deler, L 0 og R 0. Krypteringen foregår over n runder, hvor hver av de foretar en substitusjon på den venstre halvdelen som settes sammen med en rundefunksjon (round function) av den høyre delen og en delnøkkel. Tilslutt kombineres L n+ og R n+ Truls Fretland September 00 Truls Fretland September 00 Feistel parametere og kriterier Blokkstørrelse (w) Store blokker øker sikkerheten, men øker også kjøretiden for algoritmene. Vanlige størrelser: bits (DES), bits (AES Advanced Encryption Standard). Nøkkelstørrelse (K) Store nøkler øker sikkerheten, men øker også kjøretiden for algoritmene. Tidligere: bits, nå bits eller mer (, ). Antall runder (n) Øker sikkerheten, øker kjøretiden. Delnøkkel-genereringsalgoritme og rundefunksjon: Økt kompleksitet av disse kan gi økt sikkerhet, men øker og kjøretiden. Mål: Skal være rask og enkel å analysere. For å dekryptere reverserer man krypteringsalgoritmen. S-DES (Simplyfied DES) En forenklet versjon av DES, beregnet på utdanning og ikke på praktisk bruk (dvs. er ikke sikker!) Parametre: Input: bit Nøkkel: 0 bit Output: bit Består av følgende deler: Krypteringsalgoritme Dekrypteringsalgoritme Nøkkelgenereringsalgoritme Truls Fretland September 00 Truls Fretland September 00 0 Nøkkelgenerering Kryptering 0 bit nøkkel Dekryptering bit klartekst P0 bit klartekst Dekomponering av S-DES K K Skift P Skift P K K Kryptering og dekryptering består av tre basisfunksjoner: Initiell permutasjon () Kompleks funksjon ( ) Ombytting av datadeler () Disse er satt sammen på følgende måte: Kryptering: Dekryptering: Truls Fretland September 00 bit kryptert tekst bit kryptert tekst Truls Fretland September 00
Nøkkelgenerering - diagram Nøkkelgenerering La K være algoritmens 0-bits nøkkel. Denne er felles for både avsender og mottaker (symmetrisk kryptografi) og brukes til å generere to -bits nøkler, kalt K og K. K = P(Skift(P0(K))) K = P(Skift(Skift(P0(K))) K bit 0 bit nøkkel P0 LS- LS- P LS- LS- P0 0 LS- P LS- 0 K bit P P 0 Truls Fretland September 00 Kryptering/dekryptering,S-DES Skal nå se nærmere på funksjonene som inngår i krypteringen og dekrypteringen. Hva er inne i boksene? Permutasjonene og Initiell permutasjon består i å bytte om på posisjonene til bitene i tekstblokken vi skal kryptere. Tilsvarende flytter dem tilbake i opprinnelig posisjon igjen (invers funksjonen). og tar inn bit, og gir ut bit. Eks.: (0000)=0000 Det kan vises at: ((X))=X Truls Fretland September 00 Truls Fretland September 00 Klartekst S0 P S K P S0 P S K Fortsetter Truls Fretland September 00 bit Chiffertekst Truls Fretland September 00
Detaljer om består av en kombinasjon av permutasjoner og substitusjoner. (L, R) = (L F(R, SK), R), der L og R er venstre og høyre -bits-gruppe, SK en delnøkkel og er eksklusiv eller (XOR). er en utvidelse og permutasjon S0 og S er to S-box er (substitution-box). Dvs. en substitusjonsfunksjon som tar bit inn og gir ut bit. Truls Fretland September 00 Analyse av S-DES Det begrensede antall nøkler i S-DES muliggjør et rå-makt-angrep (brute-force). En 0-bit nøkkel gir 0 = 0 ulike nøkler, og dermed 0 ulike dekrypteringsfunksjoner. Da er det bare å teste alle disse og se hvilken av de som gir en meningsfull klartekst. Kryptoanalyse er mulig. Setter opp sammenhenger mellom input- og output-bits av krypteringsfunksjonen. Truls Fretland September 00 0 DES (the Data Encryption Standard) Mest brukte blokkchifferet i verden. Utviklet av IBM på 0-tallet. Vedtatt som standard for kryptering i av NBS (National Bureau of Standards, nåværende NIST National Insitute of Standards and Technology). Krypterer -bits blokker med en -bits nøkkel. Kritisert pga. dårlig sikkerhet forbedret utgave: -DES (trippel DES). Omtrent samme struktur som S-DES. faser: Initiell permutasjon Rundefunksjon; kompleks, runder, ulik delnøkkel for hver runde Invers initiell permutasjon Styrken til en algoritme En algoritme kan alltid teoretisk knekkes ved et rå-kraft angrep (brute force), dvs. søke igjennom alle mulige nøkler. Ved kryptoanalyse kan det være mulig å gjøre det raskere enn rå-kraft. Hvis det er mulig regnes algoritmens sikkerhet som brutt eller redusert. Med sin -bits nøkkel vil et rå-kraft angrep på DES være upraktisk ( =. 0 mulige nøkler), men det har vist seg mulig: : noen måneder : noen dager : timer! Dette forutsetter at man er istand til å gjenkjenne klartekst automatisk Truls Fretland September 00 Truls Fretland September 00 Kryptoanalyse Benytter seg ofte av strukturen til chifferet, men siden denne er antatt kjent skal chifferets styrke (i teorien) kun være avhengig av hemmelig nøkkel. Det er en vanlig antagelse ved design av chiffer at alt om chifferet er kjent bortsett fra nøkkelen (Kerckhoffs prinsipp). Differensiell kryptoanalyse Siden algoritmen er kjent er det mulig å sette opp et angrep som baserer seg på at input på venstre side er en funksjon av output på høyre side fra steget før og delnøkkelen fra dette steget. DES kan knekkes med klartekst input. Truls Fretland September 00 Truls Fretland September 00
Lineær kryptoanalyse Designkriterier Prøver å finne en lineær sammenheng mellom klartekst, chiffertekst og nøkkel. Mål: sann med sannsynlighet ulik ½. Mer effektiv, jo nærmere sannsynligheten er 0 eller. Truls Fretland September 00 Truls Fretland September 00 Operasjonsmodi Gir hvordan blokk-krypteringen brukes, og hvordan serier av slike settes sammen. Et blokkchiffer kan ha flere () ulike operasjonsmodi: Electronic CodeBook (ECB) Cipher Block Chaining (CBC) Cipher FeedBack (CFB) Output FeedBack (OFB) Counter (CTR) Electronic codebook Hver -bits blokk med klartekst krypteres uavhengig ved å bruke den samme nøkkelen Bruk: Sikker overføring av enkle verdier (for eksempel en krypteringsnøkkel) Ulempe: Identiske klartekst-blokker gir identiske chiffertekster (ved bruk av samme nøkkel) C i = DES K (P i ) Truls Fretland September 00 Truls Fretland September 00 Cipher Block Chaining (CBC) Meldingen deles inn i blokker, som lenkes sammen i krypteringsoperasjonen. C i = DES K (P i XOR C i- ) C 0 = IV (initial vektor) Oppsummering Har sett på: Blokkchiffer design prinsipper S-DES (detaljert) og DES (oversikt) Kryptoanalyse Operasjonsmodi Truls Fretland September 00 Truls Fretland September 00 0