Primtal, faktorisering och RSA

Relevanta dokument
Kryptering och primtalsfaktorisering

Offentlig kryptering

RSA-kryptering och primalitetstest

NÅGOT OM KRYPTERING. Kapitel 1

Några satser ur talteorin

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

MA2047 Algebra och diskret matematik

Den mest väsentliga skillnaden mellan

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

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

Krypteringteknologier. Sidorna ( ) i boken

Föreläsning 9: Talteori

Krypteringens historia och användningsområden

Grundläggande krypto och kryptering

Föreläsning 9: Talteori

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)

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

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

SJÄLVSTÄNDIGA ARBETEN I MATEMATIK

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

Kryptering. Krypteringsmetoder

Kryptografi och primalitet. Anders Björner

Hemligheternas Matematik

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

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

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.

RSA-kryptering. Torbjörn Tambour

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

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

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

Delbarhet och primtal

Moderna krypteringssystem

TALTEORI FÖR ALLA 1 Juliusz Brzezinski

Föreläsninsanteckningar till föreläsning 1: Introduktion

Övning 6 - Tillämpad datalogi 2012

Grundläggande kryptering & chiffer

Geometri, talteori och kombinatorik

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

Lektion 2. Potenser. Valentina Chapovalova. vårterminen IT-Gymnasiet. Valentina Chapovalova Lektion 2

Grundfrågor för kryptosystem

Introduktion till krypteringsmetoderna RSA och Merkle-Hellman

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

Planering för matematik 2a OBS: Provdatumen är endast förslag, kontakta läraren innan du kommer och vill ha prov

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

Kryptering HEMLIG SKRIFT SUBSTITUTION STEGANOGRAFI KRYPTOGRAFI

DIVISION ISBN Till läraren

DEL I. Matematiska Institutionen KTH

Lektion 1. Förenklingar. Valentina Chapovalova. vårterminen IT-Gymnasiet. Valentina Chapovalova Lektion 1

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

Metoder för sekretess, integritet och autenticering

EXAMENSARBETEN I MATEMATIK

Matematik med lite logik

Tal och polynom. Johan Wild

Skydd för känsliga data

Finns det säkra kryptosystem?

Test av kryptobiblioteket

Tentamen består av 26 uppgifter fördelade på fem olika ämnesområden. Del 2 5 ger maximalt 11 poäng/del.

Faktoriseringsalgoritmer och Kryptografi

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

Arbetsblad 1:1. Tiondelar på tallinjen 0,1 0,5 0,9 0,2 0,8 0,3 0,8 1,1 1,5 1,6 2,1 2,4 1,1 1,4 2,6 3,2 3,8

Arbetsblad 1:1. Tiondelar på tallinjen 0,9 1,1 0,8. 6 Sätt ut pilar som pekar på talen: A = 0,3 B = 0,8 C = 1,4

Arbetsblad 1:1. Tiondelar på tallinjen. 6 Sätt ut pilar som pekar på talen: A = 0,3 B = 0,8 C = 1,4

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

Ansvarig lärare: Maria Lindström eller , Camilla Sjölander Nordin eller

S =(s e )modn. s =(S d )modn. s =(s e ) d mod n.

KTHs Matematiska Cirkel. Talteori. Andreas Enblom Alan Sola

INDUKTION OCH DEDUKTION

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

a) A = 3 B = 4 C = 9 D = b) A = 250 B = 500 C = a) Tvåhundrasjuttiotre b) Ettusenfemhundranittio

Resträkning och ekvationer

Kapitel 2: De hela talen

Kravspecifikation Fredrik Berntsson Version 1.1

Lösningsförslag till Tentamen i 5B1118 Diskret matematik 5p 14 augusti, 2002

Diskret matematik: Övningstentamen 1

Algebra och kryptografi Facit till udda uppgifter

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson

Hela tal LCB 1999/2000

KURSBESKRIVNING - MATEMATIK

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

Matematikens historia Joel Eliasson

Lösningar till utvalda uppgifter i kapitel 5

Grupper och RSA-kryptering

Övningshäfte 3: Polynom och polynomekvationer

Övningsuppgifter till föreläsning 2 Variabler och uttryck

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

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

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

Matematik 5 Kap 2 Diskret matematik II

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

Hur man skriver matematik

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.

Mikael Gustafsson & Camilla Stridh

MATEMATIK ÅK 9 TAL. Matematik - Måldokument Lena Folkebrant

Matematik Steg: Bas. Mål att sträva mot Mål Målkriterier Omdöme Åtgärder/Kommentarer

Att undervisa multiplikation och division med 10, 100 och 1000

Quadratic Sieve. Avancerade algoritmer (2D1440) 8/ Joel Brynielsson, TCS/Nada (f.d. D95)

Diofantiska ekvationer

Arbetsblad 1:10. Avrundning. 1 a) 17,8 b) 156,3 c) 19,09 2 a) 30,49 b) 6,85 c) 49,64

Tema: Pythagoras sats. Linnéa Utterström & Malin Öberg

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

Transkript:

17 november, 2007

Ett Exempel N = 93248941901237910481523319394135 4114125392348254384792348320134094 3019134151166139518510341256153023 2324525239230624210960123234120156 809104109501303498614012865123 Kan vi avgöra om N är sammansatt?

Ett Exempel N = 93248941901237910481523319394135 4114125392348254384792348320134094 3019134151166139518510341256153023 2324525239230624210960123234120156 809104109501303498614012865123 Kan vi avgöra om N är sammansatt? Om så kan vi faktorisera N?

Ett Exempel N = 93248941901237910481523319394135 4114125392348254384792348320134094 3019134151166139518510341256153023 2324525239230624210960123234120156 809104109501303498614012865123 Kan vi avgöra om N är sammansatt? Om så kan vi faktorisera N? Spelar det någon roll?

Ett Exempel N = 93248941901237910481523319394135 4114125392348254384792348320134094 3019134151166139518510341256153023 2324525239230624210960123234120156 809104109501303498614012865123 Kan vi avgöra om N är sammansatt? Ja, lätt. Om så kan vi faktorisera N? Spelar det någon roll?

Ett Exempel N = 93248941901237910481523319394135 4114125392348254384792348320134094 3019134151166139518510341256153023 2324525239230624210960123234120156 809104109501303498614012865123 Kan vi avgöra om N är sammansatt? Ja, lätt. Om så kan vi faktorisera N? Betydligt svårare. Spelar det någon roll?

Ett Exempel N = 93248941901237910481523319394135 4114125392348254384792348320134094 3019134151166139518510341256153023 2324525239230624210960123234120156 809104109501303498614012865123 Kan vi avgöra om N är sammansatt? Ja, lätt. Om så kan vi faktorisera N? Betydligt svårare. Spelar det någon roll? Kunskap värt miljarder.

Plan 1 En hel del om primtal. 2 Lite om faktorisering. 3 Kryptosystemet RSA som finns på grund av våra förmåga att testa primtal och vår oförmåga att faktorisera.

Plan 1 En hel del om primtal. 2 Lite om faktorisering. 3 Kryptosystemet RSA som finns på grund av våra förmåga att testa primtal och vår oförmåga att faktorisera. Det är små heltal i mina exempel men tänk på tal större än det på förra sidan.

Fermatprimtal F i = 2 2i + 1. F 0 = 3 F 1 = 5 F 2 = 17 F 3 = 257 F 4 = 65537 F 5 = 4294967297 Pierre de Fermat (amatörmatematiker från 1600-talet) noterade att det första 5 är primtal och påstods ha trott att alla F i är primtal.

Vi vet idag Fermat hade (helt) fel! F 5 = 4294967297 = 641 6700417 och inga andra kända tal i serien är primtal. Borde Fermat insett att F 5 inte är primtal?

Fermats lilla sats Sats: Om 1 a p 1 så är resten av a p 1 vid division med p lika med 1. p betyder rest vid divison med p 1 6 = 1 7 1 2 6 = 64 7 1 3 6 = 729 7 1 4 6 = 4096 7 1 5 6 = 15625 7 1 6 6 = 46656 7 1

Slutsatser av Fermats lilla sats 2 8 = 256 9 4 2 10 = 1024 11 1 4 14 = 268435456 15 1

Slutsatser av Fermats lilla sats 2 8 = 256 9 4 9 definitivt inte primtal 2 10 = 1024 11 1 4 14 = 268435456 15 1

Slutsatser av Fermats lilla sats 2 8 = 256 9 4 9 definitivt inte primtal 2 10 = 1024 11 1 11 är kanske primtal 4 14 = 268435456 15 1

Slutsatser av Fermats lilla sats 2 8 = 256 9 4 9 definitivt inte primtal 2 10 = 1024 11 1 11 är kanske primtal 4 14 = 268435456 15 1 15 är kanske primtal

Lite större tal N = 257 3 256 = 139008452377144732764939786789661 303114218850808529137991604824430 036072629766435941001769154109609 521811665540548899435521 och ger rest 1 vid division med 256 vilket är rimligt då 257 är primtal.

Lite större tal N = 257 3 256 = 139008452377144732764939786789661 303114218850808529137991604824430 036072629766435941001769154109609 521811665540548899435521 och ger rest 1 vid division med 256 vilket är rimligt då 257 är primtal. Börjar bli tungt att räkna...

Åter till F 5 3 4294967296 ger rest 3029026160 vid division med F 5 = 4294967297 och vi kan med säkerhet säga att F 5 inte är primtal. Hur inser man detta? 3 4294967296 är ett tal med ett par miljarder siffror...

Bättre räkningar Vad är sista siffran i 1541 2311?

Bättre räkningar Vad är sista siffran i 1541 2311? 1

Bättre räkningar Vad är sista siffran i 1541 2311? 1 Vad är sista siffran i 1543 2311?

Bättre räkningar Vad är sista siffran i 1541 2311? 1 Vad är sista siffran i 1543 2311? Samma som 3 2311

Bättre räkningar Vad är sista siffran i 1541 2311? 1 Vad är sista siffran i 1543 2311? Samma som 3 2311 Sista siffran i 3-potenser är 3,9,7,1,3,9,7,1... och svaret blir 7.

Generalisering Sista siffran är resten vid division med 10. För att beräkna den behöver vi bara sista siffran i operanderna och kan slänga alla andra siffor.

Generalisering Sista siffran är resten vid division med 10. För att beräkna den behöver vi bara sista siffran i operanderna och kan slänga alla andra siffor. Allmänt: Vill vi veta resten av svaret av en beräkning vid division med N, kan vi kasta alla multipler av N på vägen.

Att räkna ut 3 256 modulo 257 3 256 = 9 128

Att räkna ut 3 256 modulo 257 3 256 = 9 128 = 81 64

Att räkna ut 3 256 modulo 257 3 256 = 9 128 = 81 64 = 6561 32

Att räkna ut 3 256 modulo 257 3 256 = 9 128 = 81 64 = 6561 32 257 136 32

Att räkna ut 3 256 modulo 257 3 256 = 9 128 = 81 64 = 6561 32 257 136 32 = 18496 16

Att räkna ut 3 256 modulo 257 3 256 = 9 128 = 81 64 = 6561 32 257 136 32 = 18496 16 257 249 16

Att räkna ut 3 256 modulo 257 3 256 = 9 128 = 81 64 = 6561 32 257 136 32 = 18496 16 257 249 16 = 62001 8

Att räkna ut 3 256 modulo 257 3 256 = 9 128 = 81 64 = 6561 32 257 136 32 = 18496 16 257 249 16 = 62001 8 257 64 8

Att räkna ut 3 256 modulo 257 3 256 = 9 128 = 81 64 = 6561 32 257 136 32 = 18496 16 257 249 16 = 62001 8 257 64 8 = 4096 4

Att räkna ut 3 256 modulo 257 3 256 = 9 128 = 81 64 = 6561 32 257 136 32 = 18496 16 257 249 16 = 62001 8 257 64 8 = 4096 4 257 241 4

Att räkna ut 3 256 modulo 257 3 256 = 9 128 = 81 64 = 6561 32 257 136 32 = 18496 16 257 249 16 = 62001 8 257 64 8 = 4096 4 257 241 4 = 58081 2

Att räkna ut 3 256 modulo 257 3 256 = 9 128 = 81 64 = 6561 32 257 136 32 = 18496 16 257 249 16 = 62001 8 257 64 8 = 4096 4 257 241 4 = 58081 2 257 256 2

Att räkna ut 3 256 modulo 257 3 256 = 9 128 = 81 64 = 6561 32 257 136 32 = 18496 16 257 249 16 = 62001 8 257 64 8 = 4096 4 257 241 4 = 58081 2 257 256 2 = 55536 257 1

Att räkna ut 3 256 modulo 257 3 256 = 9 128 = 81 64 = 6561 32 257 136 32 = 18496 16 257 249 16 = 62001 8 257 64 8 = 4096 4 257 241 4 = 58081 2 257 256 2 = 55536 257 1 Enbart 8 multiplikationer av tresiffriga tal.

Bättre beräkning F 5 Fermat kunde ha räknat ut resten av 3 4294967296 vid division med 4294967297 med 32 multiplikationer av 10 siffriga tal och 32 resttagningar. Tar högst någon timme för en van handräknare.

Bättre beräkning F 5 Fermat kunde ha räknat ut resten av 3 4294967296 vid division med 4294967297 med 32 multiplikationer av 10 siffriga tal och 32 resttagningar. Tar högst någon timme för en van handräknare. Skulle dock inte ha gett faktoriseringen som kräver betydligt mer jobb att få fram för hand.

Datorkörningar En dator klarar att göra ett Fermattest på 1000 siffriga tal på högst någon minut, en bra implementation på någon sekund. Slutsats antingen Definitivt inte primtal eller Kanske primtal.

Bättre upp Gary Miller och Michael Rabin visade 1976 att om vi utvidgar testet en aning och provar 50 slumpvis a så fås Definitivt inte primtal eller Troligen primtal. Sannolikhet att ha fel är 2 100.

Behövs slump för primtalstest? Felsannolikhet 2 100 gör detta till en akademisk fråga av litet praktiskt intresse. Stort filosofiskt och teoretiskt intresse. Finns det ett effektivt deterministiskt primtalstest?

Agarwal, Saxena, Kayal, 2002 Det finns ett deterministiskt primtalstest som på tal med n siffor gör n 6 operationer. Mycket bättre än provdivision som går i tid N 10 n/2, men mycket sämre än Miller-Rabin som går i tid n 3.

Hur svårt är faktorisering? Bästa datorprogrammen klarar ca 200 decimala siffror om man kör på hundratals datorer under ett par månader. Troligen mycket svårare än primtalstest. Inte i närheten av ett matematiskt bevis att faktorisering verkligen är svårare.

Kryptering baserat på dessa idéer Betrakta följande: Fermats lilla sats ger att a 21 och a ger samma rest vid divison med 11.

Kryptering baserat på dessa idéer Betrakta följande: Fermats lilla sats ger att a 21 och a ger samma rest vid divison med 11. Sätt b till resten av a 7 vid divison med 11.

Kryptering baserat på dessa idéer Betrakta följande: Fermats lilla sats ger att a 21 och a ger samma rest vid divison med 11. Sätt b till resten av a 7 vid divison med 11. Då 21 = 7 3 ger resten av b 3 vid division med 11 tillbaka a. a = 2 ger a 7 = 128 11 7 = b och b 3 = 343 11 2.

Kryptering baserat på dessa idéer Betrakta följande: Fermats lilla sats ger att a 21 och a ger samma rest vid divison med 11. Sätt b till resten av a 7 vid divison med 11. Då 21 = 7 3 ger resten av b 3 vid division med 11 tillbaka a. a = 2 ger a 7 = 128 11 7 = b och b 3 = 343 11 2. Vi kan återskapa förvanskad information, kryptering och dekryptering.

RSA Kryptering Välj stort tal N och e och d så att a ed och a alltid ger samma rest vid division med N. Ta ett medelande och koda som ett stort heltal M. Kryptotexten blir resten av M e vid division med N, kalla den C. Klartexten återskapas som resten av C d med division med N.

Exempel Meddelande HEJ JOHAN. A=1, B=2 etc ger M = 805101015080114 Vi kan ha N = 23942194232123139 och lämpliga e och d. Längre meddelanden delas upp i delar, ett blockkrypto. RSA efter upptäcktarna av Ron Rivest, Adi Shamir och Len Adleman.

Egenskaper hos RSA Kryptering och dekryptering är tämligen effektiva, ungefär som ett Miller-Rabin test. Välj N som produkten av två stora (kanske 150 decimala siffror) primtal. Beräkna lämpliga e och d. Kräver eftertanke men är blixtsnabbt. Publicera N och e.

Egenskaper hos RSA Kryptering och dekryptering är tämligen effektiva, ungefär som ett Miller-Rabin test. Välj N som produkten av två stora (kanske 150 decimala siffror) primtal. Beräkna lämpliga e och d. Kräver eftertanke men är blixtsnabbt. Publicera N och e. Vi publicerar KRYPTERINGSNYCKELN, alla kan kryptera, även de vi inte träffat.

Public key cryptography Öppen nyckel ger fantastiska möjligheter. Alla publicerar sina nycklar på sina hemsidor. Vi kan kommunicera med alla utan att nyfikna hackers eller myndigheter kan snoka.

RSA egenskaper Lätt att skapa nycklar via primtalstest. Enda kända sättet att forcera är att faktorisera N. Lätt att se att N inte är primtal, svårt att faktorisera. Kan eventuellt använda e = 3 men e = 65537 är bättre.

Slutord Inte svårt att skriva egen implementation av RSA för realistiskt stora tal. Kräver bara aritmetik på stora heltal. Rimligt projekt att förstå talteorin bakom att RSA fungerar. Matematiken ligger till grund för stora investeringar och samhällets säkerhet.