Hemligheternas Matematik

Relevanta dokument
NÅGOT OM KRYPTERING. Kapitel 1

RSA-kryptering och primalitetstest

MA2047 Algebra och diskret matematik

Några satser ur talteorin

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

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

Primtal, faktorisering och RSA

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

Grundfrågor för kryptosystem

Kryptering och primtalsfaktorisering

Krypteringteknologier. Sidorna ( ) i boken

Grupper och RSA-kryptering

Krypteringens historia och användningsområden

Offentlig kryptering

Algebra och kryptografi Facit till udda uppgifter

DEL I. Matematiska Institutionen KTH

Kapitel 2: De hela talen

Den mest väsentliga skillnaden mellan

SJÄLVSTÄNDIGA ARBETEN I MATEMATIK

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

Att dela en hemlighet

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

Övning 6. Komprimering, kryptering, dokumentering & testning

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

Kinesiska restsatsen

Kryptering HEMLIG SKRIFT SUBSTITUTION STEGANOGRAFI KRYPTOGRAFI

Låt n vara ett heltal som är 2 eller större. Om a och b är två heltal så säger vi att. a b (mod n)

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

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)

Övning 6 - Tillämpad datalogi 2012

, S(6, 2). = = = =

Fermats lilla sats dess historia och några tillämpningar

Lösningar till utvalda uppgifter i kapitel 5

Föreläsning 9: Talteori

256bit Security AB Offentligt dokument

Kryptering & Chiffer Del 2

Hela tal LCB 1999/2000

Grundläggande krypto och kryptering

Protokollbeskrivning av OKI

Lösning till tentamensskrivning i Diskret Matematik, SF1610 och 5B1118, torsdagen den 21 oktober 2010, kl

Vi börjar med en viktig definition som inte finns i avsnitt 3.4 i [EG], den formella definitionen av kongruens modulo n:

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

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

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

1. (3p) Bestäm den minsta positiva resten vid division av talet med talet 31.

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

MS-A0409 Grundkurs i diskret matematik Sammanfattning, del II

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

1. (3p) Ett RSA-krypto har de offentliga nycklarna n = 33 och e = 7. Dekryptera meddelandet 5. a b c d e. a a b c d e

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

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

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

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

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

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

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

Introduktion till krypteringsmetoderna RSA och Merkle-Hellman

Datasäkerhet. Petter Ericson

Lösningar för tenta i TMV200 Diskret matematik kl. 14:00 18:00

Lösningar för tenta i TMV200 Diskret matematik kl. 14:00 18: Svar: Ja, det gäller, vilket kan visas på flera sätt (se nedan).

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

Teori :: Diofantiska ekvationer v1.2

Hjalpmedel: Inga hjalpmedel ar tillatna pa tentamensskrivningen. 1. (3p) Los ekvationen 13x + 18 = 13 i ringen Z 64.

MS-A0409 Grundkurs i diskret matematik Appendix, del II

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

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

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

Moderna krypteringssystem

Lösningsförslag till tentamensskrivning i SF1610 Diskret Matematik för CINTE 30 maj 2018, kl

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

Kryptering. Krypteringsmetoder

Resträkning och ekvationer

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

Grundläggande kryptering & chiffer

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson

3. Bestäm med hjälpa av Euklides algoritm största gemensamma delaren till

Matematik 3000 Diskret Matematik

MA2047 Algebra och diskret matematik

PRIMTALEN, MULTIPLIKATION OCH DIOFANTISKA EKVATIONER

1. (3p) Ett RSA-krypto har parametrarna n = 77 och e = 37. Dekryptera meddelandet 3, dvs bestäm D(3). 60 = = =

MA 11. Hur starkt de binder. 2 Reella tal 3 Slutledning 4 Logik 5 Mängdlära 6-7 Talteori 8 Diofantiska ekvationer 9 Fördjupning och kryptografi

Föreläsning 9: Talteori

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.

Diofantiska ekvationer

Test av kryptobiblioteket

Givet två naturliga tal a och b, som inte båda två är 0, hur räknar man ut största gemensamma delaren av a och b?

IX Diskret matematik

Tal och polynom. Johan Wild

Material till kursen SF1679, Diskret matematik: Lite om kedjebråk. 0. Inledning

Gaussiska heltal. Maja Wallén. U.U.D.M. Project Report 2014:38. Department of Mathematics Uppsala University

Primtal och kryptografi

Algebra II. Isac Hedén och Johan Björklund

Övningshäfte 6: 2. Alla formler är inte oberoende av varandra. Försök att härleda ett par av de formler du fann ur några av de övriga.

x 23 + y 160 = 1, 2 23 = ,

En introduktion till några klassiska chiffer

Kravspecifikation Fredrik Berntsson Version 1.1

TALTEORI FÖR ALLA 1 Juliusz Brzezinski

10! = =

Nämnarens kryptoskola fördjupning. Enkel transposition

Transkript:

En redogörelse för den matematiska aspekten av assymetrisk kryptering - hur man med matematik kan utbyta information i hemlighet trots att all kommunikation avlyssnas. Av: Hvitfeldtska gymnasiet Carl Smedstad N3E Läsår 2012-2013 940731-6497 Handledare: Henrik Petersson Gustav Eriksson N3F 940125-1054

Bidrag till tävlingen för Bästa matematiska text år 2013. Senast ändrat 2013-05-04

Abstract How is it possible to communicate in secret even though you and the one you are communicating with are constantly being eavesdropped? This paper will examine how this is possible with the RSA encryption algorithm and thoroughly explain the mathemical mechanics behind it. The steps necessary to gain this understanding such as cryptography, one-way functions and modular arithmetics will be explained aswell. Conclusivly we will point out what theorems that the method relies on, i.e. which mathematical phenomena that makes it possible. Sida 3

Innehållsförteckning Inledning 5 Introduktion till kryptering 6 Problemets natur 8 Modulär aritmetik 9 Envägsfunktioner 10 RSA-algoritmen 14 Ett praktiskt exempel 16 Diskussion 17 Källförtäckning 19 Referenslista 19 Sida 4

Inledning Hemligheter har haft en stor betydelse för människan i alla tider, inte minst idag med det allt mer digitaliserade samhället. Detta har inneburit att det utvecklats en mängd olika metoder för att utbyta information ostört och opåverkat. På senare tid har dessa blivit otroligt sofistikerade och de alla har gemsamt att de förlitar sig på matematiken. Genom historien så har utbytet av hemligheter alltid begränsats av att de båda parter varit tvugna att båda ha en gemensam nyckel. Föreställ dig att du ska skicka en låda med posten och inte vill att den elaksinnade brevbäraren ska kunna ta del av innehållet. Den naturliga lösningen på problemet är att helt enkelt låsa lådan. Men hur ska då mottagaren kunna öppna den? Att utbyta en gemensam nyckel blir då en nödvändighet för att du och din kompanjon skall kunna skicka hemligheter till varandra. En frågeställning som dyker upp då är om det är möjligt för dig att skicka ett meddelande till din kompanjon utan att ni har en säker kanal där ni kan utbyta en nyckel, på ett sätt som gör att din kompanjon kan ta del av innehållet i meddelandet men att ingen annan har möjlighet att göra det? Intuitivt kan det vara svårt att förstå hur detta är möjligt men vi skall i detta arbete visa att det faktiskt går och att man med matematik har löst problemet med nyckeldistribution på ett ytterst elegant sätt. Sida 5

Introduktion till kryptering Lösningen på vårt problem rör sig inom den vetenskap som kallas kryptografi, vilket är konsten att hemlighålla information genom att förvränga och förändra den och på så sätt göra den oläslig. Förutom att göra informationen oläslig är det givetvis också essentiellt att det skall gå att återställa den oläsliga så kallade kryptotexten till ursprungsmeddelandet, som man i kryptografisammanhang kallar klartext. Om man bara skulle förvränga texten slumpmässigt utan ett bestämt system, som att till exempel kasta om bokstäverna huller om buller, så går det ju inte att få tillbaka klartexten och läsa meddelandet. Vi behöver alltså en bestämd algoritm som gör meddelandet oläsligt, dvs. krypterar meddelandet, och en algoritm som sedan återställer meddelandet. Dessa två kallas krypteringsalgoritm och dekrypteringsalgoritm och kan ses som två matematiska funktioner som vi väljer att kalla för E respektive D. Dock så räcker det inte att förlita sig enbart på algoritmerna, då dessa i så fall måste hållas hemliga för att systemet skall vara säkert, vilket i praktiken är väldigt svårt. Därför utgår man idag från att alla känner till algoritmerna som används och förlitar sig istället på ett ytterligare invärde, en parameter, till de båda funktionerna som är det ända (förutom meddelandet) som hålls hemligt. Detta är en så kallad nyckel. Om vi till exempel förvränger ett meddelande i form av ett tal genom att addera ett annat tal till det ursprungliga talet så är nyckeln det tal vi adderar. Alltså är k nyckeln i krypteringsalgoritmen E(k, m) = m + k = c. Antalet möjliga nycklar, dvs. mängden av alla nycklar K, måste vara väldigt stor då det annars skulle gå att prova sig fram, inom en genomförbar tidsram, genom att testa alla möjliga nycklar. Är K =2 32 eller något i den storleksordningen blir detta dock otroligt tidskrävande, även för dagens snabba datorer. Sida 6

Sammanfattningsvis krävs det alltså två funktioner, E och D, och en nyckel för att utföra en kryptering. Om vi, som vi gjort i exemplet tidigare, kallar nyckeln för k, klartexten för m och kryptotexten för c så kan vi beskriva krypterings- respektive dekrypteringsprocesserna på följande sätt E(k, m) = c och D(k, c) = m. Vi kan också konstatera att D(k, E(k, m)) = m för alla m och k. Vilket är den matematiska beskrivningen av kravet att varje kryptotext skall bli sin klartext vid dekryptering. Av detta ser vi även att dekrypteringsalgoritmen måste vara inversen, dvs. den omvända funktion, till krypteringsalgoritmen. Alltså är D(k, ) = E(k, ) -1 för varje given nyckel k. Nu när vi har de strukurella ramarna och de nödvändiga beteckningar och begrepp kan vi börja angripa vårt problem. Sida 7

Problemets natur I vårt problem finns det ej någon möjlighet att säkert utbyta en nyckel vilket gör det hela mycket svårare. All kommunikation mellan dig och din kompanjon är avlyssnad och elaksinnade individer kommer att kunna ta del av allt som din kompanjon tar emot. För att komma runt denna svaghet kan man konstuera krypton där krypteringsalgoritmen är i praktiken omöjlig att invertera, dvs. dekryptera, om man bara känner till krypteringsnyckeln. Vi behöver en matematisk funktion som uppfyller just detta krav, en så kallad envägsfunktion. De envägsfunktioner som intresserar oss är de som är möjliga att invertera om man känner till en ytterligare parameter, det vill säga en ny nyckel. Det krävs alltså en nyckel för att kryptera och en annan för att dekryptera. Fördelen med detta är att man kan låta krypteringsnyckeln vara offentlig då det inte gör någonting om vem som helst kan kryptera med din nyckel. Så länge dekrypteringsnyckeln är hemlig så är det endast du som kan dekryptera. Du kan nu helt öppet skicka, till och med publicera, din krypteringsnyckel och även din algoritm och sedan låta mottagare kryptera ett meddelande med hjälp av dessa. De kan sedan skicka det till dig utan att någon annan än just du kan dekryptera meddelandet. Om vi kallar krypteringsnyckeln för k och dekrypteringsnyckeln för k kan proceduren beskrivas som E(k, m) = c respektive D(k, c) = m. Vilka matematiska funktioner som kan fungera som envägsfunktioner och som tar ett invärde vid beräkning åt ena hållet men ett annat åt det andra blir nästa fråga att undersöka. Sida 8

Modulär Aritmetik Om du har studerat gymnasiematematik så har troligtvis funktionerna som du kommit i kontakt med varit funktioner som varit väldigt enkla att invertera. Låt oss till exempel betrakta den grundläggande funktionen f (x) = x 2. Den har en invers då x 0 som vi kan bestämma genom att lösa ut x. f (x) = x 2 y = x 2 (x 2 ) 1/2 = y 1/2 x = y 1/2, x 0. Alltså är inversen till f f -1 (y) = y 1/2 då y 0. Detta är fallet hos de flesta funktioner men det finns ett område vars funktioner envisas med att vara otroligt svåra att invertera. Detta område är den modulära aritmetiken. Den modulära aritmetiken är ett system för heltal som kan liknas vid hur våran tolvtimmarsklocka fungerar. I detta system väljer man ett tal N som man kallar modulus, vilket på våran klocka är 12. Man säger att ett tal a är kongruent med ett tal b om de får samma rest vi division av N. Detta uttrycks a b (modn) Till exempel är 13 3 (mod10) då både 3 och 13 får samma rest, dvs. 3, vid division med 10. En hint om varför detta är viktigt är att ekvationer som till exempel x a (modn) har en lösning för alla x-värden som vid division med N ger resten a och således har ett oänligt antal lösningar. Med den modulära aritmetiken klargjord kan vi börja lägga grunden för de envägsfunktioner vi senare kommer att konstruera. Sida 9

Envägsfunktioner Det första steget är att definiera den mängd funktionerna kommer att röra sig inom. Vi börjar med att definiera Z N = {0, 1, 2, 3..., N-1}. Mängden Z N är alltså mängden av alla heltal från och med noll upp till och med N-1. Denna mängd kommer bli både värde- och definitionsmängd för både krypterings- och dekrypteringsfunktionerna. Om en operation ger ett resultat som är utanför denna mängd, som till exempel N eller -1, så är det kongruensen av detta tal modulu N som blir ut-värdet. Det vill säga om N = 12, som i fallet med klockan, så blir till exempel 9 + 4 = 1 i Z 12 ty 9 + 4 = 13 1 (mod12) och 4 5 = 8 i Z 12 ty 4 5 = 20 8 (mod12). Vi behöver också definiera vad som räknas som en invers i Z N. När vi räknar i mängden av alla tal, vilket vi vanligtvis gör, så definieras en invers som det tal som gånger ursprungstalet blir 1. Till exempel är ¼ inversen till 4 då ¼ 4 = 1. Vi vill att samma relation skall gälla i vårat system, men eftersom att bråk inte existerar kommer det att se ut på ett lite annorlunda sätt. Vi definierar dock en invers på samma sätt, dvs. som det tal som gånger orginaltalet blir 1, men då modulo N. Alltså definierar vi: Definition: Ett tal a är en invers till b i Z N då a b 1 (modn). Man kan då fråga sig vad denna defintion medför. Hur räknar vi ut en invers och har alla tal i mängden en sådan? Det visar sig att följande gäller: Sats: En invers a till b i Z N existerar om och endast om SGD(b, N) = 1. Det vill säga om b och N är relativt prima. Sida 10

Detta kan bekräftas med hjälp av Bézouts identitet som lyder: Lemma: Låt x och y vara heltal varav minst ett av dem skilt från noll. Då finns det två heltal u och v sådana att u x + v y = SGD(x, y). Bevis: Om b tillhör Z N och SGD(b, N) = 1 så gäller enligt ovanstående lemma att för det finns heltal a och n sådana att a b + n N = 1 a b 1 (modn) a = b -1. Alltså har existerar en invers till b i Z N. Med ovanstående förutsättningar men SGD(b, N) = d då N > d > 1 och tillhör Z N så gäller att a b + n N = d a b d (mod N) a b -1. Alltså har b en invers i Z N om och endast om SGD(b, N) = 1 och vi kan beräkna inversen med hjälp av Euklides förlängda algoritm [1]. Vi definierar nu mängden Z N * som mängden av alla inversibla element i Z N. Alltså är Z N * = {inversibla element i Z N } = {x tillhör Z N : SGD(x, N) = 1}. Till exempel är Z 12 * = {1, 5, 7, 11} då SGD(12, x) = 1 då x tillhör Z 12 *. Sida 11

Nu kan vi definiera Eulers så kallade φ-funktion som φ(n) = Z N *, det vill säga antalet element i Z N *, eller antalet inversibla element i Z N. Om N är ett primtal p blir φ(p) = p - 1 då alla element i Z N förutom noll är relativt prima med N, dvs. inversibla i Z N. Av denna definition följer ett mycket intressant samband som RSA-kryptering, det vill säga vår lösning, är baserad på. Detta är samband är Fermat-Eulers sats som lyder: Sats: x φ(n) 1 (modn) för alla x i Z N *. Beviset för denna sats lyder: Bevis: Om Z N * är mängden för alla tal x som tillhör Z N och som är relativt prima med N så kan vi bilda mängden a Z N * = {a x 1, a x 2, a x 3 a x φ(n) }, det vill säga mängden Z N * där varje element har multiplicerats med a som vi väljer som ett tal relativt primt till N. Nästa steg är nu att bevisa att de båda mängderna faktiskt är samma mängd uttryckt på två sätt. Vi börjar med att visa att varje element i az N * också är ett element i Z N *. Eftersom att Z N * är mängden av alla tal relativt prima till N behöver vi bara visa att alla element i az N * är just detta. Detta kan ses med hjälp av Euklides lemma [2] som lyder: Sida 12

Lemma: Om heltalen a och k båda är relativt prima till N så kommer då också produkten av dem att vara det. Det vill säga om SGD(a, N) = SGD(k, N) = 1 så gäller att SGD(a k, N) = 1. Eftersom de båda mängderna har lika många element och vi har visat att varje element i az N * också finns i Z N * så räcker det nu att visa att varje element i az N * är distinkt. Detta kan ses genom m x n x (modn) m n (modn) vilket följer av att vi kan förkorta bort x ty x har en invers det är relativt primt med N. Vi har nu kommit fram till att az N * = Z N *. Vi bildar nu en ekvation för produkten av alla element i respektive mängd. De båda leden måste vara lika då mängderna är det. (x 1 x 2 x 3 x φ(n) ) = (a x 1 ) (a x 2 ) (a x φ(n) ) Vi kan då bryta ut a i högerledet: (x 1 x 2 x 3 x φ(n) ) = a φ(n) (x 1 x 2 x 3 x φ(n) ) Och sedan förkorta bort x-faktorerna: 1 a φ(n) (modn) V.S.B. Sida 13

RSA-algoritmen Med hjälp av tidigare nämda satser och fenomen visar det sig vara relativt simpelt att bilda en envägsfunktion som passar vårt ändamål. Om vi som förut låter m betäckna meddelandet och c kryptotexten så lyder RSA:s krypteringsfunktion E(e, m) = m e (modn) = c i Z N och dekrypteringsfunktion D(d, c) = c d (modn). Här blir krypteringsnyckeln (e, N), det vill säga talen e samt N, och dekrypteringsnyckeln (d, N) alltså d och N. För att c d, vilket är dekrypteringen av c, skall vara m så måste talen e och d väljas sådana att e d 1 (mod φ(n)). En följd av detta val och att krypteringsnyckeln är allmän, det vill säga alla känner till både e och N, är att det för en utomstående blir enkelt att bestämma d om φ(n) är enkelt att räkna ut. Detta för att d är precis inversen av e på det sättet som vi definierade en invers tidigare. För att kring gå detta väljer man talet N som produkt av två stora och olika primtal p och q, vilket ger att φ(n) = N p q + 1 = (p 1)(q 1). Detta gör krypteringen säker då det för dig är enkelt att välja ut dessa två stora primtal och således bestämma φ(n). För en utomstående som inte känner till primtalen så är det dock otroligt svårt att bestämma dessa och på så sätt räkna ut φ(n). Det är här i säkerheten ligger. Sida 14

Frågan hur dekrypteringen går till kvarstår dock, hittills har vi fått fram att D(d, c) = c d (modn). Då c = m e (modn) enligt krypteringsalgoritmen, så är D(d, c) = c d (modn) = (m e ) d (modn) = m ed (modn). En följd av att e och d är definierade som ovan är att m ed = m k φ(n) + 1 = m k φ(n) m = (m φ(n) ) k m för något heltal k. Och av Fermat-Eulers theorem vi bevisade innan följer att m φ(n) 1 (modn) (m φ(n) ) k 1 (modn) (m φ(n) ) k m m (modn) = m i Z N. Vi har nu bevisat att dekrypteringen ger tillbaka det ursprungliga meddelandet m. Ovanstående krav och satser gör alltså dekryptering inte bara möjlig utan endast möjlig då man känner till den hemliga dekrypteringsnyckeln, det vill säga talen N och framför allt d. Vi har nu hittat ett tillvägagångssätt i form av RSA-algoritmen och dessutom förklarat och bevisat de matematiska envägsfunktioner som ligger bakom. Sida 15

Ett praktiskt exempel Denna metod används främst för att utbyta en nyckel som sedan kan användas för att genomföra symmetrisk kryptering, alltså inte för att skicka själva textmeddelandet i fråga. Man skickar oftast bara ett långt binärt tal med RSA-kryptering vilket blir nyckeln i den fortsatta krypteringen med andra metoder. Skulle man vilja skicka ett meddelande i textform krypterat med RSA så gör man som med alla andra former av kryptering, man gör om meddelandet till ett binärt tal, ofta med hjälp av den standardiserade ASCII [3] koden. Här följer ett exempel på hur en kryptering skulle kunna gå till: 1. Vi börjar med att bestämma primtalen, p = 67 och q = 89. 2. Detta ger N = 67 89 = 5963 och φ(n) = (67 1)(89 1) = 5808 3. Vi väljer talet e = 637 som är relativt primt med φ(n) 4. d väljs genom Euklides förlängda algoritm: 5808 = 637 9 + 75 637 = 75 8 + 37 75 = 37 2 + 1 37 = 1 37 Baklänges: 1 = 75 (37 2) = 75 2 (637-75 8) = 5808 (637 9) 2 (637 8 (5808 9 637)) = 5808 9 637 2 637 + 16 5808 144 637 = 17 5808 155 637 Alltså är blir d = -155 (mod5808) 5653 5. Vi skickar nu vår krypteringsnyckel (e = 637, N = 5963) 6. Vår motpart krypterar meddelandet m = 1234: E(637, 1234) = 1234 637 (mod5963) 5708 = c 7. Vi tar emot meddelandet och dekrypterar: D(5653, 5708) = 5708 5653 (mod5963) 1234 = m Vi har nu utbytt ett meddelande säkert. Sida 16

Diskussion Kryptering, såväl symmetrisk som asymmetrisk, används i princip hela tiden i vårt digitaliserade samhälle och det är ofta något som vi inte märker av, utan som sker bakom kulisserna. Varje gång du ansluter till en server, till exempel en websida, skickar ett mail eller gör en banktransaktion på internet så sker detta säkert med hjälp av kryptering. Något vi vill lyfta fram i vårt arbete är hur denna väldigt spridda och använda algoritm baseras på 1700-tals matematik av bland andra Euler och Fermat. Detta visar på att matematiken många gånger är före sin tid och att den teoretiska matematiken kanske inte alltid kan appliceras praktiskt då den formuleras. I detta fallet har det dröjt flera hundra år. Något man borde fråga sig i kryptografisammanhang är givetvis huruida det är säkert eller inte. Och faktum den appliceringen vi har använt i exemplet inte alls är säker i praktiken. Vi har inte tagit hänsyn till exempel en så kallad man in-the-middle -attack [4] vilket innebär att en tjuvlyssnare går i mellan och stoppar båda parternas meddelanden och skickar sina egna till respektive parter. På så sätt kan hen både få reda på nycklar, tjuvlyssna och mixtra med meddelandena. Aspekter som kan tyckas triviala, som till exempel hur lång tid det tar att utföra en kryptering eller hur mycket ström det det går åt spelar också in och det finns otaliga mängder attacker rörande saker man inte tänker på i första hand. Alltså är inte vårt krypteringsexempel en praktiskt säker sådan, utan vad man brukar kalla en textbook -kryptering. Men den fyller sitt syfte att förklara hur RSA-algoritmen går till. Sida 17

Vad ligger då möjliga säkerhetsbrister i själva algoritmen och vad är säkerheten grundad på? Faktum är att hela algoritmen bygger på att vi idag ej har något tillräckligt effektivt sätt att primtalsfaktorisera heltal. Om detta skulle vara möjligt hade man enkelt kunnat knäcka algoritmen genom att bestämma N:s faktorer p och q vilket ger φ(n) och sådeles även d. För att primtalsfaktorisera ett tal måste helt enkelt prova ett dela talet med alla kända primtal. Om primtalen väljs i storleksordningen 1024 bitar, det vill säga ett cirka 300 siffror långt tal, så blir N väldigt stort och det blir extremt tidskrävande till och med för dagens superdatorer att bestämma primtalen. Världsrekordet i att primtalsfaktorisera ett N sattes år 2009 då man fakoriserade ett 768 bitars heltal dvs ett tal i storleksordningen 230 siffror. Då vi studerat detta ämne och besvarat vår frågeställning så har två insikter gjort sig väldigt tydliga: Kryptografi, konsten att hålla och meddela saker i hemlighet, har med den digitala tidsåldern blivit ett oerhört omfattande och komplex forskningsområde som ständigt drivs framåt av kampen mellan kryptografer och kryptoanalytiker. Många av de kryptografiska algoritmerna är baserade på talteori från 1700-talet och det området har i och med digitaliseringen blivit mer aktuellt än det någonsin varit förut. Teoretisk matematik kanske inte alltid kan tillämpas då den formuleras men kryptografin är ett tydligt exempel på att det mycket väl kan komma en tid då den blir essentiell. Sida 18

Källförteckning The Code Book (Simon Singh 1999) Cryptography I (www.coursera.com, Prf. Dan Boneh, Stanford University) http://www.wikipedia.org/ RSA Proof of Fermat's little theorem Euler's totient theorem Bezout's identity RSA factoring challange Referenslista [1] http://en.wikipedia.org/wiki/extended_euclidean_algorithm [2] http://en.wikipedia.org/wiki/euclid's_lemma [3] http://sv.wikipedia.org/wiki/ascii [4] http://en.wikipedia.org/wiki/man-in-the-middle_attack Sida 19