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 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 Truls Fretland September
Confusion & Diffusion Introdusert av Claude Shannon i 99. 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 Truls Fretland September 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 og R. 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 Truls Fretland September
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 (9, ). 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: bit Output: bit Består av følgende deler: Krypteringsalgoritme Dekrypteringsalgoritme Nøkkelgenereringsalgoritme Truls Fretland September 9 Truls Fretland September Nøkkelgenerering Kryptering bit nøkkel Dekryptering bit klartekst P bit klartekst Dekomponering av S-DES IP f K SW f K K K Skift P Skift P K K IP - f K SW f K Kryptering og dekryptering består av tre basisfunksjoner: Initiell permutasjon (IP) Kompleks funksjon (f K ) Ombytting av datadeler (SW) Disse er satt sammen på følgende måte: Kryptering: IP - f K SW f K IP Dekryptering: IP f K SW f K IP - IP - IP Truls Fretland September bit kryptert tekst bit kryptert tekst Truls Fretland September
Nøkkelgenerering - diagram Nøkkelgenerering bit nøkkel P P 9 La K være algoritmens -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(P(K))) K = P(Skift(Skift(P(K))) K bit LS- LS- P LS- LS- LS- P LS- 9 K bit P P 9 Truls Fretland September Kryptering/dekryptering,S-DES Skal nå se nærmere på funksjonene som inngår i krypteringen og dekrypteringen. Hva er inne i boksene? Permutasjonene IP og IP - Initiell permutasjon IP består i å bytte om på posisjonene til bitene i tekstblokken vi skal kryptere. Tilsvarende flytter IP - dem tilbake i opprinnelig posisjon igjen (invers funksjonen). IP og IP - tar inn bit, og gir ut bit. Eks.: IP()= IP Det kan vises at: IP - (IP(X))=X IP - Truls Fretland September Truls Fretland September
Klartekst IP SW E/P E/P f K S P S K P f K S P S K SW Fortsetter Truls Fretland September IP - bit Chiffertekst Truls Fretland September Detaljer om f K f K består av en kombinasjon av permutasjoner og substitusjoner. f K (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). E/P er en utvidelse og permutasjon E/P S og S er to S-box er (substitution-box). Dvs. en substitusjonsfunksjon som tar bit inn og gir ut bit. Truls Fretland September 9 Tabeller for S og S S S-boksene fungerer slik: Man tar først og siste bit fra -bit input og setter sammen Til en -bit som gir oss tallmulighetene =, =, = og =. Dette gir hvilken rad vi skal velge i tabellen over. Andre og tredje bit kombineres på samme måte og de samme tallmulighetene. Dette forteller hvilken kolonne vi skal velge. Tallet vi Leser av i denne posisjonen levers som et -bits output ved at =, =, = og =. S Bjørn Åge Bergsjordet Februar
Analyse av S-DES Det begrensede antall nøkler i S-DES muliggjør et rå-makt-angrep (brute-force). En -bit nøkkel gir = ulike nøkler, og dermed 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. DES (the Data Encryption Standard) Mest brukte blokkchifferet i verden. Utviklet av IBM på -tallet. Vedtatt som standard for kryptering i 9 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 Truls Fretland September Truls Fretland September 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 ( =. mulige nøkler), men det har vist seg mulig: 99: noen måneder 99: noen dager 999: timer! Dette forutsetter at man er istand til å gjenkjenne klartekst automatisk 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). Truls Fretland September Truls Fretland September
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. Lineær kryptoanalyse 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 eller. Truls Fretland September Truls Fretland September Designkriterier Se læreboka side. 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) Truls Fretland September Truls Fretland September
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 ) Cipher Block Chaining (CBC) Meldingen deles inn i blokker, som lenkes sammen i krypteringsoperasjonen. C i = DES K (P i XOR C i- ) C = IV (initial vektor) Truls Fretland September 9 Truls Fretland September Oppsummering Har sett på: Blokkchiffer design prinsipper S-DES (detaljert) og DES (oversikt) Kryptoanalyse Operasjonsmodi Truls Fretland September