NÅGOT OM KRYPTERING. Kapitel 1

Relevanta dokument
Några satser ur talteorin

MA2047 Algebra och diskret matematik

RSA-kryptering och primalitetstest

Grupper och RSA-kryptering

Den mest väsentliga skillnaden mellan

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

Primtal, faktorisering och RSA

DEL I. Matematiska Institutionen KTH

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

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

Offentlig kryptering

Kryptering och primtalsfaktorisering

Krypteringens historia och användningsområden

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

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

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

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

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

SJÄLVSTÄNDIGA ARBETEN I MATEMATIK

Hemligheternas Matematik

Algebra och kryptografi Facit till udda uppgifter

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

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

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

PRIMTALEN, MULTIPLIKATION OCH DIOFANTISKA EKVATIONER

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

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

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

Lösningar till utvalda uppgifter i kapitel 5

TILLÄMPADE DISKRETA STRUKTURER. Juliusz Brzezinski och Jan Stevens

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

ALGEBRAISKA STRUKTURER. Juliusz Brzezinski

RESTARITMETIKER. Avsnitt 4. När man adderar eller multiplicerar två tal som t ex

Grundfrågor för kryptosystem

Ö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.

Krypteringteknologier. Sidorna ( ) i boken

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

Kinesiska restsatsen

MA2047 Algebra och diskret matematik

Kapitel 2: De hela talen

Efternamn förnamn pnr programkod

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

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)

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)

Övningshäfte 3: Polynom och polynomekvationer

15 september, Föreläsning 5. Tillämpad linjär algebra

Övning 6 - Tillämpad datalogi 2012

14 september, Föreläsning 5. Tillämpad linjär algebra

Moderna krypteringssystem

Lösningar till utvalda uppgifter i kapitel 3

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

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.

Matematisk kommunikation för Π Problemsamling

MS-A0409 Grundkurs i diskret matematik Appendix, del II

MS-A0409 Grundkurs i diskret matematik Sammanfattning, del II

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

Matematiska Institutionen KTH. Lösning till några övningar inför lappskrivning nummer 5, Diskret matematik för D2 och F, vt09.

Grafer och grannmatriser

Lösningar till utvalda uppgifter i kapitel 2

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

KTHs Matematiska Cirkel. Talteori. Andreas Enblom Alan Sola

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).

RSA-kryptering. Torbjörn Tambour

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

Diskret matematik: Övningstentamen 1

Institutionen för matematik, KTH Mats Boij. Lösningsförslag till Tentamen i 5B1118 Diskret matematik 5p 20 december, 2000

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

Introduktion till krypteringsmetoderna RSA och Merkle-Hellman

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

POLYNOM OCH POLYNOMEKVATIONER

Diskret matematik: Övningstentamen 4

10! = =

MATEMATISKA INSTITUTIONEN STOCKHOLMS UNIVERSITET Avd. Matematik Examinator: Daniel Bergh. Lösningsförslag Algebra och kombinatorik

Teori :: Diofantiska ekvationer v1.2

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

Kryptografi och primalitet. Anders Björner

Föreläsning 9: Talteori

Tentamensskrivning i Diskret Matematik för CINTE och CMETE, SF1610, onsdagen den 20 augusti 2014, kl

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

Övningshäfte 3: Funktioner och relationer

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

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

MULTIPLIKATION AV MATRISER, BASER I RUMMET SAMT FÖRSTA MÖTET MED MATRISINVERSER = = =

Linjär Algebra, Föreläsning 2

Matematik med lite logik

Föreläsningsanteckningar Linjär Algebra II Lärarlyftet

Bisektionsalgoritmen. Kapitel Kvadratroten ur 2

TALSYSTEM, DELBARHET OCH PRIMTAL

Entydig faktorisering och Fermats stora sats i fallet n = 3

Tal och polynom. Johan Wild

Övning 6. Komprimering, kryptering, dokumentering & testning

Diofantiska ekvationer

TALTEORI FÖR ALLA 1 Juliusz Brzezinski

Lösning till tentamensskrivning på kursen Diskret Matematik, moment A, för D2 och F, SF1631 och SF1630, den 10 januari 2011 kl

MS-A0409 Grundkurs i diskret matematik II

6. Matriser Definition av matriser 62 6 MATRISER. En matris är ett rektangulärt schema av tal: a 11 a 12 a 13 a 1n a 21 a 22 a 23 a 2n A =

Diskret Matematik A för CVI 4p (svenska)

Explorativ övning 4 ÄNDLIGT OCH OÄNDLIGT. Övning A

KOMBINATORIK. Exempel 1. Motivera att det bland 11 naturliga tal finns minst två som slutar på samma

Om relationer och algebraiska

Transkript:

Kapitel 1 NÅGOT OM KRYPTERING Behovet av att skydda information har funnits mycket länge, men först i samband med utvecklingen av datatekniken har det blivit ett allmänt problem för alla moderna samhällen. Stora datamängder måste ofta skyddas från obehörigt intrång med hjälp av en lämplig kryptering. Krypteringsproblemet är mycket mera komplicerat matematiskt än rent tekniskt. Situationen kan beskrivas så att det nns två mängder: mängden av meddelanden X och mängden av deras krypterade motsvarigheter Y. Det nns två funktioner: E : X Y och D : Y X. Den första E är krypteringsfunktionen, och den andra, D är dekrypteringsfunktionen. E krypterar x till E(x), och D dekrypterar E(x) till x, dvs (D E)(x) = D(E(x)) = x (E och D är varandras inverser). Problemet är att konstruera E och D på ett sådant sätt att E är relativt enkel att deniera, och D är mycket svår att rekonstruera av den som inte har tillgång till dess denition. Mera formellt kan X betraktas som mängden av informationsvektorer a = a 1 a 2... a n, där a i tillhör en ring R (t ex Z 2, dvs a i = 0 eller 1). En krypteringsfunktion ersätter a med en vektor a = a 1 a 2... a m tillhörande mängden Y. Man kan inte konstruera a helt slumpmässigt därför att det måste nnas ett eektivt sätt att få tillbaka a. Samtidigt måste övergången från a till a vara komplicerad för att göra det mycket svårt för obehöriga att komma åt a. Låt oss börja med ett exempel som är drygt 2000 år gammalt: (1.1) Exempel. (Caesarkrypto ) Låt oss numrera alla bokstäver (för enkelhets skull i det engelska alfabetet) med 0, 1, 2,..., 25: Detta krypto användes av Julius Caesar. 1

2 NÅGOT OM KRYPTERING A B C D E F G H I J K L M 0 1 2 3 4 5 6 7 8 9 10 11 12 N O P Q R S T U V W X Y Z 13 14 15 16 17 18 19 20 21 22 23 24 25 Caesarkryptot är denierat som en funktion E(x) = x + a, där x, a Z 26 (dvs man adderar modulo 26). Tag t ex a = 3. Då är E(x) = x+3 så att E(0) = 3, E(1) = 4, E(24) = 2,..., dvs A krypteras till D, B till E, Y till C osv. Ordet MATEMATIK förvandlas till PDWHPDWLN. Dekrypteringen är mycket enkel. Man kan använda dekrypteringsfunktionen D(x) = x + 23 därför att D är inversen till E dvs: x x + 3 (x + 23) + 3 = x. Med andra ord D(E(x)) = x vilket följer ur likheten 23 + 3 = 0. Till exempel dekrypteras PDW, dvs 15,3,22, till 15 + 23 = 12, 3 + 23 = 0, 22 + 23 = 19, dvs MAT. Caesarkryptot är mycket enkelt och kan knappast uppfylla dagens krav på säkra krypteringssystem. Men själva krypteringsmetoden visar vikten av en algebraisk struktur vid konstruktioner av krypterings- och dekrypteringsfunktioner. Vi skall beskriva några krypteringstekniker som bygger på restaritmetiker, dvs grupper och ringar relaterade till Z n. För att kunna göra det behöver vi två mycket berömda satser ur talteorin. Vi vet redan att Z n är en grupp med avseende på addition modulo n. Låt Z n = {r Z n : SGD(r, n) = 1}. T ex är Z 4 = {1, 3}, Z 5 = {1, 2, 3, 4} och Z 6 = {1, 5}. Vi vet att Z n är grupper med avseende på multiplikation modulo n (se Prop. (??)). Ordningen Z n betecknas med ϕ(n). Funktionen ϕ(n) kallas Eulers funktion. Man har alltså ϕ(n) = antalet heltal r sådana att 0 r < n och SGD(r, n) = 1. Denitionen ger ϕ(1) = 1, ϕ(2) = 1, ϕ(3) = 2, ϕ(4) = 2, ϕ(5) = 4, ϕ(6) = 2, ϕ(7) = 6, ϕ(8) = 4, ϕ(9) = 6, ϕ(10) = 4 osv, jfr Prop (??).

(1.4) 3 (1.2) Eulers sats. Låt a och n 1 vara heltal sådana att SGD(a, n) = 1. Då gäller a ϕ(n) 1 (mod n). Bevis. ϕ(n) är ordningen av gruppen Z n. För varje element r i denna grupp gäller alltså r ϕ(n) = 1. Villkoret SGD(a, n) = 1 säger att a r (mod n) för något r Z n. Alltså är a ϕ(n) r ϕ(n) 1 (mod n). Ett mycket viktigt specialfall av Eulers sats får man då n = p är ett primtal. I sådant fall är ϕ(p) = p 1 ty Z p = {1, 2,..., p 1} (alla element r i Z p med undantag av 0 uppfyller SGD(r, n) = 1). (1.3) Fermats lilla sats. Låt a vara ett heltal och p ett primtal. Då är a p a (mod p). Bevis. Om p /a (dvs SGD(a, p) = 1) så är p a p 1 1 enligt Eulers sats. Alltså gäller p a p a = a(a p 1 1) både då p /a och p a. För våra tillämpningar behöver vi en generalisering av Fermats lilla sats: (1.4) Sats. Låt n = p 1 p 2 p k vara en produkt av olika primtal. Då är a ϕ(n)+1 a (mod n). Bevis. Vi har ϕ(n) = (p 1 1)(p 2 1)... (p k 1) enligt Proposition (??). Om p i /a så är a ϕ(n) 1 = (a ϕ(n) p i 1 ) p i 1 1 delbart med p i enligt Eulers sats ty p i /a ϕ(n) p i 1. Alltså är p i a(a ϕ(n) 1) = a ϕ(n)+1 a både då p i a och p i /a. Men p 1, p 2,..., p k är olika primtal så att n = p 1 p 2 p k a ϕ(n)+1 a. Nu kan vi diskutera den mest kända av alla krypteringsmetoder, vilken kallas RSA-krypteringssystem. RSA kommer från namnen Rivest, Shamir, Adleman. Dessa matematiker publicerade systemet 1978. Grunden för RSA-systemet är följande sats: Leonard Euler 1707-1783. Pierre Fermat 1601-1665.

4 NÅGOT OM KRYPTERING (1.5) Sats. Låt n = p 1 p 2 p k där p i är olika primtal. Låt e vara ett positivt heltal sådant att SGD(e, ϕ(n)) = 1 och låt d uppfylla kongruensen ed 1 (mod ϕ(n)). Då har funktionen: E : Z n Z n, där E(r) = r e, inversen där D(r) = r d. D : Z n Z n, Bevis. Vi vet att förutsättningen SGD(e, ϕ(n)) = 1 garanterar att d existerar ty Z ϕ(n) är en grupp. För att visa att D är inversen till E kontrollerar man att D E är identiteten på Z n dvs (D E)(r) = r ed = r. Men ed = 1 + q ϕ(n), q 1 så att: (D E)(r) = r 1+qϕ(n). Vi visar induktivt att r 1+qϕ(n) = r. Likheten gäller då q = 1 enligt (1.4). Antag att i Z n. Då är r 1+(q 1)ϕ(n) = r r 1+qϕ(n) = r 1+ϕ(n)+(q 1)ϕ(n) = r 1+ϕ(n) r (q 1)ϕ(n) = r r (q 1)ϕ(n) = r 1+(q 1)ϕ(n) = r. Alltså gäller likheten r 1+qϕ(n) = r för alla q dvs (D E)(r) = r då r Z n. (1.6) RSA-kryptering. Vi ger en beskrivning av metoden enbart då n = pq är en produkt av två olika primtal. Metoden fungerar på samma sätt då n är produkt av ett godtyckligt antal olika primtal. (a) Välj två olika primtal p, q och beräkna n = pq (p, q är vanligen mycket stora, säg av storleksordningen 10 100 ). (b) Beräkna ϕ(n) = (p 1)(q 1) och välj e så att SGD(e, ϕ(n)) = 1. Beräkna även d så att ed 1 (mod ϕ(n))(d räknas med hjälp av Euklides algoritm se kapitlet Delbarhet och primtal). (c) Publicera n, e och en ordbokför översättning av meddelanden till r Z n (t ex A = 10, B = 11,..., Z = 35 då n > 35). (d) Den som vill sända meddelanden till Dig krypterar med hjälp av (den kända) funktionen E(r) = r e. Du är den ende (förhoppningsvis) som kan dekryptera med hjälp av funktionen D(r) = r d (d är hemligt och (D E)(r) = D(r e ) = r ed = r enligt (1.5)).

(1.10) 5 (1.7) Exempel. Klartext ALGEBRA kodat med A = 10, B = 11,..., Z = 35 är 1021, 1614, 1127, 10. Låt n = pq = 47 167 = 7849. Då är ϕ(n) = 46 166 = 7636. Låt oss välja e = 29 (SGD(29, 46 166) = 1). Då är e 1 = 29 1 = 4213 (i Z ϕ(n) ). Kryptering enligt RSA-metoden ger: 1178, 1929, 3383, 4578, dvs 1021 29 1178 (mod 7849) osv. Vid dekryptering räknar man: 1178 4213 1021 (mod 7849) osv. (1.8) Anmärkning. RSA-systemet tillhör s.k. öppen-nyckelkrypton dvs krypteringsfunktionen E är allmänt känd. Vad gör den som vill beräkna inversen D = E 1? För att beräkna d måste man lösa ekvationen ed 1 (mod ϕ(n)). För att göra det måste man känna ϕ(n). För att beräkna ϕ(n) = (p 1)(q 1) måste man (med all sannolikhet) känna p och q. Men för att få p och q ur n = pq (som är känt) måste man faktorisera n. Faktoriseringsproblemet är mycket svårt att lösa. De bästa kända algoritmerna för primtalsfaktorisering av ett heltal n kräver c:a n 1/5 räkneoperationer om man vill hitta en primfaktor till n. Om p, q 10 100 så är n 10 200. Om en räkneoperation tar 1µs så krävs det 10 40 µs 3 10 26 år för att genomföra beräkningarna för n (10 6 datorer var och en kapabel att utföra en räkneoperation på 1µs skulle behöva 3 10 20 år för att klara dessa beräkningar!). Men det nns inte något bevis att faktororiseringsproblemet är så pass svårt. Det är alltså möjligt att det nns bättre algoritmer som inte är kända nu. Å andra sidan ökar datorernas beräkningskapacitet dramatiskt och redan nu är man mycket försiktig med valet av p och q. (1.9) Anmärkning. RSA-systemet kan även användas för äkthetskontroll. Den som känner D (se (1.6)) kan signera dokument med D(r) = r d. Den som vill kontrollera äktheten av signaturen räknar ut E D(r) = r de = r (E är allmänt känd). Vi skall beskriva några andra krypteringsmetoder. (1.10) Hillkryptot. Låt R = Z n och låt H vara en (N N) matris vars element tillhör Z n och sådan att det(h) Z n. En sådan matris har invers H 1 (den kan beräknas på samma sätt som inversen till en reell matris). Låt E : Z N n Z N n Nyligen visades att man ibland kan forcera RSA-kryptot i sådana fall som tidigare uppfattades som omöjliga att klara. L.S. Hill publicerade sina arbeten om detta krypto 1929-1931.

6 NÅGOT OM KRYPTERING där E(x) = Hx för x = (x 1,..., x N ) t Z N n. E är en isomorsm eftersom E har inversen D : Z N n Z N n där D(x) = H 1 x (dvs (E D)(x) = E(Hx) = H 1 Hx = x). Låt oss betrakta ett exempel då n = 26 och E : Z 2 26 Z 2 26, där E([ a b ]) = [ [ ] 2 1 23 24] [ a b ] = 2a+b 23a+24b. Genom att översätta A = 0, B = 1,..., Z = 25 kan man kryptera par av bokstäver: E(AL) = E( [ ] [ 0 11 ) = 2 1 ] [ 011 ] [ 23 24 = 11 ] 4 = LE. Dekrypteringen sker med hjälp av H 1 = H (kontrollera att HH = I!). T.ex. D(LE) = D( [ ] [ 11 4 ) = 2 1 ] [ 11 ] [ 23 24 4 = 011 ] = AL. Ofta väljer man H just så att H 1 = H. Då kan H användas som både krypterings- och dekrypteringsnyckel. En matris H sådan att H 2 = I (identitetsmatrisen) kallas involutiv (eller involutionsmatris). När n = 26 och N = 2 nns det 736 sådana matriser, men för N = 3 är deras antal 1 360 832. Det nns era varianter av Hillkryptot. Se vidare övningar. (1.11) Merkle-Hellmans kappsäckskrypto. Låt a 1, a 2,..., a n Z m och w Z m. Deniera E w : Z n m Z m så att E w (x) = x 1 wa 1 + x 2 wa 2 + + x n wa n = w(x a t ), R.C. Merkle och M.E. Hellman publicerade sina arbeten om detta krypto 1979-1982. 1982 visade A. Shamir att säkerheten av detta krypto är dålig.

ÖVNINGAR 7 där x a t är skalärprodukten av x = (x 1, x 2,..., x n ) Z n m och a = (a 1, a 2,..., a n ). Avbildningen E w är en grupphomomorsm ty E w (x + y) = w((x + y) a t ) = w(x a t ) + w(y a t ) = E w (x) + E w (y), där x, y Z n m. Funktionen E w är inte injektiv på Z n m (om n > 1) men om man lämpligt väljer a som s.k. ordnad kappsäck så är den injektiv för vektorer x = (x 1, x 2,..., x n ) sådana att x i = 0 eller 1. Ett sådant val är t.ex. a i = 2 i 1, i = 1,..., n och m > 2 n. Med ett hemligt val av w Z m får man då ett Merkle-Hellmans kappsäckskrypto (a = (a 1, a 2,..., a n ) är en ordnad kappsäck och wa = (wa 1, wa 2,..., wa n ) är oordnad). Man dekrypterar med hjälp av v Z m, där vw 1(mod m) ty ve w (x) = vwx a t = x a t och x a t bestämmer entydigt x. ÖVNINGAR I alla övningar är A = 1, B = 2,..., Z = 26 och mellanrum = 27. 1.1. Låt n = 3 11 = 33. (a) Låt krypteringsnyckeln vara e = 3. Kryptera DISKRET MATEMATIK. (b) Bestäm dekrypteringsnyckeln d. (c) Dekryptera 19, 1, 4, 12, 26. 1.2. För att kontrollera äktheten av dokument som skickas från MATEMATIK AB använder man krypteringsnyckeln n = 221, e = 7 (känd för alla mottagare). Kontrollera äktheten av ett dokument med signaturen: 208, 1, 45, 112, 208, 1, 45, 76, 54. 1.3. Låt H = [ 1 2 3 5] och låt E : M2 (Z 28 ) M 2 (Z 28 ), där E(X) = HX. (a) Visa att E är en grupphomomorsm. (b) Man denierar ett Hillkrypto så att X = [ a b c d] svarar mot 4 bokstäver a, b, c, d i en klartext. Kryptera TEXT och konstruera en dekrypteringsfunktion (inversen till E). Dekryptera: [ 19 18 21 27]. D : M 2 (Z 28 ) M 2 (Z 28 ) M 2(R) betecknar alla 2 2-matriser med element i R.