Föreläsninsanteckningar till föreläsning 1: Introduktion Johan Håstad, transkriberat av Marcus Dicander 2006-01-18 1 Översikt Vi börjar med en översikt av kursen ochnämner flyktigt vilka områden som kommer tas upp. 1. Klassisk krypto. Vi tittar på några klassiska kryptosystem. 2. Vad är ett säkert krypto? Några defintioner. 3. Moderna system: DES från 1997 och AES från 2000. Vi studerar dessa kryptosystem ingående. 4. Öppna nyckelsystem. På engelska Public key cryptography även kallat asymmetrisk krypto. Vid traditionell kryptering har den som krypterar ochdekrypterar samma nyckel men vissa system tillåter olika nycklar. När meddelandet M krypteras används en nyckel E för att bilda C medan för att dekryptera används en annan nyckel D som är svår att beräkna från E. Detta gör att E kan publiceras i något som liknar en telefonkatalog. Exempel: RSA, ElGamal ochmceliece. 5. Hashfunktioner. En lång textsträng matas in i en hashfuntion som returnerar något kort, 160-256 bitar. Det ska vara svårt att skapa krockar. Exempel: SHA-1. 6. Digitala signaturer. Digitala motsvarigheten till handskrivna signaturer. Från ett meddelande m kanensignaturσ beräknas. Den kan sedan verifieras som korrekt via publik information. Exempel: RSA, DSS, El-Gamal. 7. Nyckelutbyte. Alice ochbob finns på olika platser men vill ändå generera en gemensam hemlig nyckel trots att Eve tjuvlyssnar. 1av6
8. Identifikation. Exempel: Traditionellt lösenord. 9. Elliptiska kurvor. En ovanlig grupp som kan användas för att göra kryptografiska konstruktioner. 10. Pseudoslumptalsgenerator. Vi ska gå igenom klassiska generatorer som LFSR (Linear Feedback Shift Registers) men kommer även att gå igenom moderna definitioner/teori. 11. Digitala pengar. Gästföreläsning av Mårten Trolin, doktorand. 12. Krypto i verkligheten. Gästföreläsning av Mats Näslund, Ericsson. 2 Klassiskt krypto Låt oss studera några klassiska kryptosystem. 2.1 Enkel substitution Byt varje bokstav mot en annan. Vårt mest kända ochföga säkra kryptosystem som i lätt knäcks. En anekdot. I Hjärnkontoret fick några grundskoleelever i uppdrag att utveckla ett substitutionskrypto som Johan skulle knäcka inför kamerorna. Han hade förberett sig genom att skriva ett program som forcerade enkel substitution med bokstäver utbytta mot bokstäver. De elaka barnen hade dock bytt ut siffrorna mot sifferpar vilket krävde omprogrammering av inläsningen. Detta från en dator med konstigt inställd keymap vilket omöjliggjorde skrivande av tecken som + ochparanteser. Detta med kameran en meter från ansiktet. Speakern förklarde detta som Johan blir förvirrad när det kom siffor istället för bokstäver. 2.2 Blankettchiffer, One Time Tape Översätt klartext till siffror, 0-25. Det finns en blankett av samma längd som klartexten också den med tal 0-25 där varje tecken valts slumpvis ochoberoende av de övriga. Om i:te talet i klartexten är K i, i te talet på blanketten är N i så blir i:te tecknet i kryptotexten K i + N i mod 26. Låt oss passa på att fastställa lite notation. När vi talar om ett kryptosystem menar vi själva tillvägagångssättet. Den hemliga information som vi använder kallas nyckel. 2av6
2.3 Vigenère Vigenère är en One Time Tape med periodisk blankett given av ett nyckelord. Mycket använt genom historien och ansågs på 1800-talet oforcerbart. 2.4 Transposition Kasta om bokstäverna. Detta kan göras på många sätt ochlåt oss nämna ett vanligt. Skriv in klartexten radvis i en m n-matris. Läs sedan ut resultatet kolumnvis. Kolumnerna läses i en ordning som ges av nyckeln. 2.5 G-skrivaren Tyskt krypto från andra världskriget. När Tyskland erövrat Norge så gick det en del trafik genom Sverige. Denna krypterades med G-skrivaren. Detaljerad information om hur denna maskin fungerande finns på lapp tillgänglig från kursens hemsida. 3 Säkerhet För att diskutera säkerhet måste vi dels diskutera vad forcören vet, dels vilka resurser han har att sätta in och slutligen vad det innebär att han lyckas. 3.1 Vad vet forcören? Vi kommer alltid anta att forcören känner till kryptosystemet ochatt säkerheten hänger på att nyckeln är hemlig. Forcören känner alltid till den kryptotext som ska forceras men kan ha ytterligare information. T.ex. kan han känna till andra par av klartext/kryptotext på samma nyckel. Han han även ha partiell information om klartexten som ska forceras, t.ex. känna till inledningen eller ord i texten. 3.2 Vilka resurser har forcören att tillgå? Vi antar att forcören har rimligt med datorkraft. föreläsningar. 3.3 Vad är att lyckas? Mer om det på senare Att lyckas fullständigt innebär att återskapa klartexten, men att utvinna någon som helst information från kryptotexten kan även räknas som en 3av6
framgång. 3.4 Vad är helt säkert? Diskussionen leder oss till definera ett system som helt säkert om forcören, trots all möjlig sidoinformation inte kan utvinna någon ny information om klartexten från kryptotexten. Detta med ett litet undantag. Vi tillåter att viss information om klartexten längd läcker. Detta går inte att undvika. 3.5 Vad är helt osäkert? När man givet bara en kryptotext kan hitta hela klartexten. 3.6 Hur säkra är de 5 krypton vi pratat om? Lite snabba sammanfattningar. Enkel substitution. Helt osäkert. Blankettchiffer. Varken helt säkert eller helt osäkert. Som vi ska se senare är det oforcerbart på ett meddelande medan klartexten lätt kan utvinnas om vi har ett par klartext/kryptotext på samma nyckel. Vigenère. I ochmed att det är blankettchiffer med periodisk nyckel är det inte säkrare än blankettshiffer. Nedan argumenterar vi för att detärheltosäkert. Transposition. Detärinteheltsäkert. Blandannatsåkanmandra slutsatser utifrån vilka bokstäver som inte finns med. Vi diskuterar möjlig forcering under nästa föreläsning. G-skrivaren. Går tydligen att knäcka eftersom en matematiker (Arne Beurling) gjorde det för hand under andra världskriget. Dessutom enbart utifrån flera kryptotexter gjorda med samma nyckel. Liknande system förekommer på första hemuppgiften. 4 Hur forcerar man Vigenère? Vi vill använda att bokstäverna är olika vanliga i de flesta språk. Om vi har detaljerad information om vilket språk som används ochdess bokstavsfrekvenser kan man göra mycket mer avancerade attacker som kommer lyckas på kortare telegram, men vi beskriver här en robust attack. 4av6
Den egenskap av snedfördelning vi vill använda är att om sannolikhetsfördelningen på bokstäverna är sned kommer par av bokstäver tendera att vara lika oftare än de borde vara om allt var likformig slump. Låt oss argumentera för detta mer precist. Vi är intresserade av att bestämma periodlängden ochför att göra detta intresserar vi oss för att studera om vi kan avgöra huruvida kryptobokstäver är överchiffrerade med samma eller olika tal. Detta är användbart då kryptobokstäver som befinner sig på ett avstånd som är en multipel av periodlängden med nödvändighet är överchiffrerade med samma tal. Anta att bokstav i förekommer med sannolikhet p i ochatt vi har N olika bokstäver. Om vi antar att två klartextbokstäver är oberoende är sannolikheten att de är lika p 2 i. (1) Detta följer då sannolikheten att båda tar värde i är p 2 i. Om vi betraktar två kryptobokstäver i positioner där samma överchiffreringstal har använts så inser vi att dessa är lika omm motsvarande klartexttecken är lika. Sannolikheten för detta är således precis (1). Låt oss betrakta två kryptbokstäver på ett avstånd som inte är en multipel av periodlängden ochlåt oss anta att den första positionen överchiffreras med a, ochden andra med b. Vad är sannolikheten för lika bokstav? Jo vi påstar att den är Pr[båda är bokstav nr i] = p i a p i b, där indexen räknas modulo N. För att inse detta notera kryptobokstaven i den första av våra betraktade positioner är i omm klartextbokstaven är i a (modulo N) ochden andra tar det värdet om klartextbokstaven är i b (modulo N). Notera i fallet a = b får vi p 2 i a vilket ju är precis (1) bara med termerna omnumrerade. Om a b fås p i a p i b = p j p j (b a) (2) 5av6
ochvi vill jämföra detta med (1). Vi påstår att (1) alltid är större ochdet inses via Cauchy-Schwarz olikhet. Den säger a j b j ( a 2 j) 1/2 ( b 2 j) 1/2, för godtyckliga vektorer a och b. Om den ser obekant ut kanske formuleringen (a, b) a b är mer bekant, dvs att inre produkten av två vektorer är högst produkten av deras längder. Om vi använder den med a j = p j och b j = p j (b a) 1 fås p j p j (b a) ( p 2 j ) 1/2 ( p 2 j (b a)) 1/2 = ochvi vet så att sannolikheten för lika kryptobokstäver är störst när överchiffreringstalen är lika. För att få likhet krävs (nästan) att alla p i är 1/N. Det är t.o.m. precis sant om (b a) och N saknar gemensamma faktorer (den händige läsaren kan visa detta). Nu vill vi bestämma periodlängden. Ta en gissning m ochstudera par av bokstäver på avstånd m, 2m, 3m, osv. Om gissningen är korrekt borde dessa ha en ovanligt stor sannolikhet att vara lika. Vi tar det m som ger störst andel lika par. När vi väl bestämt m kan vi gissa av överchiffreringstal i två olika positioner med liknande principer. Om skillnaden av överchiffreringstalen är d borde den vanligaste skillnaden mellan kryptobokstäverna även den vara d. p 2 j 1 Vi ber om ursäkt för dubbelanvändingen här av a och b. Vektorerna har inget att göra med överchiffreringstalen. 6av6