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



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

RSA-kryptering och primalitetstest

Den mest väsentliga skillnaden mellan

MA2047 Algebra och diskret matematik

NÅGOT OM KRYPTERING. Kapitel 1

Grundläggande krypto och kryptering

Primtal, faktorisering och RSA

Krypteringteknologier. Sidorna ( ) i boken

Offentlig kryptering

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

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

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

Grundläggande kryptering & chiffer

Övning 6 - Tillämpad datalogi 2012

inte följa någon enkel eller fiffig princip, vad man nu skulle mena med det. All right, men

Några satser ur talteorin

Grundfrågor för kryptosystem

Datasäkerhet. Petter Ericson

E-legitimationer. Jonas Wiman. LKDATA Linköpings Kommun.

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

Talteori (OBS en del frågor gäller diofantiska ekvationer och de tas inte upp från och med hösten 2012)

Krypteringens historia och användningsområden

PGP håller posten hemlig

Metoder för sekretess, integritet och autenticering

Hela tal LCB 1999/2000

Foto: Björn Abelin, Plainpicture, Folio bildbyrå Illustrationer: Gandini Forma Tryck: Danagårds Grafiska, 2009

SLU Säkerhets instruktioner avseende kryptering av filer

Resträkning och ekvationer

STYRANDE SATSER. 1) Skriv ett program som räknar ut hur många år du har till pensionen. Vi räknar här med att man pensioneras det år man fyller 65 år.

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

Kryptering. Krypteringsmetoder

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

Datasäkerhet. Informationsteknologi sommarkurs 5p, Agenda. Slideset 10. Hot mot datorsystem. Datorsäkerhet viktigare och viktigare.

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

256bit Security AB Offentligt dokument

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

18 juni 2007, 240 minuter Inga hjälpmedel, förutom skrivmateriel. Betygsgränser: 15p. för Godkänd, 24p. för Väl Godkänd (av maximalt 36p.

kvoten mellan två på varandra följande tal i en talföljd är konstant alltid lika stor.

1, 2, 3, 4, 5, 6,...

Matematik 5 Kap 2 Diskret matematik II

Kryptering och primtalsfaktorisering

Kapitel 2: De hela talen

1. Inledning, som visar att man inte skall tro på allt man ser. Betrakta denna följd av tal, där varje tal är dubbelt så stort som närmast föregående

Algebra och kryptografi Facit till udda uppgifter

Alan Turing Har du någonsin undrat vem det var som uppfann datorn? Har du någonsin undrat vem det var som gav England oddsen på att vinna det andra

4. Bestäm alla trippler n 2, n, n + 2 av heltal som samtliga är primtal. 5. Skriv upp additions- och multiplikationstabellen för räkning modulo 4.

Kravspecifikation Fredrik Berntsson Version 1.1

Hur gör man ett trådlöst nätverk säkert?

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

Kryptering & Chiffer Del 2

σ 1 = (531)(64782), τ 1 = (18)(27)(36)(45), τ 1 σ 1 = (423871)(56).

RSA-kryptering. Torbjörn Tambour

Hemligheternas Matematik

Protokollbeskrivning av OKI

EIT060 Datasäkerhet - Projekt 2. Jacob Ferm, dt08jf0 Johan Paulsson, dt08jp8 Erik Söderqvist, dt08es8 Magnus Johansson, dt08mj9 26 februari 2011

Högstadiets matematiktävling 2016/17 Finaltävling 21 januari 2017 Lösningsförslag

Lösningar till utvalda uppgifter i kapitel 5

Matematisk kommunikation för Π Problemsamling

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson

DEL I. Matematiska Institutionen KTH

Kapitel 7 Betala räkningar

LABBA MED PRIMTAL OCH DELBARHET. Andreas Wannebo

Lösning till tentamensskrivning i Diskret Matematik för CINTE och CMETE, m fl, SF1610, tisdagen den 2 juni 2015, kl

TALTEORI FÖR ALLA 1 Juliusz Brzezinski

A B A B A B S S S S S F F S F S F S F F F F

Mikael Gustafsson & Camilla Stridh

Grupper och RSA-kryptering

Steganografi - en översikt

UPPGIFT 1 EURO. Utdata: Två rader, som för indata ovan, ser ut som följer: Före resan: bank 1 Efter resan: bank 3

Regler för användning av Riksbankens ITresurser

PRIMTALEN, MULTIPLIKATION OCH DIOFANTISKA EKVATIONER

Lösningsförslag till Tentamen i 5B1118 Diskret matematik 5p 22 augusti, 2001

Datorprogram, algoritmer och Turing-maskiner

Algebra I, 1MA004. Lektionsplanering

Föreläsning 9: Talteori

Matematisk kommunikation för Π Problemsamling

Användarmanual för Pagero Kryptering

Försöksnomineringssystem 2013

C++ Funktioner 1. int summa( int a, int b) //funktionshuvud { return a+b; //funktionskropp } Värmdö Gymnasium Programmering B ++ Datainstitutionen

DNSSEC och säkerheten på Internet

Introduktion till krypteringsmetoderna RSA och Merkle-Hellman

Läsanvisning till Discrete matematics av Norman Biggs - 5B1118 Diskret matematik

2 (6) k 0 2 (7) n 1 F k F n. k F k F n F k F n F n 1 2 (8)

HI1024 Programmering, grundkurs TEN

Säker e-kommunikation

Lennart Rolandsson, Uppsala universitet, Ulrica Dahlberg och Ola Helenius, NCM

Övningshäfte 3: Polynom och polynomekvationer

ARITMETIK 3. Stockholms universitet Matematiska institutionen Avd matematik Torbjörn Tambour

Internetsäkerhet. banktjänster. September 2007

Induktion, mängder och bevis för Introduktionskursen på I

Statistiska undersökningar - ett litet dokument

Kryptering HEMLIG SKRIFT SUBSTITUTION STEGANOGRAFI KRYPTOGRAFI

Tanka program KAPITEL 7. Shareware och freeware. Shareware. Freeware

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

Explorativ övning 5 MATEMATISK INDUKTION

Dölja brott med datorns hjälp

Lathund för tipsare. Vill du lämna information till media? Läs det här först för att få koll på läget.

Kombinationer och banor i agilityträningen

Lösningsförslag till Tentamen i 5B1118 Diskret matematik 5p 11 april, 2002

Grundläggande säkerhet för PC, mobil och läsplatta. Joakim von Braun Säkerhetsrådgivare von Braun Security Consultants Senior Net Danderyd

Transkript:

Utdrag från Verklighetens Kvadratrötter: Sida 1 KRYPTOLOGI Hur matematiken skyddar dina hemligheter Talteori, primtal, moduloräkning Bakgrund Den hemliga kod som under andra världskriget användes av Nazityskland för att i hemlighet sända meddelanden till sina trupper och ubåtar kallades Enigma. Tack vare många ihärdiga matematiker och kryptologer lyckades de allierade knäcka denna kod vilket möjliggjorde spionage av tyskarnas hemliga sändningar. Spindeln i nätet var matematikern Alan Turing och historiker anser idag att hans arbete kan ha förkortat kriget med så mycket som två år. 1 Turing-priset är uppkallat efter honom och kallas ofta för datavetenskapens Nobelpris. Vi ska tala om kryptering, skyddande av ett meddelande med en kod. Ungefär samma metoder används för certifiering, att kunna bevisa vem man är. Certifiering används av banker och moderna tekniker som e- legitimation för att verifiera att avsändaren verkligen är den som uppges och kan ses som ett slags matematiskt fingeravtryck. Både kryptering och certifiering är viktiga saker på internet. Kreditkort är också en stor användare av krypteringsmetoder som RSA som kommer tydliggöras i detta kapitel. Samtidigt växer sig trådlöst internet alltmer vanligt och dessa nätverk ska helst skyddas med lösenord för att undvika avlyssning och intrång. Idéerna i sig är enkla. Detta kapitel kommer göra det tydligt hur det matematiska maskineriet ser ut, men som i resten av boken är inte det rena räknandet vad som är väsentligt. Det är observationen av hur viktig den rena matematiken är för de mest vardagliga av sysslor som betyder mest. Kapitlet blir måhända något mer räknemässigt tungt än tidigare men det rekommenderas att du som läsare åtminstone skummar igenom dessa delar ändå. På internet används metoderna inte bara för e-handel. Alla sorters personuppgifter krypteras, de bör helst skickas privat till olika sidor såsom sociala nätverk eller e-posttjänster. Inte minst lösenord kräver krypteringstekniker så att ingen kan avlyssna det och knäcka ditt konto. Primtal Från och med nu kommer vi bara tala om positiva heltal: 1, 2, 3 och så vidare. Observera att talet 6 kan delas jämnt med 2 och 3, och 8 kan delas jämnt med 2. Men vissa tal är inte delbara med några andra, som 5 och 7. Dessa tal kallas primtal. 2 Euklides bevisade redan under antiken att primtalen aldrig tar slut utan är oändligt många. I slutet av boken följer ett fullständigt bevis för varför det måste vara så. Idag (2012) är det största kända primtalet, ett gigantiskt tal med över tio miljoner siffror! De tolv första primtalen: 2, 3, 5, 7, 11, 13, 17, 19, 23, 27, 31, 37 1 Historien var däremot inte lika trevlig på 50-talet. Alan Turing var homosexuell, vilket var olagligt i England vid denna tid. När hans läggning blev känd dömdes han till hormonbehandling, varefter han föll in i en djup depression och tog till slut sitt eget liv 1954. 2 Alla tal är delbara med ett och sig självt, ty x/ x och x/x, men dessa kallas för triviala fall. I strikt mening är det tal som inte går att dela på andra sätt som kallas för primtal. Talet 1 uppfyller också dessa krav men brukar av konvention inte kallas för ett primtal.

Utdrag från Verklighetens Kvadratrötter: Sida 2 Det är trots forskning sedan antikens dagar fortfarande mycket svårt att avgöra om ett visst tal är ett primtal eller inte. Denna svårighet är själva hörnstenen i varför matematikbaserad kryptering är så säker, som vi snart ska se. Moduloräkning och slumpmässighet Namnet låter mycket mer komplicerat än själva begreppet, det handlar bara om att räkna upp till ett visst tal innan man börjar om igen. Detta kallas även för klockaritmetik eftersom klockor med urtavla är ett bra exempel, de räknar bara upp till 12. När klockan är 13 säger man återigen att klockan är ett. När klockan är 14 är klockan två. Digitala klockor räknar ända upp till 23.59, men börjar sedan om på 00.00. De räknar alltså modulo 24. Modulo förkortas oftast mod. När man talar om 5 mod 3 börjar vi med att räkna 0, 1, 2. När vi kommer till 3 börjar vi då om på 0 och fortsätter. Nästa tal, det fjärde talet, blir 1 och efter det kommer 2. Alltså blir 5 mod 3 2. Man kan också se det som resten vid en division: 3 går i 5 en gång, och kvar blir 2. På samma vis blir 7 mod 6 1 och 8 mod 4 0. Räkna efter själv! Exempel: 0 1 2 3 4 5 6 7 8 9 Mod 3 0 1 2 0 1 2 0 1 2 0 Mod 4 0 1 2 3 0 1 2 3 0 1 Mod 5 0 1 2 3 4 0 1 2 3 4 Med hjälp av moduloräkning kan även en form av slumpmässighet i datorer skapas. Dessa tekniska apparater kan annars bara göra som de blir tillsagda och inte komma på något originellt. I vissa sammanhang är det inte önskvärt att saker alltid sker på samma sätt, som hur en bana på ett datorspel ska se ut eller i vilken ordning korten i ett kortspel ska läggas ut. Då används moduloräkning för att skapa så kallade pseudoslumptal, nästan slumptal. Bara nästan, eftersom det faktiskt är en bestämd algoritm som genererar dem. Välj tre tal, och. Ett psuedoslumptal skapas genom att räkna ut: (( ) ) Till exempel kan vi låta,, och börja med 2. Nästa tal blir då: ( ) Vill vi ha ett nytt slumptal gör vi samma beräkning, fast med det senaste talet, 12, istället: ( ) och så vidare, så följer 21, 14, 6... Till slut börjar mönstret om igen, men det märker vi så snabbt på grund av att vi har valt så små tal. Normalt används till exempel vad som kallas Mersenne Twister, med mycket

Utdrag från Verklighetens Kvadratrötter: Sida 3 större val av konstanterna a, b och c. Denna repeterar inte sitt mönster förrän efter uträkningar, ett tal med cirka 6000 siffror! Samtidigt har den statistiskt nästan samma sannolikhet att visa vilket tal som helst vid en given tidpunkt. Förutsägbarheten är med andra ord mycket låg. Att programmera in ett första tal att börja med är problematiskt, eftersom det kommer ge samma talföljd varje gång och göra metoden förutsägbar. Lyckligtvis finns det i datorn en klocka som räknar hur många millisekunder datorn varit påslagen. Detta tal är olika varje millisekund och är därför något som slumpgeneratorn brukar utgå ifrån. Kryptering Det vanliga exemplet brukar vara att Alice vill skicka ett paket till sin vän Bob, något de vill genomföra utan att en tredje person ska kunna öppna paketet och se vad som ligger inuti. Vi antar att lås inte går att dyrka upp och att alla paket till slut kommer fram orörda. Hur ska de då göra? Det visar sig att det inte är så lätt som det först låter när de inte kan kommunicera på något annat vis. Visst, Alice kan sätta ett hänglås på paketet och skicka det. Ingen på posten kommer kunna tjuvkika, men det kommer inte Bob heller kunna, han har ingen nyckel. Posten kan enkelt behålla paketet tills även nyckeln skickas. Eller tvärtom, behålla nyckeln tills paketet kommer, ifall nyckeln skickas först. Även om postkontoret skulle tröttna och ge upp finns risken att meddelandet hunnit bli utdaterat och värdelöst om för lång tid passerat. Detta gäckade kryptologer och matematiker länge. Att uppfinna kluriga koder är en gammal konst, men det är problemet med att förmedla nyckeln som alltid varit det allra klurigaste. Måste den skickas kan någon få tag i den. Om så sker blir koden (låset), hur genial den än må vara, helt värdelös. Den tjuvkikande kan bara använda sin nyckel för att dekryptera (öppna låset) och se meddel-andet som skickades. Det dröjde många år innan en lösning upptäcktes. Om Bob vill ta emot paket skickar han lås till alla som vill skicka något. Dessa personer, som Alice, sätter låset på paketet de vill skicka och sänder det till Bob. Alice har ingen nyckel och kan därför inte öppna paketet, men det behöver hon inte heller, det viktiga är att Bob kan det. Om Alice i sin tur vill ha ett svar kan hon skicka ett öppet lås till Bob, som han på precis samma vis använder för att skicka ett meddelande till Alice. Att tänka ut det såhär är en sak, men att hitta en matematisk formel eller algoritm som uppfyller alla dessa krav är något mycket mer komplicerat. Att kunna skicka krypterade meddelanden som bara mottagaren kan läsa (så kallad asymmetrisk kryptering), är den geniala grunden till dagens krypteringsstandard RSA. RSA Namnet kommer från efternamnens första bokstäver hos de tre män som upptäckte den matematiska varianten av ovanstående idé 1978, kryptologerna Ron Rivest och Adi Shamir tillsammans med matematikern Leonard Adleman. Det är idag känt att matematikern Clifford Cocks upptäckte samma sak några år tidigare, men då under anställning av den brittiska underrättelsetjänsten. Hans arbete förblev hemlighetsstämplat i över 20 år och saknade under den tiden erkännande i detta sammanhang. När det kommer till att kryptera text låter man datorn representera bokstäver med olika tal, till exempel kan a ersättas av 01, b ersättas av 02 och så vidare. Kryptering av filer på datorn (bilder, dokument) är lika ickekonstigt. De lagras på hårddisken som en lång serie ettor och nollor.

Utdrag från Verklighetens Kvadratrötter: Sida 4 Inom området talteori analyseras siffror och tal, deras egenskaper och olika mönster. Så till synes enkla begrepp gör det svårt att dra några djupa slutsatser. Att det däremot finns många djupa samband och mönster gör området ack så fascinerande. Århundraden av forskning inom talteori har gett många viktiga resultat, som bland annat används inom RSA. Det vackra ligger i hur enkelt men samtidigt så kraftfullt det faktiskt är: Välj två primtal, kalla dem och, och multiplicera ihop dem. Kalla denna produkt för. Välj också ett tal, (nästan) vilket som helst, kalla det. 3 Enbart dessa två tal, och, utgör det utomordentligt enkla hänglås som vem som helst kan använda för att skydda sitt paket på vägen till Bob. Om vi kallar Alices meddelande för räknar hon bara ut, eller snarare låter hon sin dator göra det. Resultatet kallas och är ett helt annat tal som hon med säkerhet kan skicka till vem som helst. Det hjälper inte tjuven ifall och är kända, dessa utgör bara låset. För att öppna det behövs nyckeln och den har bara Bob. Han tar fram den genom de två primtal som byggde upp. Bob håller självklart dessa hemliga. Eftersom primtalen bygger upp N finns hemligheten bevarad i det talet och kan alltså luskas fram. Att RSA ändå är säkert bottnar i den oerhörda svårigheten att dela upp N i de två primtalen. Detta kallas primfaktorisering och har alltid endast en unik lösning, om än svår-funnen. Försök själv att primfaktorisera 713, det vill säga hitta två primtal som ger 713 när de multipliceras med varandra. 4 För säker-hets skull är de tal som används i kryptering gigantiska, hundratals eller tusentals siffror långa. Talet är nyckeln som används för dekrypteringen och ska uppfylla att ( ) är jämnt delbart med ( ) och ( ). För att kunna hitta denna nyckel måste alltså båda primtalen vara kända, inte bara deras produkt. När Bob tar emot det krypterade meddelandet räknar han ut. Uträkningen återskapar det ursprungliga meddelandet. Denna algoritm har blivit en vanlig och viktig standard. Tyvärr är den lite för komplicerad för att nyttjas hela tiden, det tar lite för lång tid att räkna med dessa enorma tal även för dagens datorer. RSA kan istället användas för att skicka nyckeln till enklare koder som går snabbare för datorn att hantera. Dessa enklare koder är fortfarande säkra nog så länge som nycklarna är i säkert förvar, vilket RSA ansvarar för. Ett exempel på RSA I detta exempel kommer jag tyvärr inte använda riktiga tal, alltså sådana som dyker upp i verkliga sammanhang. Jag har försökt göra det så gott det går i denna bok, men i detta fall är det inte värt det. Anledningen är att primtalen p och q som används för RSA-kryptering oftast är enorma tal, hundratals siffror långa! Istället har jag valt lite mer jordnära tal för att ge perspektiv på saken. De mindre talen gör inte precis att RSA-algoritmens charm framstår mindre tydligt, snarare tvärtom. En vän har ett meddelande M och önskar skicka det till oss. Låt oss säga att hennes meddelande är. Meddelandet kan stå för vad som helst, ett lösenord, ett textmeddelande, ett kontonummer eller kanske en del av ett hemlighållet fotografi. Informationen måste hållas säker, därför väljer vi RSA-kryptering. 3 Det finns vissa begränsningar för vad får vara, men vi behöver inga djupare detaljer här. 4 Rätt svar:.

Utdrag från Verklighetens Kvadratrötter: Sida 5 Vi konstruerar ett hänglås genom att välja två primtal och, och så väljer vi ett. 5 Då är. Vi sänder ut och till vår vän som krypterar meddelandet till något vi kallar. Här kan vi passa på att se vad som händer om meddelandet vore lite annorlunda, säg. Då blir. Om blir. Vi kan inte urskilja något mönster alls, precis som vid genereringen av psuedoslumptalen. Det är ju tur det, annars vore det ingen vidare säker kod. Alltså kan skickas helt obemärkt till oss. Vem som helst får läsa det, det spelar ingen roll, de begriper inte vad som står ändå! Bara den som kan dekryptera förstår innebörden och nu är det upp till oss att göra det. För detta vill vi hitta ett tal så att ( ), alltså i detta fall ( ), är jämnt delbart med och. Det finns en del matematiska tekniker för detta, men till slut upptäcker man att fungerar. Att hitta är ett mycket, mycket enklare problem än att försöka lista ut och från. Varför vill vi ha just ett tal med dessa egenskaper? Forskning inom talteori har visat att bara ett sådant tal kan göra om vårt krypterade C till det meddelande M som vi vill läsa. Mycket av de nödvändiga resultaten upptäcktes långt före RSA:s och även datorernas tid, men idag är vi väldigt tacksamma över att redan ha gjort dessa upptäckter. För att dekryptera meddelandet beräknar vi det redan nu stora talet: ( ) Om du inte minns, gå tillbaka och se efter vilket meddelande vår vän ville skicka från början. Jämför med vad vi lyckades räkna fram här. Heureka! Det fungerar, och våra datorer kan göra detta åt oss både snabbt och säkert för att skydda trådlösa internetuppkopplingar och hela internet självt! Certifiering, matematiska fingeravtryck som exempelvis bankers hemsidor använder för att bevisa att de verkligen representerar den bank de påstår, använder samma metoder. Alla kan veta produkten av två primtal men bara banken känner till vilka det faktiskt är och kan använda dem till att bevisa sin identitet. För mer information om kryptologi rekommenderas till exempel Kodboken av Simon Singh, som förklarar historiken och matematiken bakom kryptologi mycket väl. 5 Talet e måste väljas så att det är större än 2 och inte delar och. Eftersom och / inte går jämnt upp, detsamma för, så fungerar e3 bra. Men hade exempelvis inte fungerat eftersom / går jämnt upp.