Moderna krypteringssystem



Relevanta dokument
Krypteringteknologier. Sidorna ( ) i boken

NÅGOT OM KRYPTERING. Kapitel 1

Kryptering HEMLIG SKRIFT SUBSTITUTION STEGANOGRAFI KRYPTOGRAFI

Kryptering. Krypteringsmetoder

Skydd för känsliga data

Metoder för sekretess, integritet och autenticering

Dagens föreläsning. Datasäkerhet. Tidig historik. Kryptografi

Krypteringens historia och användningsområden

RSA-kryptering och primalitetstest

Grundfrågor för kryptosystem

För att använda sifferkrypto använder man en rektangel om 5 gånger 6 bokstäver.

Kryptografi - När är det säkert? Föreläsningens innehåll. Kryptografi - Kryptoanalys. Kryptering - Huvudsyfte. Kryptografi - Viktiga roller

MA2047 Algebra och diskret matematik

Grundläggande krypto och kryptering

Offentlig kryptering

Primtal, faktorisering och RSA

Kryptoteknik. Marcus Bendtsen Institutionen för Datavetenskap (IDA) Avdelningen för Databas- och Informationsteknik (ADIT)

Den mest väsentliga skillnaden mellan

Kryptering. Av: Johan Westerlund Kurs: Utveckling av webbapplicationer Termin: VT2015 Lärare: Per Sahlin

Objektorienterad Programkonstruktion. Föreläsning 16 8 feb 2016

SJÄLVSTÄNDIGA ARBETEN I MATEMATIK

Säkerhet. Säker kommunikation - Nivå. Secure . Alice wants to send secret message, m, to Bob.

Kryptografi: en blandning av datavetenskap, matematik och tillämpningar

MATEMATIK I SÄKERHETENS TJÄNST OM KODNING OCH KRYPTERING 1

256bit Security AB Offentligt dokument

Föreläsning 10. Grundbegrepp (1/5) Grundbegrepp (2/5) Datasäkerhet. olika former av säkerhet. Hot (threat) Svaghet (vulnerability)

Cipher Suites. Rekommendationer om transportkryptering i e-tjänster

RSA-kryptografi för gymnasiet. Jonas Gustafsson & Isac Olofsson

PGP håller posten hemlig

Grundläggande kryptering & chiffer

Några satser ur talteorin

Datasäkerhet och integritet

Föreläsning 7. DD2390 Internetprogrammering 6 hp

Hemligheternas Matematik

Datasäkerhet. Petter Ericson

En jämförelse av krypteringsalgoritmer. Kandidatarbete Informationssystem Peter Broman Ola Liljerum Handledare: Bengt Carlsson

Att bygga VPN. Agenda. Kenneth Löfstrand, IP-Solutions AB. Olika VPN scenarios. IPsec LAN - LAN. IPsec host - host SSH

Utdrag från Verklighetens Kvadratrötter: Sida 1 en bok om matematikens användningsområden skriven av Marcus Näslund. Mer info:

Kryptering och primtalsfaktorisering

Övning 6 - Tillämpad datalogi 2012

Introduktion till krypteringsmetoderna RSA och Merkle-Hellman

Kryptografi: en blandning av datavetenskap, matematik och tillämpningar

Din guide till IP RFID. Intertex Nu ännu starkare säkerhet för SIP. Snom - marknadens säkraste IP-telefon. Ur innehållet TALK TELECOM

Krypteringsprogrammet Kryptogamen

Föreläsning 10 Datasäkerhet grundbegrepp datasäkerhet i nätet. Säkerhet. Grundbegrepp (1/5) Modern telekommunikation

Matematik 3000 Diskret Matematik

Försöksnomineringssystem 2013

Elektroniska signaturer - säker identifiering?

Kryptering. Wearable Computers D 10p. Namn: Josef Israelsson Datum: Lärare: Björne Lindberg Ulf Brydsten Lars Karlsson

Javadoc. Internet, WorldWideWeb, HTML, och Java. Webbläsarkomponenten. JEditorPane p. HyperlinkListener. Javadoc exempel:

En introduktion till några klassiska chiffer

Gesäll provet Internetprogrammering I. Författare: Henrik Fridström. Personnummer: Skola: DSV

Kapitel 10 , 11 o 12: Nätdrift, Säkerhet

Säker e-kommunikation

Med detta och följande avsnitt blir det något svårare. Det finns också

Kryptering av dokument för överföring via telenätet. (HS-IDA-EA )

Protokollbeskrivning av OKI

Säkerhet. Olika former av säkerhet (företagsperspektiv [1])

Grunderna i stegkodsprogrammering

Tekn.dr. Göran Pulkkis Överlärare i Datateknik. Nätverksprotokoll

Att forcera Caesar-krypto är inte så svårt. Antalet möjliga nycklar är bara

Säkerhetsbrister & intrång

Att använda kryptering. Nyckelhantering och protokoll som bygger på kryptering

MS-A0409 Grundkurs i diskret matematik Sammanfattning, del II

SSL/TLS-protokollet och

Kryptering & Chiffer Del 2

Föreläsning 4: Kombinatorisk sökning

Detta dokument beskriver it-säkerheten i RAMBØLLs it-system SurveyXact och Rambøll Results.

När man krypterar med en kod översätter man hela ord eller uttryck

Programmeringsuppgifter 1

Matematikens Element. Vad är matematik. Är detta matematik? Anders Fällström Institutionen för matematik och matematisk statistik Umeå universitet

Switch- och WAN- teknik. F7: ACL och Teleworker Services

Säker lagring av krypteringsnycklar

Programmering för språkteknologer II, HT2014. Rum

Diskret matematik: Övningstentamen 4

KUNDREGISTER Sid 2(7) Teknisk specifikation

Karlshamns Hamn AB Kameraövervakningssystem - Del 2

Din manual NOKIA C111

Test av kryptobiblioteket

Bonusmaterial till Lära och undervisa matematik från förskoleklass till åk 6. Ledning för att lösa problemen i Övningar för kapitel 5, sid

Algoritmanalys. Genomsnittligen behövs n/2 jämförelser vilket är proportionellt mot n, vi säger att vi har en O(n) algoritm.

Dagens föreläsning. Datasäkerhet. Tidig historik. Kryptografi

Lösning till tentamensskrivning på kursen Diskret Matematik, moment B, för D2 och F, SF1631 och SF1630, den 1 juni 2011 kl

Sats 2.1 (Kinesiska restsatsen) Låt n och m vara relativt prima heltal samt a och b två godtyckliga heltal. Då har ekvationssystemet

Ett säkert Internet. Betalningsformer för säkra transaktioner över Internet. Författare: Anders Frånberg. Examensarbete I, 10p Vårterminen - 00

4-7 Pythagoras sats. Inledning. Namn:..

ANVISNINGAR. Sjundeå e-postsystem. Del 1: inställningar. Version 1.0

(Grundkurs i medier och kommunikation vid Tammerfors Universitet, Finland) 1.1 Kommunikation

Gemensam presentation av matematiskt område: Geometri Åldersgrupp: år 5

Blåst i form. Lars Kallin

Nämnarens kryptoskola fördjupning. Enkel transposition

Svar och arbeta vidare med Student 2008

Föreläsninsanteckningar till föreläsning 3: Entropi

Det första steget blir att titta i Svensk MeSH för att se om vi kan hitta några bra engelska termer att ha med oss på sökresan.

Övning 6. Komprimering, kryptering, dokumentering & testning

Utvärdering av nätverkssäkerheten på J Bil AB

Practical WLAN Security

Lösning till tentamensskrivning i Diskret Matematik för CINTE, CL2 och Media 1, SF1610 och 5B1118, onsdagen den 17 augusti 2011, kl

SLALOMINGÅNGAR hur svårt kan det vara?

Kryptografiska mekanismer och valutor

Transkript:

Eva-Maria Vikström Moderna krypteringssystem Seminarieuppsats Institutionen för informationsbehandling Åbo Akademi Åbo 2006

Abstrakt Kryptogra blir allt viktigare i dagens samhälle i och med att stora delar av våra dagliga ärenden sköts via datorer och internet. Vi håller kontakten till vänner via e-post, vi gör uppköp via internet och vi sköter våra dagliga penningaärer via nätbanker. Allt detta ställer stora krav på säkerheten i datorer och internet, vi är tvungna att använda kryptogra. I min uppsats tar jag upp några av de moderna krypteringssystem som används idag. Jag undersöker för- och nackdelar med symmetriska och asymmetriska krypteringsmetoder. Symmetriska chier, t.ex. DES och RC4, använder samma nyckel för att kryptera och dekryptera medan asymmetriska, t.ex. RSA, använder olika nycklar för kryptering och dekryptering. Ena metoden är snabb men har problem med nyckeldistribution medan den andra är långsam men har inget problem med distributionen av nycklar. Jag tar tar upp några exempel hur man kombinerat dessa två i hybridkrypton som t.ex. PGP eller utnyttjar dem i SSL som används för att säkra en internetsession mellan en webbläsare och en server. Nyckelord: kryptogra, DES, RSA, moderna krypteringssytem 1

Innehåll Abstrakt 1 1 Inledning 3 2 Kryptograns historia 4 3 Symmetriska chier 6 3.1 Block chier.............................. 6 3.1.1 Data Encryption Standard.................. 6 3.1.2 Säkerhetsaspekter....................... 7 3.2 Flödeschier.............................. 9 3.2.1 RC4.............................. 10 4 Asymmetriska chier 11 4.1 Några satser ut talteorin....................... 12 4.2 RSA.................................. 13 4.2.1 Signerade budskap...................... 15 5 Hur kryptering fungerar i dagens datorer 16 5.1 Secure Socket Layer, SSL....................... 16 5.2 Pretty Good Privacy......................... 17 6 Sammanfattning 19 Litteraturförteckning 19 A Ordlista 21 B Exempel på hur man krypterar med DES 23 2

Kapitel 1 Inledning Kryptologi är läran om hur man förvränger text eller data så att det blir omöjligt eller svårt för obehöriga personer att läsa texten. Den delas in i era olika delområden: kryptogra (vetenskapen om att skriva hemliga meddelanden), kryptoanalys (vetenskapen om att dechirera krypterade meddelanden)och steganogra (vetenskapen om att gömma information). Steganogra döljer information medan kryptogran förvränger informationen och på så sätt döljer meningen av informationen, inte själva informationen. Orden kryptogra och kryptologi härstammar från de grekiska orden kryptos (som betyder gömd ), graa ( att skriva ) samt logos ( ord eller orsak ). Ordet kryptogra infördes år 1658 av den engelska fysikern Thomas Browne. Tidigare användes kryptogra främst i krigsföring för att enden inte skulle få tillgång till hemlig information. I dagens it-samhälle använder vi allt mer tjänster via internet och det ställer allt större krav på kryptogran och de metoder som används. Datorerna utvecklas hela tiden och det ställer krav på hurudana metoder som används. Datorer kan t.ex. räkna ut olika sorters mönster i en text, en uppgift som för en människa tar mycket länge att göra med papper och penna. I min uppsats behandlar jag för- och nackdelar med några av de metoder som används idag. För att läsaren enklare skall förstå viktiga ord och uttryck nns det en ordlista i bilaga A. 3

Kapitel 2 Kryptograns historia Det är väldigt naturligt att tänka sig att människan i alla tider har velat dölja betydelsen i sin skrift för obehöriga. Kryptogran har därför använts väldigt länge, men som vetenskap är den ung. Den första dokumenterade användningen av kryptogra är från omkring 1900 f.kr. då en egyptisk skrivare använde andra hieroglyfer än de normala i en inskription ([Kahn96] s 71). Grekerna var de första som använde sig av kryptogra för korrespondens. De använde sig av en s.k. skytale. Denna bestod av en läderrem som lindades runt en pinne. Texten skrevs sedan längs denna rem (se gur 2.1, [skytale]). Budbäraren använde remmen som bälte när han förde budet vidare. För att dekryptera meddelandet behövde mottagaren bara en exakt lika tjock pinne att linda remmen runt. Grekerna var härmed de första att uppnna transpositionschiret. Figur 2.1: Den skytale som grekerna använde Julius Caesar (100-44 f.kr.) använde ett enkelt substitutionschier, det som sedan kommit att kallas caesarchier. Det går ut på att man förskjuter alfabetet n steg framåt, där n=1,2,... Ifall n=3, betecknas A med D, B med E osv. 4

KAPITEL 2. KRYPTOGRAFINS HISTORIA 5 Kryptogran utvecklades mycket under 1800- och 1900-talen då det blev viktigt att i krigsföring se till att enden inte ck tillgång till hemlig information. Under de två världskrigen var speciellt de tyska kryptograferna framgångsrika. Den kanske mest kända chiermaskinen genom tiderna är den tyska Enigma-maskinen som användes under andra världskriget. Den tilltänkta kundkretsen för kryptering var från början banker, uppnnare och militärer. Men även de kriminella upptäckte snabbt fördelen med att kunna skydda sin kommunikation. Under den amerikanska förbudstiden (då USA förbjöd försäljning och konsumtion av alkohol) tvingades FBI öppna en forceringsbyrå för att komma till rätta med de krypterade meddelanden som spritsmugglare skickade varandra. Byrån existerar än idag. I och med att datorer och överföring av ler via olika nätverk blev allt vanligare krävdes nya former av kryptogra. År 1976 valdes en IBM-design att bli det amerikanska standardkryptot, DES (Data Encryption Standard). Med tiden accepterades DES världen över, främst på grund av att ingen lyckades hitta några svagheter trots 20 års försök. Original DES kan inte längre användas på grund av att det använder för korta nycklar, vilka lätt kan forceras av eektiva datorer. Istället används en variant av denna, trippel-des. Whiteld Die och Martin Hellman i sin tur publicerade år 1976 en idé med öppen nyckel kryptogra. Året efter skapade Ronald L. Rivest, Adi Shamir och Leonard M. Adleman RSAkryptot för öppen nyckelkryptering. Den metoden baserar sig på svårigheten att faktorisera stora tal. I och med datorernas snabba utveckling och internet så har kryptogran utvecklats oerhört. Eftersom datorer väldigt snabbt och eektivt kan räkna ut olika krypteringssystem så har det ställt nya krav på kryptering. Dagens it-samhälle dessutom gjort behovet av kryptogra stort. År 1991 släppte Phil Zimmermann sin första version av krypteringsmetoden PGP (Pretty Good Privacy) som svar på FBI:s hot om krav på absolut tillgång till klartexten i medborgarnas kommunikation. Programvaran till PGP är gratis och PGP har idag blivit mer eller mindre en världsstandard för civil kryptering.

Kapitel 3 Symmetriska chier En typ av moderna chier är de symmetriska chiren som använder sig av en delad nyckel, dvs både sändare och mottagare måste ha tillgång till samma nyckel för att kunna kryptera och dekryptera. Det nns två olika typer av symmetriska chier, blockchier och ödeschier. Blockchiren delar upp informationen som skall krypteras i block av en xerad storlek medan ödeschier krypterar varje symbol skilt för sig. Flödeschiren är främst framtagna för att hantera kontinuerliga informationsöden. 3.1 Block chier Blockchier krypterar meddelanden genom att dela upp dem i bitar (block) av bestämd längd och kryptera dem skilt för sig. Den xerade längden kallas blockstorlek och är i moderna blockchier oftast 64 bitar. Man anväder samma krypteringsalgoritm för att kryptera alla block. Krypteringsalgoritmen bör helst vara reversibel för att det skall vara enklare att implementera (i antingen mjukeller hårdvara) eftersom man då kan använda samma implementering för både kryptering och dekryptering. 3.1.1 Data Encryption Standard Den kanske mest kända metoden av blockchier är Data Encryption Standard, DES. Metoden kallas även ibland the Data Encryption Algorithm, DEA. DES utvecklades först av IBM under namnet LUCIFER men utveklades vidare av the American National Security Agency, NSA, och National Bureau of Standards 6

KAPITEL 3. SYMMETRISKA CHIFFER 7 and Technology, NBST, och gav i januari 1977 upphov till DES ([Salomon03], s 170). Metoden togs fram för att användas för att kryptera oklassicerad data (information som inte handlar om den nationella säkerheten). Olika former av algoritmen används idag internationellt bl.a. av banker som vill överföra pengar på ett säkert sätt. DES använder sig av binära tal och har en blockstorlek på 64 bitar. Även nyckeln är 64 bitar men endast 56 av dem används. En fördel med DES är att alla detaljer i algoritmen är kända, den är lätt att implementera och metoden är relativt snabb. En nackdel är att dagens datorer är så eektiva att de relativt snabbt kan forcera DES eftersom den har en så kort nyckel. Därför har man idag börjat använda olika varianter av original DES. DES opererar i tre steg. Jag kommer här att endast återge huvuddragen, ett exempel på hur man krypterar med DES nns i bilaga B. Innan man kan påbörja själva krypteringen måste man från nyckeln tillverka 16 delnycklar. Dessa fås genom att permutera nyckeln genom ett visst mönster. När man fått dessa kan man påbörja själva krypteringen. Man delar upp meddelandet så att det består av 64 bitars block. Dessa krypteras skilt för sig. Först permuterar man blocket genom ett visst mönster. Sedan kommer man att via vissa funktioner att kombinera delar av meddelandet med delnycklarna. För att hela blocket skall bli krypterat krävs 16 iterationer. När detta är gjort utförs en slutlig permutation. 3.1.2 Säkerhetsaspekter En av svagheterna med DES är att nyckeln är relativt kort. För specialla maskiner tar det idag endast några timmar att knäcka DES kod ([Salomon03] s172). För att råda bot på detta används istället trippel-des (krypterings-dekrypteringskrypterings-trippel DES) där DES algoritmen utförs era gånger på samma text med olika nycklar. Krypteringen görs enligt följande c E k1 (D k2 (E k1 (m))) och dekrypteringen m D k1 (E k2 (D k1 (c))), där E är en krypteringsfunktion och D en dekrypteringsfunktion. Ifall k 1 =k 2 fås vanliga DES. Samma metod kan även användas med tre olika nycklar k 1, k 2 och k 3. Nackdelen med trippel DES är att det är väldigt långsamt, därför har man idag utvecklat ett nytt system kallat AES.

KAPITEL 3. SYMMETRISKA CHIFFER 8 Svaga och halvsvaga nycklar I DES nns det nns 16 nycklar som bör undvikas. Dessa kallas svaga och halvsvaga nycklar (eng. weak and semiweak keys). När man slumpmässigt genererar en nyckel så är sannolikheten för att man skall få en svag eller halvsvag nyckel väldigt liten, 16 2,2 10 16. De svaga nycklarna är fyra stycken; den som består 2 av enbart av nollor, 56 den som består av enbart ettor och de två som alternerar enbart ettor och nollor. Dessa påverkas inte av någon permutation och ger därmed upphov till identiska delnycklar. De halvsvaga nycklarna är sex nyckelpar som krypterar en text på samma sätt. Man kan kryptera med den ena nyckeln och dekryptera med den andra vilket utgör en säkerhetsrisk. Dessa nycklar nns i tabell 3.1([Salomon03] s 171). 01FE 01FE 01FE 01FE och FE01 FE01 FE01 FE01 1FE0 1FE0 0EF1 0EF1 och E01F E01F F10E F10E 01EO 01E0 01F1 01F1 och E001 E001 F101 F101 1FFE 1FFE 0EFE 0EFE och FE1F FE1F FE0F FE0E 011F 011F 010E 010E och 1F01 1F01 0E01 0E01 E0FE E0FE F1FE F1FE och FEE0 FEE0 FEF1 FEF1 Tabell 3.1: Halvsvaga nycklar i DES Nyckellängden DES har kritiserats för den korta nyckellängden. När metoden lanserades föreslog forskare många olika teoretiska designer på maskiner som skulle kunna knäcka DES genom brute force. På 1970-talet var dessa maskiner möjliga att bygga men oerhört dyra. Enligt [Stallings03] (s 82) skulle en maskin som kunde knäcka DES kod på en dag år 1977 kosta ungefär 20 miljoner dollar att bygga. En sådan maskin byggdes aldrig. Från och med år 1997 har era tävlingar utlysts som går ut på att knäcka DES nycklar. Under en sådan tävling 1998 byggde the Electronic Frontier Foundation, EFF en maskin som knäckte nyckeln på 22 timmar och 15 minuter. Det som gör denna maskin speciell är att den endast kostade 250000 dollar att bygga ([Stallings03] s 82). Detta var ett bevis på att DES inte mera var en säker metod.

KAPITEL 3. SYMMETRISKA CHIFFER 9 De 16 permutationsvarven Forskning visar att redan efter 5 varv är varje bit av chiertexten en funktion av varje bit i klartexten och varje nyckelbit ([Salomon03] s 172). Om man skulle använda endast 5 varv istället för 16 skulle processen bli mycket snabbare men även lättare att knäcka. DES som använder färre än 16 varv kan enkelt knäckas med dierentiell kryptoanalys (ifall en del av klartexten är känd). S-boxarna Ursprungligen bestämdes innehållet i S-boxarna (se bilaga B) av IBM:s designteam men de ändrades senare enligt NSA:s krav. Många misstänkte att NSA hade ändrat S-boxarna för att lämna en falluckefunktion (eng. trapdoor) men det har visat sig att NSA:s ändringar gjorde DES säkrare mot attacker av dierentiell kryptoanalys. Dierentiell kryptoanalys var inte känd (=publicerad) före 1990, men tydligen kände NSA till metoden tidigare. DES är en ganska enkel krypteringsmetod och man kan lätt få intrycket att vem som helst lätt kan designa en egen symmetrisk krypteringsmetod. Det är dock inte så enkelt, t.ex. så verkar S-boxarna vara helt godtyckliga men Biham och Shamir ([Kaufman02] s 74) har visat att redan en så liten ändring som att byta plats på S-box 3 och S-box 7 gör DES mycket svagare mot en specicerad attack. Tyvärr har designprocessen av DES (och speciellt S-boxarna) hemlighållits så ingen vet exakt hur dessa konstruerats. 3.2 Flödeschier När man använder sig av en lång slumpmässing (egentligen pseudo-slumpmässig) sträng för att kryptera ett meddelande med hjälp av XOR-operatorn,, kallas det för ett engångskrypto (eng. one-time pad). Under förutsättningen att en helt slumpmässig sträng används är metoden helt säker ([Singh03] s 414). Oftast används dock pseudo-slumpmässiga strängar, trots detta är metoden ändå både enkel och säker. Ett ödeschier (eng. stream cipher) generarar ett engångskrypto och applicerar det på en sträng av klartext med XOR-operatorn.

KAPITEL 3. SYMMETRISKA CHIFFER 10 3.2.1 RC4 RC4 är ett ödeschier utvecklat av Ron Rivest år 1987. Metoden var ursprungligen hemlig men läckte ut i oentligheten 1994. RC4 är ett registrerat namn så ibland kallas metoden även ARCFOUR. Idag används RC4 mycket i SSL (för att säkra internettrak) och WEP (för att säkra trådlösa nätverk). Metoden är väldigt enkel och fungerar på följande sätt: först genereras en pseudoslumpmässig sträng av bits som XOR:as med klartexten. Även om man känner till tidigare skapad pseudosträng kan man inte förutse vad som kommer att generaras till näst. Nyckelsträngen genereras i två steg. Den första delen, KSA (Key Scheduling Algorithm) körs endast en gång per datapaket. Nedan nns ett exempel på hur KSA kan implementeras i java. Den första for-loopen producerar en array S med talen 0 till 255. Följande for-loop ändrar ordningen på dessa tal enligt ett mönster som styrs av en sk långtidsnyckel som är förutbestämd av t.ex. nätadministratören. for(i=0; i<256; i++){ S[i]=i } j=0; for(i=0; i<256; i++) { j=(j+s[i]+key[i%keylen])%256 temp=s[i]; S[i]=S[j]; S[j]=temp; } i=0; j=0; i=(i+1)%256; j=(j+s[i])%256; temp=s[i]; S[i]=S[j]; S[j]=temp; t=(s[i]+s[j])%256; K=S[t]; Figur 3.1: KSA-kod i java Figur 3.2: PRGA-kod i java Den andra delen, PRGA (Pseudo-Random Generation Algorithm), är den som genererar själva pseudosträngen av nyckeln. Den körs för varje byte av data som skall krypteras. Man byter ordningen på talen. När man erhåller K (som är själva krypteringsnyckeln) kan man utföra en XOR-operation med sin klartext och få kryptotexten.

Kapitel 4 Asymmetriska chier En annan typ av moderna chier är de asymmetriska. Idén med öppen nyckel kryptogra presenterades år 1976 av Whiteld Die och Martin Hellman. Metoden baserar sig på konceptet asymmetrisk nyckel. Traditionella krypteringsmetoder använder sig av symmetrisk nyckel, dvs samma nyckel används för att kryptera och dekryptera. I öppen nyckel kryptering används två skilda nycklar för de två procedurerna. Det nns ett samband mellan dessa två nycklar. En fördel med denna metod är att man inte har något problem med att se till så att mottagaren får tillgång till nyckeln. En annan fördel med detta är att det behövs ett mycket mindre antal nycklar om era personer skall skicka krypterade meddelande åt varandra. Varje person behöver bara en oentlig och en privat nyckel. För att kryptera och dekryptera går man till väga på följande sätt: 1. Varje användare har ett par av nycklar för kryptering och dekryptering. 2. Varje användare publicerar den ena nyckeln (=gör den tillgänglig för de andra användarna). Detta är den öppna (publika, oentliga) nyckeln. Den andra förblir hemlig (privat). 3. Om person B vill skicka ett krypterat meddelande åt A så krypterar han sitt meddelande med A:s öppna nyckel. 4. A kan sedan dekryptera meddelandet med sin privata nyckel. 11

KAPITEL 4. ASYMMETRISKA CHIFFER 12 4.1 Några satser ut talteorin Före vi närmare kan gå in på en av de mest kända krypteringsmetoderna som använder sig av öppen nyckel så måste vi ta upp lite satser från talteorin. Vi börjar med att deniera primtal: Denition 4.1 Ett heltal n>1, som inte är delbart med några andra positiva heltal än 1 och n kallas primtal. Alla övriga heltal, n>1, kallas sammansatta. Sats 4.2 Talteorins fundamentalsats Varje heltal n>1 kan skrivas som en produkt av primtal. Primtalsuppdelningen är entydig bortsett från faktorernas ordningsföljd. Enligt Euklides så existerar det ett oändligt antal primtal. Denition 4.3 Talen a och b sägs vara kongruenta modulo d (a är kongruent med b modulo d) om och endast om d (a-b), dvs om det nns ett heltal n sådant att a-b=dn. Detta betecknas: a b (mod d). Om a och b är två heltal som inte båda är 0 så har de ett ändligt antal gemensamma delare. Den största av dem betecknas sgd(a,b). Om sgd(a,b)=1 kallas a och b relativt prima. Sats 4.4 Fermats lilla sats. Om p är ett primtal så gäller att a p 1 1 (mod p) för alla heltal a som inte är delbara med p. Sats 4.5 Eulers sats. Antag att a är ett heltal och n är ett positivt heltal som är relativt primiskt till a. Då gäller: a φ(n) 1 (mod n). Specialfallet n=p ger att φ(n)=p-1. Vi får då a p 1 1 (mod p) vilket är Fermats lilla sats.

KAPITEL 4. ASYMMETRISKA CHIFFER 13 4.2 RSA Det första enkla och även praktiska chier som baserade sig på assymetriska nycklar uppfanns år 1977 av Ronald Rivest, Adi Shamir och Leonard Adleman och är det vi idag kallar RSA kryptogra. RSA var en revolutionerande uppnning som baserar sig på egenskaper hos primtal. Säkerheten i systemet ligger i att det är relativt enkelt att multiplicera två stora primtal men det är praktist taget omöjligt att hitta primtalsfaktorer i ett stort heltal. Med ett stort heltal menas här ett tal med hundratals siror. RSA Laboratories rekommenderar idag nycklar av storleksordningen 768 bitar (bits) för privat bruk, 1024 bitar för företag och 2048 bitar för extremt känsliga meddelanden. Ett tal av storleksordningen 1024 bitar är ett decimalt tal med 309 siror. RSA-algoritmen går ut på följande: 1. Välj två stora primtal p och q och räkna ut n=p q. 2. Räkna ut φ(n)=(p-1)(q-1). Där φ(n) är Eulers φ-funktion. 3. Välj slumpmässigt ett tal e<φ(n) så att sgd(e,φ(n))=1 och räkna ut d enligt ed 1 (mod φ(n)). 4. {e,n} blir den oentliga nyckeln. p, q och φ(n) kan nu förstöras. {d,n} är den privata nyckeln. e kallas krypteringsexponent, d kallas dekrypteringsexponent och n krypteringsmodul. När man vill skicka ett krypterat meddelande (m<n) görs det enligt följande: c=m e (mod n) där c är chiertexten, m är klartexten och e och n den öppna nyckeln. Meddelandet dekrypteras enligt m=c d (mod n), där m är klartexten, c är chiffertexten och {d,n} den privata nyckeln. För att klargöra hur algoritmen fungerar tar vi följande exempel: (p och q väljs små för att underlätta uträkningarna) Väljer p=11 och q=17. Får då n=p q=11 17=187. φ(n)=(p-1)(q-1)=10 16=160. Väljer ett e som uppfyller sgd(e, φ(n))=1, 1<e<φ(n). Alltså sgd(e,160)=1, 1<e<160.

KAPITEL 4. ASYMMETRISKA CHIFFER 14 Ett värde på e som uppfyller detta är e=3. Räknar sedan ut d från ed 1 (mod φ(n)), 3d 1 (mod 160). Vi får då att d=267. Den oentliga nyckeln blir således {e,n}={3,187} och den privata blir {d,n}={267,187}. Om vi då vill kryptera DENNA TEXT SKALL KRYPTERAS konverterar vi först bokstäverna till tal enligt följande schema: A=01, B=02, C=03,..., Ä=28, Ö=29, mellanslag=00. (Man kan även ge bokstäverna siervärden på andra sätt. T.ex genom att ge dem deras ASCII-värde där A=0100001 2 =065 10, B=01000010 2 =066 10 osv. En fördel med detta system är att även specialtecken har givna siervärden.) Om vi använder A=00, B=01 osv så får vi: 04 05 14 14 01 (00) 20 05 24 20 (00) 19 11 01 12 12 (00) 11 18 25 16 20 05 18 01 19. Eftersom inga missförstånd kan uppstå kan mellanslagen lämnas bort i texten. Chiertexten fås ur ekvationen c=m e (mod n). Vår första bokstav D (som vi konverterat till 04) ger insatt i ekvationen c=(04) 3 (mod 187) = 064. Vi vet dessutom att c och m [0,186]. När vi fortsätter på detta sätt får vi: 064 125 126 126 001 146 125 173 146 127 022 001 045 045 022 035 104 169 146 125 035 001 127. Dekrypteringen görs på samma sätt med hjälp av ekvationen m=c d (mod n). Som exempel tar vi den första bokstaven i kryptotexten, 064. När vi sätter in det i ekvationen får vi m=064 267 (mod 187) = 04 = D. Säkerheten i RSA Säkerheten i RSA bygger på att det är svårt att faktorisera stora tal. Än så länge nns det ingen enkel metod för hur man gör detta. När man kommer på en sådan metod kan man inte längre anväda RSA på ett säkert sätt.

KAPITEL 4. ASYMMETRISKA CHIFFER 15 Det nns tre olika sätt att försöka forcera RSA: Brute force metoden går ut på att man försöker pröva alla olika alternativ till privata nycklar. Att ett system går att knäcka på detta sätt kan förhindras genom att välja tillräckligt stor nyckel. Forcering genom en matematiska attack går ut på att man försöker faktorisera primtal. Än så länge är detta svårt och tidskrävande. Att använda sig av en tidtagningsattack är ofta ett oväntat sätt. Metoden går ut på att man tar tid hur länge det tar för en dator att dechirera en text vilket ger ledtrådar om nyckeln och dess längd. För att förhindra detta kan man alltid ha en konstant exponeringstid eller lägga in slumpmässiga fördröjningar. 4.2.1 Signerade budskap Ifall man vill vara säker på att avsändaren är den som han utger sig för att vara kan man använda sig av signerade budskap. RSA-systemet kan även användas för detta ändamål. Antar att A vill skicka ett signerat meddelande åt B. Vi kallar A:s oentliga nyckel för {e A, n A }, A:s privata nyckel för {d A, n A }, B:s oentliga nyckel för {e B, n B } och B:s privata nyckel för {d B, n B }. När A vill skicka ett signerat meddelande åt B gör han på följande sätt: Först dekrypterar han meddelandet m med sin egen privata nyckel för att få en signerad text, σ=m d A (mod n A ). Sedan skall det signerade meddelandet krypteras med hjälp av B:s oentliga nyckel. Då får man kryptotexten c=σ e B (mod n B ). När B sedan mottar meddelandet skall han först dekryptera det i vanlig ordning med hjälp av sin privata nyckel för att få det signerade meddelandet, σ=c d B (mod n B ). För att sedan få klartexten så måste han använda sig av A:s oentliga nyckel för att kryptera meddelandet, m=σ e A (mod n A ). Om han då får fram en klartext (och inga misstag har begåtts i varken kryptering eller dekryptering) så kan han vara säker på att A var avsändaren eftersom ingen annan har tillgång till A:s privata nyckel som behövdes för signeringen.

Kapitel 5 Hur kryptering fungerar i dagens datorer Fördelen med symmetriska chier är att de är väldigt snabba. I mjukvara är DES ungefär 100 gånger snabbare än RSA och i hårdvara mellan 1000 och 10000 gånger snabbare beroende på implementeringen. Problemet är hur man skall se till att mottagaren får tillgång till nyckeln som behövs för dekrypteringen på ett säkert sätt. Asymmetriska krypton har inte detta problem eftersom både sändare och mottagare har egna nycklar för kryptering och dekryptering. Problemet är att dessa är väldigt långsamma metoder. I dagens datorer används oftast en kombination av dessa två metoder. Man krypterar själva meddelandet med en symmetrisk metod och nyckeln till den symmetriska metoden krypteras med en asymmetrisk metod. 5.1 Secure Socket Layer, SSL För att upprätta en säker överföring av information använder sig de internetsidor som handskas med känslig information (t.ex. nätbanker och webbmail) av en funktion som heter Secure Socket Layer (SSL) för att säkra överföringen av information. Utan att gå in på närmare detaljer fungerer metoden enligt följande: (Antar att vi har en webbläsare som önskar en säkrad kontakt med en server.) 1. Först skickar webbläsaren ett meddelande åt servern att denna önskar en 16

KAPITEL 5. HUR KRYPTERING FUNGERAR I DAGENS DATORER 17 säkrad kontakt (oftast https:). I detta meddelande listar webbläsaren de krypteringsmetoder den stöder, t.ex. DES, AES, IDEA och RC4. 2. Servern svarar genom att skicka sitt certikat åt webbläsaren tillsammans med sin oentliga nyckel och meddelar vilken krypteringsmetod den önskar använda. 3. Webbläsaren kontrollerar att certikatet är utfärdat av en pålitlig part, att det är i kraft och att det tillhör den server som kontaktats samt godkänner den krypteringsmetod som servern föreslagit. 4. Webbläsaren använder serverns oentliga nyckel för att generera en krypteringsnyckel och skickar detta krypterat åt servern tillsammans med den URL som önskas. 5. Servern dekrypterar kryptonyckeln med sin privata nyckel och använder denna för att dekryptera webbläsarens önskemål. 6. Servern skickar den önskade informationen krypterad med nyckeln. 7. Webbläsaren dekrypterar det skickade datat med nyckeln och visar informationen för användaren. För en session behövs alltså både en symmetrisk och asymmetrisk krypteringsmetod. Som symmetriska krypteringsmetoder används oftast DES, AES och RC4. Som asymmetrisk krypteringsmetod används oftast RSA. Detta är endast en mycket förenklad förklaring på hur det går till. För att säkra överföringen använder man sig även av handskakning och hash-tabeller. 5.2 Pretty Good Privacy När man däremot vill kryptera t.ex. e-post så kan man använda sig av hybridkrypton. Dessa är en kombination av symmetriska och asymmetriska chier, man använder först en snabb algoritm (=symmetriskt krypto) för att kryptera meddelandet som oftast är stort och en långsam algoritm (=asymmetriskt krypto) för att kryptera nyckeln som oftast är liten. Ett av de vanligaste hybridkryptona är Pretty Good Privacy, PGP. PGP är ett så kallat open source program som utvecklades av Phil Zimmermann år 1991. Idag nns det även komersiella varianter av PGP. Metoden används främst för att kryptera e-post.

KAPITEL 5. HUR KRYPTERING FUNGERAR I DAGENS DATORER 18 PGP börjar med att komprimera texten som skall krypteras. Komprimeringen förkortar tiden det tar att skicka meddelandet, det sparar diskutrymme och ökar säkerheten. De esta metoder som används för att knäcka ett chier går ut på att analysera mönster i texten, genom att komprimera klartexten minskar dessa mönster och det blir svårare att knäcka chiret. När komprimeringen är gjord skapar PGP en hemlig sessionsnyckel som används endast en gång. Denna nyckel är ett sluptal som genereras genom att man slumpmässigt rör på musen och trycker ner tangenter på tangentbordet. Nyckeln används för att kryptera texten med en symmetrisk krypteringsmetod. Den ursprungliga versionen av PGP använde IDEA som påminner om DES, nya versioner kan även använda andra algoritmer (se tabell 5.2). När datat är krypterat skall även sessionsnyckeln krypteras. Denna krypteras med ett asymmetriskt chier, oftast RSA. Man använder då mottagarens oentliga nyckel. Den krypterade nyckeln skickas sedan tillsammans med chiertexten åt mottagaren. Ifall man vill signera budskapet görs det enklast genom att signera nyckeln på det som jag beskrivit i 4.2.1. PGP 2.x OpenPGP PGP 9.0 (RFC 1991) (RFC 2440) Asymmetriska *RSA (kryptering RSA (kryptering & RSA (kryptering algoritmer & signatur) signatur) & signatur) *DES (signatur) Die-Hellman/DSS *Elgamal (kryptering) (kryptering & signatur) Symmetriska *IDEA IDEA AES algoritmer *3DES IDEA CAST5 3DES Blowsh (chier) CAST5 SAFER-SK128 Blowsh (chier) Hash *MD5 MD2 MD5 algoritmer MD5 RIPEMD-160 RIPEMD-160 *SHA-1 SHA-1 SHA-256 SHA-384 SHA-512 Komprimerings ZIP ZIP ZIP algoritmer zlib BZip2 zlib Tabell 5.1: Egenskaper hos olika versioner av PGP. Obligatoriska algoritmer är märkta med *.

Kapitel 6 Sammanfattning De moderna krypteringsmetoder som anväds idag är rätt så säkra för dagens behov. Datorerna utvecklas dock hela tiden vilket gör att även krypteringsmetoderna måste utvecklas. I min uppsats har jag endast tagit upp några av de metoder som används idag. Det nns många er, även sådana som är säkrare. Problemet är att de metoder som är säkrare oftast även är långsamma vilket gör att de inte lämpar sig för att användas i dagligt bruk på internet. Både de symmetriska och de asymmetriska krypteringsmetoderna som jag fokuserat på i min uppsats har sina för och nackdelar. Genom att kombinera dessa två som SSL och PGP gör får man ut det bästa ur de två metoderna. Det gäller dock ändå att se till att nycklarna väljs säkra och att de hemliga nycklarna hålls hemliga. Det har varit väldigt intressant att undersöka på vilka olika sätt text kan krypteras och hur det görs i praktiken. I normala fall är det inte något man fäster så stor uppmärksamhet vid utan för det mesta hoppas man bara att ingen skall komma åt t.ex. ens kreditkortsnummer när man handlar via internet. Nu har jag fått en lite bättre uppfattning om hur det hela fungerar och hur säkert det är. 19

Litteraturförteckning [Kahn96] Kahn, David: The Codebreakers, Schribner, 1996 [Kaufman02] Kaufman, Charlie, Perlman, Radia & Speciner Mike: Network Security: Private Communication in a Public World, Pretice Hall PTR 2002 [Mao04] Mao, Wenbo: Modern Cryptography: Theory & Practice, Prentice Hall PTR 2004 [Salomon03] Salomon, David: Data Privacy and Security, Springer-Verlag 2003 [Singh03] Singh, Simon: Kodboken, Norstedts Förlag 2003 [Sjöberg92] Sjöberg, Boris: Grundkurs i talteori, Kompendium utgivet av Sigma vid Åbo Akademi 1992 [Stallings03] Stallings, William: Cryptography and Network Security: Principles and Practices, Prentice Hall PTR 2003 [skytale] bild 2.1 infogad från http://www.apprendre-enligne.net/crypto/transpo/scytale.html 10.11-05 20

Bilaga A Ordlista Asymmetriskt Samma som öppen nyckel kryptering. Man krypteringssystem använder olika nycklar för att kryptera och dekryptera. Chier Ett sätt att förvränga text eller annan data på bokstavsnivå så att den blir oläsbar för dem som inte har kunskap om vilken metod och vilken kryptonyckel som används. Dekryptering Motsatsen till kryptering. Forcera Att få fram klartexten ur en kryptotext utan att ha kännedom om vilken kryptonyckel som använts. Homofoniska En grupp av chier som kombinerar substitutionschier egenskaper av de monoalfabetiska och de polyalfabetiska chiren. Klartext Den text (eller annan data) som skall krypteras eller har dekrypterats. Kod Substitution på ord- eller frasnivå. Krypteringsalgoritm Samma som chier. Kryptering Förvanskningsprocessen utförd av ett chier. Kryptologi Läran om chier. Kryptotext Krypterad text eller annan krypterad data. 21

BILAGA A. ORDLISTA 22 Monoalfabetisk En form av kryptering där en bokstav i klarsubstitution texten alltid ersätts med samma bokstav i chiertexten. Nyckel Den hemliga information som är känd endast av sändaren och mottagaren och som används för att säkergöra klartext. Polyalfabetisk En form av kryptering där en bokstav i alfasubstitution betet inte alltid är ersatt av samma bokstav i chiertexten. Symmetriskt Samma som delad nyckel kryptering. Man krypteringssystem använder samma nyckel för att kryptera och dekryptera.

Bilaga B Exempel på hur man krypterar med DES Nedan följer ett exempel på hur man krypterar med DES. Anta att det meddelande vi vill kryptera är m=0123456789abcdef i basen 16. Vi måste då först konvertera detta till ett binärt tal. Ifall texten som skall krypteras inte är 64 bitar lång (eller en multipel av 64 bitar) så måste man lägga till blanktecken på slutet. DES krypterar alltid 64 bitar åt gången, om texten är längre delas den upp i 64 bitars delar som krypteras skilt för sig. Vår kryptotext i binär form är m= 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111. Väljer godtyckligt nyckeln k=133457799bbcdff1 16 =00010011 00110100 0101-0111 01111001 10011011 10111100 11011111 11110001 2. Tillverkning av delnycklar Innan själva meddelandet kan krypteras bör man framställa 16 delnycklar. Först permuteras nyckeln k (av längden 64 bitar) enligt tabell PC1. Detta innebär att bit 0 i k' skall vara den bit som står på plats 57 i k. Bit 1 skall vara den på plats 49 osv. Bitarna 1, 8, 15 22, 29, 36, 43 och 50 från den ursprungliga nyckeln faller bort. Vi får således k'= 1111000 0110011 0010101 0101111 0101010 1011001 1001111 0001111. Nyckeln delas sen upp i en vänster- (c 0 ) och en högerhalva (d 0 ). I vårt exempel blir c 0 = 1111000 0110011 0010101 0101111 och d 0 = 0101010 1011001 1001111 0001111. 23

BILAGA B. EXEMPEL PÅ HUR MAN KRYPTERAR MED DES 24 Bit 0 1 2 3 4 5 6 1 57 49 41 33 25 17 9 8 1 58 50 42 34 26 18 15 10 2 59 51 43 35 27 22 19 11 3 60 52 44 36 29 63 55 47 39 31 23 15 36 43 7 62 54 46 38 30 22 14 6 61 53 45 37 29 50 21 13 5 28 20 12 4 Figur B.1: PC1 Därefter produceras 16 block kallade c n och d n, 1 n 16. Varje par c n och d n formas av det föregående paret c n 1 och d n 1 genom att använda följande schema för vänstershift. Iterationsnummer Antalet vänstershift 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1 Vi får följande nyckelpar: c 0 = 1111000011001100101010101111 d 0 = 0101010101100110011110001111 c 1 = 1110000110011001010101011111 d 1 = 1010101011001100111100011110. c 16 = 1111000011001100101010101111 d 16 = 0101010101100110011110001111 Bildar sedan nycklarna K n för 1 n 16 genom att använda permutationen PC2 på varje par c n d n. Varje par har 56 bitar men endast 48 av dem kommer att användas.

BILAGA B. EXEMPEL PÅ HUR MAN KRYPTERAR MED DES 25 Bit 0 1 2 3 4 5 1 14 17 11 24 7 3 28 15 6 21 1 5 10 13 23 19 12 4 26 8 19 16 7 27 20 13 2 25 41 52 31 37 47 55 31 30 40 51 45 33 48 37 44 49 39 56 34 53 43 46 42 50 36 29 32 Figur B.2: PC2 Den första biten i K n är således den 14:e biten i c n d n, den andra är den 17:e osv. Nu faller bitarna 1, 7, 13, 19, 25, 31, 37 och 43 bort. Vi får då att c 1 d 1 = 1110000 1100110 0101010 1011111 1010101 0110011 0011110 0011110 ger nyckeln K 1 =000110 110000 001011 101111 111111 000111 000001 110010. De följande nycklarna blir: K 2 = 011110 011010 111011 011001 110110 111100 100111 100101. K 16 = 110010 110011 110110 001011 000011 100001 011111 110101. Vi har nu fått fram de 16 nycklarna som används för att kryptera meddelandet. Kryptering av meddelandet Steg 1 Vi börjar med att utföra en initiell permutation, IP, på vår klartext. Bit 0 1 2 3 4 5 6 7 1 58 50 42 34 26 18 10 2 9 60 52 44 36 28 20 12 4 17 62 54 46 38 30 22 14 6 25 64 56 48 40 32 24 16 8 33 57 49 41 33 25 17 9 1 41 59 51 43 35 27 19 11 3 49 61 53 45 37 29 21 13 5 56 63 55 47 39 31 23 15 7 Figur B.3: IP Vår klartext M=0000 0001 0010 0011 0100 0100 0101 0110 0111 1000 1001 1010

BILAGA B. EXEMPEL PÅ HUR MAN KRYPTERAR MED DES 26 1011 1100 1101 1110 1111 blir efter den första permutationen IP= 1100 1100 0000 0000 1100 1100 1111 1111 1111 0000 1010 1010 1111 0000 1010 1010. IP delas upp i en vänster- (L 0 ) och en högerhalva (R 0 ). L 0 =1100 1100 0000 0000 1100 1100 1111 1111 R 0 =1111 0000 1010 1010 1111 0000 1010 1010 Steg 2 Gå igenom 16 iterationer för 1 n 16 med hjälp av en funktion f som opererar på ett 32 bitars datablock och en 48 bitars nyckel och producerar ett block på 32 bitar. L n =R n 1 R n =L n 1 f(r n 1, K n ) Funktionen f fungerar enligt följande: Först utvidgas R n 1 från 32 bitar till 48 bitar genom att upprepa vissa bitar på följande sätt: E(R n 1 )= 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1. Till näst skall K n E(R n 1 ) räknas ut. Sätt K n E(R n 1 )=B 1 B 2... B 8, där B 1 består av sex bitar. Ur detta räknas S 1 (B 1 )S 2 (B 2 )... S 8 (B 8 ) ut, S i (B i ) är outputen av den i:te S-boxen. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 2 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0 3 15 2 8 2 4 9 1 7 5 11 3 14 10 0 6 13 Tabell B.1: S1 Första och sista biten i B representerar i basen 2 ett decimalt tal mellan 0 och 3 (00 2 till 11 2 ). Detta tal kallas för i. De fyra mellersta bitarna av B representerar ett decimalt tal mellan 0 och 15 i basen 2. Detta tal kallas för j. Sök upp det tal som nns på rad i och kolumn j, detta tal är outputen från S 1 (B). Ex B 1 =011011 2. Första och sista biten ger 01 2 =1 10 vilket ger att vi ska välja rad 1. De mittersta bitarna 1101 2 =13 10 vilket ger kolumn 13. Vi får alltså outputen

BILAGA B. EXEMPEL PÅ HUR MAN KRYPTERAR MED DES 27 S 1 (B 1 )=5 10 =0101 2. Det nns motsvarande tabeller för S2 till S8, dessa nns längst bak i denna bilaga. Från första omgången får vi outputen K 1 E(R 0 )=011000 010001 011110 111010 100001 100110 010100 100111. När vi fortsätter får vi slutligen att S 1 (B 1 )S 2 (B 2 )...S 8 (B 8 )=0101 1100 1000 0010 1011 0101 1001 0111. Sista steget i uträkningen av f är att utföra en permutation, P. f = P (S 1 (B 1 )...S 8 (B 8 )) 16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10 2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25 Figur B.4: P Vi får f= 0010 0011 0100 1010 1010 1001 1011 1011 vilket ger: R 1 = L 0 f(r 0, K 1 )= 1100 1100 0000 0000 1100 1100 1111 1111 0010 0011 0100 1010 1010 1001 1011 1011 = 1110 1111 0100 1010 0110 0101 0100 0100 Vi har nu räknat ut det första paret L 1, R 1. Nästa varv har vi L 2 = R 1 och skall räkna ut R 2 = L 1 f(r 1, K 2 ). Sedan fortsätter man likadant i 16 varv för att få alla L i, R i (1 i 16). Steg 3 När vi fått L 16 och R 16, fogar vi ihop dem till ett 64 bitars block, R 16 L 16, och utför en slutlig permutation IP 1.

BILAGA B. EXEMPEL PÅ HUR MAN KRYPTERAR MED DES 28 Vi har L 16 =0100 0011 0100 0010 0011 0010 0011 0100 och R 16 =0000 1010 0100 1100 1101 1001 1001 0101 som ger R 16 L 16 =00001010 01001100 11011001 10010101 01000011 01000010 00110010 00110100. Bit 0 1 2 3 4 5 6 7 1 9 17 25 37 5 45 13 53 21 61 29 33 36 4 44 12 52 20 60 28 41 35 3 43 11 51 19 59 27 49 40 8 48 16 56 24 64 32 39 7 47 15 55 23 63 31 38 6 46 14 54 22 62 30 34 2 42 10 50 18 58 26 56 33 1 41 9 49 17 57 25 Figur B.5: IP 1 IP 1 =10000101 11101000 00010011 01010100 00001111 00001010 10110100 00000101 som i hexadecimal form är 85E813540F0AB405. Detta är vårt krypterade meddelande. Dessa tre steg används både för kryptering och dekryptering. Tabellerna S2-S8: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10 1 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5 2 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15 3 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9 Tabell B.2: S2 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8 1 13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1 2 13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7 3 1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12 Tabell B.3: S3

BILAGA B. EXEMPEL PÅ HUR MAN KRYPTERAR MED DES 29 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15 1 13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9 2 10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4 3 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14 Tabell B.4: S4 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9 1 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6 2 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14 3 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3 Tabell B.5: S5 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11 1 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8 2 9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6 3 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13 Tabell B.6: S6 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1 1 13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6 2 1 4 11 13 12 3 7 14 10 15 6 8 0 15 9 2 3 6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12 Tabell B.7: S7 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7 1 1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2 2 7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8 3 2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11 Tabell B.8: S8