470 likes | 626 Views
Introduktion til Kryptologi. Jesper Buus Nielsen September 2, 2009. Kryptologi. Datasikkerhed Sikker kommunikation over usikre kanaler Kryptografi : Bygge systemer Kryptoanalyse : Bryde systemer Avancerede Protokoller Data ikke er passiv men noget der ”regnes” på men uden at lække den!
E N D
Introduktion til Kryptologi Jesper Buus Nielsen September 2, 2009 A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
Kryptologi • Datasikkerhed • Sikker kommunikation over usikre kanaler • Kryptografi: Bygge systemer • Kryptoanalyse: Bryde systemer • Avancerede Protokoller • Data ikke er passiv men noget der ”regnes” på • men uden at lække den! • Elektroniske Valg • Elektroniske Skjult-Bud Auktioner • Benchmarking • … A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
Datasikkerhed • Videnskaben om at lave sikker kommunikation over usikre kanaler • To vigtige emner: • Konfidentialitet: Skjul data • Autenticitet: Beskyt data mod forvanskning • Kan overvejes i forhold til mange ting: • Besked • Sender • … A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
Datasikkerhed Konfidentialitet Autenticitet Besked Konfidentialitet Integritet Sender Anonymitet Autenticitet A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
Old-School Krypto • Byg et system som ser sikkert ud • Sæt det i brug • Hvis det viser sig at være usikkert, så prøv at fixe det og gå så til 2. • Kan være tidskrævende, dyrt og pinligt … • Og man ved aldrig om ens system er sikkert A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
Anatomi af Moderne Krypto • Antagelser: • Veldefinerede, simple antagelser som kan falsificeres • Helst studeret i 100er af år uden at blive falsificeret • Fx at det er nemmere at gange end at faktorisere • Primitiver: • Simple værktøjer med deres sikkerhed baseret på antagelser • Fx envejsfunktioner • Systemer • Avancerede værktøjer bygget vha. primitiver • Fx autenticitetssystemer og kryptosystemer • Protokoller: • Detaljerede beskrivelser af hvordan man sikkert bruger fx autenticitetssystemer og kryptosystemer i en større kontekst • Fx dankortsystemet, elektroniske valg, elektroniske skjult bud auktioner, … A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
Den Reduktionistiske Metode • Sikkerhed på det avancerede niveau bevises under antagelse af at det simplere niveau er sikker: • Hvis antagelserne er sande, så er primitivet sikkert • Hvis primitiverne er sikre, så er systemet sikkert • Hvis systemerne er sikre, så er protokollen sikker • Så, hvis antagelserne er sikre, så er protokollen sikker • Fordel over old-school krypto: • Meget nemmere at vurdere om nogle simple antagelser er sikre end om et avanceret system er sikkert A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
Nogle One-liners • Old-school krypto:En protokol er sikker indtil den er bevist usikker • Moderne krypto:En protokol er usikker indtil den er bevist sikker A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
Antagelser • Skal være veldefinerede, dvs. matematisk • Helst så nemmere at falsificere som muligt (hvis falsk) • Helst så simple som muligt • Helst så gamle så muligt • Eksempel: Intet Boolsk kredsløb med 2160 gates kan faktorisere et produkt af 2 tilfældige 256-cifre primtal med sandsynlighed bedre end 2-60 • Denne antagelse kan bruges til at bygge public-key kryptosystemer og signatursystemer A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
Eksempel på Primitiv • Vi kalder f: AB en one-way function hvis: • Nem fremad: Nemt at beregne f(x) fra x • Hård bagud: Givet tilfældig y=f(x) er det svært at beregne x’ så y=f(x’) med god sandsynlighed • Skal desuden definere ”nemt”, ”svært” og ”god sandsynlighed” matematisk • En del af kompleksitetsteorien A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
Kryptosystem • Givet ved tre algoritmer (G, E, D) • Nøglegeneratoren G laver tilfældige nøglepar (ke, kd) • En enkrypteringnøgleke definerer en funktion: Eke: MCfra klartekstrumM til ciffertekstrum C • En dekrypteringnøgleke definerer en funktion: Dkd: CM • Korrekthed: For all mM : Dkd(Eke(m))=m A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
Kryptosystem • Symmetrisk: kd=ke • Går mindst tilbage til Cæsar • Public-key kryptosystem • Sikker at gøre ke offentlig så alle kan enkryptere • ke kaldes så public key • Går tilbage til 1976 • Diffie, Hellman: “New Directions in Cryptography” in IEEE Transactions on Information Theory, Volume 22, Issue 6 A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
Vernam’s One-time Pad • Nøglerum = bitstrenge af længde L • Samme for klartekstrum og ciffertekstrum • m 01011101100100010101001ke 00110110010011010100101c=mke 01101011110111000001100kd 00110110010011010100101m=ckd 01011101100100010101001 • Perfekt konfidentialitet så længe nøglen kun bruges én gang • En given klartekstbit giver anledning til begge ciffertekstbits med samme sandsynlighed A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
Typer af Sikkerhed • Betinget sikkerhed: • Systemets sikkerhed kan reduceres til beregningsmæssige antagelser såsom sværhed af faktorisering • Sikkert mod modstander med begrænset regnekraft • Sikkerhed måles vha. kompleksitetsteori • Ubetinget sikkerhed: • Sikkerhed kan bevises uden antagelser • Sikkert mod modstander med uendelig regnekraft • Sikkerhed måles vha. informationsteori A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
Resten af Foredraget • Detaljer om hvordan sikkerhed af et kryptosystem defineres • Eksempel på hvordan primitivet pseudo-random funktion (PRF) bygges • Eksempler på hvordan PRF bruges forkert og rigtigt • Eksempel på ubetinget sikkert autentificeringssystem • Hvis tid • Eksempel på sikre flerpartsberegninger • Hvis tid A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
Generisk Angrebsmodel O: Orakel • Angriber: Angriberen modeleret som et program • Effektiv for betinget sikkerhed • Input: Al offentlig information såsom public key ke • Orakel: Program der forsyner A med ekstra information under angrebet, for at modellere den kontekst angrebet finder sted i • Output: Angriber kan fx prøve at beregne kd og outputte denne • Vind/Tab: Ud fra Output besluttes om A vandt eller tabte • Sikkerhed: Et system kaldes sikker hvis alle (effektive) A vinder med lille sandsynlighed Input A: Angriber Output Vind/Tab A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
Orakler for Kryptosystemer • Ciphertext only: O outputter Eke(m) for tilfældige m valgt af O • Known plaintext: Som ovenfor, menO outputter (m, Eke(m)) • Chosen plaintext: Som ovenfor, men A vælger m • Chosen ciphertext: A giver ciffertekster c til O og får Dkd(c) tilbage A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
Beslutninger for Kryptosystemer • Total break: A vinder hvis den outputter kd • Instance deduction: A bliver givet c=Eke(m) af O og vinder ved at outputte m • Information deduction: A bliver givet c=Eke(m) af O og vinder hvis den kan outputte en enkelt bit af information om m • Fx om der er et lige eller ulige antal 0’er i m A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
Idealet er Muligt • Muligt at bygge et kryptosystem som er sikker med information deduction under chosen ciphertext angreb • Kan bygges fra en vilkårlig one-way function • Så, hvis en af de simpleste primitiver findes, så kan man bygge et af de stærkeste systemer A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
Resten af Foredraget • Detaljer om hvordan sikkerhed af et kryptosystem defineres • Eksempel på hvordan primitivet pseudo-random funktion (PRF) bygges • Eksempler på hvordan PRF bruges forkert og rigtigt • Eksempel på ubetinget sikkert autentificeringssystem • Hvis tid • Eksempel på sikre flerpartsberegninger • Hvis tid A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
Kryptering med Fuldstændig Tilfældig Funktion • ke: • For hver mulig klartekst m vælg en fuldstændig tilfældig klartekst c • Eneste krav er at til forskellige m ikke rammer samme c • Nøglen består af tabellen over m og c • ke=kd • Er intuitivt ubetinget sikkert da angriberen kun ser fuldstændigt tilfældige værdier • Hvis klartekstrummet er alle bitstrenge af længde 64 fylder nøglen dog omkring 1020 bits • Fylder 10,000,000,000 DVD’er • I praksis bruges en funktion som ligner en fuldstændig tilfældig funktion og som har en meget kortere nøgle A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
Pseudo-Random Function • Ingen input data • OrakelO: • Lav en tilfældig nøgle ke og en tilfældig bit b: • Hvis b=0: På input en klartekst m, svar Eke(m) • Hvis b=1: På input m svar med en tilfældig cC • Output data: en bit c • Tab/Vind: A vinder hvis c=b • Sikkerhed: Eke kaldes en PRF hvis alle effektive algoritmer A vinder med sandsynlighed ½ + ε for et meget lille ε (fx 2-128) • En PRF kan bruges i stedet for en fuldstændig tilfældig funktion så længe man kan tåle usikkerhed med sandsynlighed ε og tror at modstanderen har begrænset regnekraft A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
PRF? One-time Pad • Nøgle, Klartekst, Ciffertekst = 16 bits • Eke(m) = mke • En meget dårlig PRF da tilsvarende bits i hver blok krypteres på samme måde A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
Friedman • Brød mange kryptosystemer omkring anden verdenskrig A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
PRF? One-time Pad Koloner er krypteret med samme bit, hvilket nemt ses!! A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
1 1 0 0 1 1 0 0 0 1 0 0 1 0 1 1 PRF? Transposition • 16*15*14*…*2*1 muligheder • Fylder log2(16*15*14*…*2*1) < 45 bits 0 1 1 1 0 1 0 1 1 0 0 0 0 0 1 1 A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
PRF? Transposition Bevarer antal 0’ere og 1’ere og derfor lyse og mørke flader!! A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
Substitution af Små Blokke • 24 = 16 bitstrenge af længde 4 • log2(16*15*14*…*2*1) ~ 45 bits i nøglen 0 1 1 1 0 1 1 1 1 0 0 0 0 0 1 1 Substitution Substitution Substitution Substitution 0 1 0 0 0 1 0 0 0 1 0 1 0 0 0 1 A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
PRF? Substitution Samme 4 bits bliver altid til samme 4 bits, så “ensfarvede” flader skinner igennem!! A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
Avalanche Effect • Ved at gentage substitution af små blokke og permutation kan man få en såkaldt avalanche effect • Hvis man ændrer en enkelt bit i inputtet så ændrer alle bits i outputtet sig tilfældigt • Får funktionen til at ligne en tilfældig funktion • Princippet bag moderne PRF’er som DES og AES A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
Substitution Substitution Substitution Substitution Substitution Substitution Substitution Substitution A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
Eksempel PRF • Vi bruger vores transposition og substitution skiftevis i 5 omgange • 45-bits + 45-bits = 90-bits nøgle • 290 ~ 1027 forskellige nøgler, så udtømmende søgning er udelukket • Overraskende sikker PRF! • Krypterer nu Friedman blokvis med denne PRF A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
PRF = 5*(Subst+Perm) Samme 16 bits bliver altid til samme 16 bits, hvilket stadig ses!! Godt kryptosystem, men forkert brug! A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
m1 E E E ke ke ke c1 Løsning: Cipher Block Chaining • Hvis én blok ændres, så ændres alle de følgende m2 m3 m4 E ke c2 c3 c4 A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
5*(Subst+Trans) og CBC Nice! A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
Resten af Foredraget • Detaljer om hvordan sikkerhed af et kryptosystem defineres • Eksempel på hvordan primitivet pseudo-random funktion (PRF) bygges • Eksempler på hvordan PRF bruges forkert og rigtigt • Eksempel på ubetinget sikkert autentificeringssystem • Hvis tid • Eksempel på sikre flerpartsberegninger • Hvis tid A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
Autentifikationssystem • Givet ved tre algoritmer (G,A,V) • NøglegeneratorenG outputter tilfældige nøglepar (ka,kv) hvor ka er autentifikationsnøglen og kv er verifikationsnøglen • c = Aka(m) kaldes en checkværdi • Vkv(m,c) outputter accept eller afvis • Korrekthed: Vkv(m,Aka(m))=accept for alle m • Message Authentication Code (MAC): kv=ka • Digital signatur: vk kan gøres offentlig A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
Sikkerhed af Autentifikationssystemer • Orakler: • Known message attack: O outputter (m,Aka(m)) for tilfældige m • Chosen message attack: A vælger m • Vind/Tab: A vinder ved at outputte (m’,c’) hvor: • Vkv(m’,c’)=accept • A fik ikke c’ fra oraklet O • Sikkerhed: Alle effektive A vinder med meget lav sandsynlighed A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
Eksempel på en MAC • ak=(a,b,N) hvor N er en øvre grænse på størrelsen af de tal der regnes med og a og b er tilfældige tal fra {0,…,N-1} • kv=ka • c = Aka(m) = a + b m mod N • Vkv(m,c): Er c = a + b m mod N? • Ubetinget sikkert så længe det kun bruges én gang (a la Vernams one-time pad) • Chancen for at gætte checkværdi c’ for nyt m’ er 1/N A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
Alle nøgler gennem (m,c) er stadig mulige c key b a m m’ c’? Alle checkværdier er stadig mulige! c’? A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
Resten af Foredraget • Detaljer om hvordan sikkerhed af et kryptosystem defineres • Eksempel på hvordan primitivet pseudo-random funktion (PRF) bygges • Eksempler på hvordan PRF bruges forkert og rigtigt • Eksempel på ubetinget sikkert autentificeringssystem • Eksempel på sikre flerpartsberegninger • Hvis tid A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
Sikre Distribuerede Beregninger • Muligt at lade flere parter som ikke stoler på hinanden lave beregninger på deres samlede datasæt uden at samle data på nogen enkelt maskine • Bruger fx tre servere hvor hver enkelt server på intet tidspunkt ved noget som helst om dataene A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
Sikker Distribuering • Eksempel med tre servere: • En hemmelighed s {0,…,9} som skal distribueres sikkert • Vælg tre tilfældige tal s1,s2,s3 {0,…,9} hvors = s1+s2+s3 mod 10og send sn til server nummer n A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
Sikker Distribuering 8 + 3 + 4 mod 10 =15 mod 10 =5 5 8 3 4 A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
Addition af Distribuerede Værdier Ønsker at beregne distribueret version af 5+7 mod 10 = 2 8 4 6 4 5 7 2 6 9 2 Lækker ingen information da der ikke er kommunikation! 2 3 A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
Multiplikation 8 8 4 4 6 6 2 2 8 5 7 8 5 (8+4+3)(6+2+9) = 86 + 82 + 89 + 46 + 42 + 49 + 36 + 32 + 39 =255 (s1+s2+s3)(t1+t2+t3) = s1t1 + s1t2 + s1t3 + s2t1 + s2t2 + s2t3 + s3t1 + s3t2 + s3t3 9 3 3 9 9 A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen
Generelle Beregninger • Nu kan vi addére og multiplicere sikkert modulo et tal N • Tillader at udføre en vilkårlig beregning sikkert • Computere regner jo fx typisk modulo 232 eller 264 • En sidste one-line:Alt hvad der kan beregnes kan beregnes sikker A A R H U S U N I V E R S I T E T Datalogisk Institut Kryptogruppen