Priemgetallen, Cryptografie, yp g Digitale handtekening www.kuleuven-kortrijk.be/~igodt 1 Situering www.kuleuven-kortrijk.be/~igodt 2 Cluster Wiskunde-Informatica-Fysica-Ingenieur Opleidingen • Wiskunde (2 jaar) • Fysica (2 jaar) • Informatica (2 jaar) • Ingenieurswetenschappen (Elektrotechniek, Werktuigkunde, ComputerWetenschappen) www.kuleuven-kortrijk.be/~igodt 3 1 Eerste semester www.kuleuven-kortrijk.be/~igodt 4 Priemgetallen • Priemgetallen: 2, 3, 5, 7, …, 97, …, • Elk natuurlijk getal is op unieke manier product van priemgetallen: • b.v. b 78 = 2 . 39 = 2 . 3 . 13 2009 = 7 . 7 . 41 2010 = 2 . 3 . 5 . 67 2011 = 2011 123456789 = 3 . 3 . 3607 . 3803 www.kuleuven-kortrijk.be/~igodt 5 Priemgetallen • Priemgetallen zijn de “atomen” van de gehele getallen: • als p een priemgetal is, en p is deler van n . m, dan is p een deler van n of een deler van m. • Er zijn oneindig veel priemgetallen! • Het is bijzonder moeilijk om een groot getal te schrijven als product van priemgetallen! b.v. getal van 200 cijfers ~ 1 eeuw computertijd www.kuleuven-kortrijk.be/~igodt 6 2 Klokrekenen • Op de “klok van 12”: • 6 + 7 = 1 (mod 12) • 11 + 11 = 10 (mod 12) • 5 . 5 = 5 + 5 + 5 + 5 + 5 = 1 (mod 12) • 3^5 = 3 . 3 . 3 . 3 . 3 = 3 ( mod d 12 ) • Op de “klok van 24”: • 22 + 10 = 8 (mod 24) • 12 . 12 = 0 (mod 24) • 4 . 8 = 8 (mod 24) • Men kan rekenen op de “klok van n”, voor elk natuurlijk getal n. www.kuleuven-kortrijk.be/~igodt B.v. de “klok van 100”, de “klok van p” (p priem), … 7 Klokrekenen • Klokrekenen is relatief eenvoudig en snel uit te voeren met een computer, ongeacht hoe groot de getallen zijn. www.kuleuven-kortrijk.be/~igodt 8 Crypto • Neem 2 GROTE priemgetallen, p en q, en vorm het product n = p . q (= een heel groot getal); • Zoek r en s zo dat r . s = 1 ( mod (p-1)(q-1) ) • Maak n en r publiek. Hou s geheim! (s van “secret”) • Doe dat voor alle mensen => “Telefoonboek” www.kuleuven-kortrijk.be/~igodt 9 3 Public Key Wie n r Jan n1 r1 Piet n2 r2 Sofie n3 r3 Emma n4 r4 Stan n5 r5 … … … • • • • boodschap: b.v. “afspraak morgen om tien uur” a = 01, b = 02, c = 03, …, z = 26, spatie = 27, … => boodschap: 01 06 19 16 18 01 01 11 27 13 15 18 … verdeel in blokken: 01061 91618 01011 12713 … www.kuleuven-kortrijk.be/~igodt 10 Verstuur naar Emma • Zoek Emma in de “public key”-gids; • Vind n en r van Emma; • Codeer blok-getallen door : • a wordt omgevormd naar a^r ( mod n ) (“klok van n) n”) • doe dit voor elk blokgetal; • boodschap wordt een groot nieuw getal; • bezorg dit getal aan Emma www.kuleuven-kortrijk.be/~igodt 11 Emma ontvangt • Emma ontvangt groot getal, met nieuwe blokken, b1 b2 b3 b4 … • Emma heeft een geheim getal, getal de “sleutel” sleutel , s • Emma berekent, voor elk blokgetal, b^s ( mod n ) en reconstrueert zo de boodschap • Alleen Emma kan dit snel. Waarom? www.kuleuven-kortrijk.be/~igodt 12 4 Digitale handtekening • Opdracht: Jan moet document tekenen t.a.v. Sofie (m.a.w. Jan moet zijn identiteit bewijzen) • Wie n r Jan Ja n-jan ja r-jan ja Sofie n-sofie r-sofie • Jan stuurt akkoord en zijn naam naar Sofie, • zet om in groot getal • verdeelt in blokken • gebruikt zijn “geheime sleutel” • gebruikt publieke sleutel van Sofie www.kuleuven-kortrijk.be/~igodt 13 Digitale handtekening • stuurt naar Sofie • Sofie • ontvangt groot getal, in blokken • gebruikt haar “geheime geheime sleutel sleutel” en decodeert • vindt een nieuw groot getal • “als dit van de echte Jan komt, dan …” • neem de publieke sleutel van de echte Jan, • ontcijfer nog eens, en … • … je vindt een leesbaar akkoord en de juiste naam • HANDTEKENING! = UNIEK! www.kuleuven-kortrijk.be/~igodt 14 Hou je van Wetenschappen? Ga ervoor! Toekomstgericht! Goede en vele jobs! Dank u! www.kuleuven-kortrijk.be/~igodt 15 5