RSA. F.A. Grootjen. 8 maart 2002

Vergelijkbare documenten
OPLOSSINGEN VAN DE OEFENINGEN

Oefening 4.3. Zoek een positief natuurlijk getal zodanig dat de helft een kwadraat is, een derde is een derdemacht en een vijfde is een vijfdemacht.

Zwakke sleutels voor RSA

Het RSA Algoritme. Erik Aarts - 1 -

Oefening 4.3. Zoek een positief natuurlijk getal zodanig dat de helft een kwadraat is, een derde is een derdemacht en een vijfde is een vijfdemacht.

Opgaven Eigenschappen van Getallen Security, 2018, Werkgroep.

Getaltheorie II. ax + by = c, a, b, c Z (1)

Getaltheorie I. c = c 1 = 1 c (1)

7.1 Het aantal inverteerbare restklassen

Opgeloste en onopgeloste mysteries in de getaltheorie

1 Delers 1. 3 Grootste gemene deler en kleinste gemene veelvoud 12

Getaltheorie groep 3: Primitieve wortels

FACTORISATIE EN CRYPTOGRAFIE

1.5.1 Natuurlijke, gehele en rationale getallen

Hoe je het cryptosysteem RSA soms kunt kraken. Benne de Weger

Inleiding tot de Problem Solving - deel 1: Combinatoriek en getaltheorie

2 n 1. OPGAVEN 1 Hoeveel cijfers heeft het grootste bekende Mersenne-priemgetal? Met dit getal vult men 320 krantenpagina s.

FACTORISATIE EN CRYPTOGRAFIE

Kraak de Code. Koen Stulens

Getallenleer Inleiding op codeertheorie. Cursus voor de vrije ruimte

7 Deelbaarheid. 7.1 Deelbaarheid WIS7 1

Geldwisselprobleem van Frobenius

PG blok 4 werkboek bijeenkomst 4 en 5

2.1 Bewerkingen [1] Video Geschiedenis van het rekenen ( 15 x 3 = 45

Definitie 5.1. Cyclische groepen zijn groepen voortgebracht door 1 element.

Enkele valkuilen om te vermijden

Tweede Huiswerk Security 26 of 28 oktober, 11.00, Nabespreken op Werkcollege.

We beginnen met de eigenschappen van de gehele getallen.

In Katern 2 hebben we de volgende rekenregel bewezen, als onderdeel van rekenregel 4:

Hoofdstuk 6. Congruentierekening. 6.1 Congruenties

1. REGELS VAN DEELBAARHEID.

Gehelen van Gauss. Hector Mommaerts

Public Key Cryptography. Wieb Bosma

Opgaven Rekenen met Getallen Security, 2018, Werkgroep.

Je hebt twee uur de tijd voor het oplossen van de vraagstukken. µkw uitwerkingen. 12 juni 2015

Universiteit Gent. Academiejaar Discrete Wiskunde. 1ste kandidatuur Informatica. Collegenota s. Prof. Dr.

2.1 Bewerkingen [1] Video Geschiedenis van het rekenen ( 15 x 3 = 45

Opgeloste en onopgeloste mysteries in de getaltheorie

Hoofdstuk 1. Inleiding. Lichamen

VAKANTIEWERK WISKUNDE

Groepen, ringen en velden

Hoofdstuk 3. Equivalentierelaties. 3.1 Modulo Rekenen

Bijzondere kettingbreuken

Eigenschap (Principe van welordening) Elke niet-lege deelverzameling V N bevat een kleinste element.

priemrecords? Jaap Top

Profielwerkstuk Wiskunde 2005

WISKUNDE 1. Aansluitmodule wiskunde MBO-HBO

Probabilistische aspecten bij public-key crypto (i.h.b. RSA)

Dossier 3 PRIEMGETALLEN

Memoriseren: Een getal is deelbaar door 10 als het laatste cijfer een 0 is. Of: Een getal is deelbaar door 10 als het eindigt op 0.

Algebra. voor Informaticastudenten Getallen. Ernic Kamerich. Jean Delville: de school van Plato

Algoritmes en Priemgetallen. Hoe maak je een sleutelpaar voor RSA?

Priemontbinding en ggd s

Hoofdstuk 1 - Drie manieren om een getal te schrijven

Worteltrekken modulo een priemgetal: van klok tot cutting edge. Roland van der Veen

Cryptografie: de wetenschap van geheimen

Security. Eerste tentamen

Uitwerking Puzzel 93-1, Doelloos

Opmerking. TI1300 Redeneren en Logica. Met voorbeelden kun je niks bewijzen. Directe en indirecte bewijzen

De Chinese reststelling

IMO-selectietoets I donderdag 2 juni 2016

FLIPIT 5. (a i,j + a j,i )d i d j = d j + 0 = e d. i<j

Selectietoets vrijdag 10 maart 2017

Opgaven Getaltheorie en Cryptografie (deel 4) Inleverdatum: 13 mei 2002

Priemgetallen en het RSA cryptosysteem

Oefening: Markeer de getallen die een priemgetal zijn.

Diophantische vergelijkingen

Pijlenklokken. 1 Inleiding

1 Rekenen met gehele getallen

De partitieformule van Euler

Heron driehoek. 1 Wat is een Heron driehoek? De naam Heron ( Heroon) is bekend van de formule

1 Rekenen in eindige precisie

Oplossing van opgave 6 en van de kerstbonusopgave.

Getallen, 2e druk, extra opgaven

Cryptografie. 6 juni Voorstellen, programma-overzicht 2. 2 Inleiding: wat is cryptografie? 2

Spookgetallen. Jan van de Craats en Janina Müttel

3.2 Vectoren and matrices

1.3 Rekenen met pijlen

Hoofdstuk 6 : DEELBAARHEID

Hoofdstuk 6 : DEELBAARHEID

Uitwerkingen oefeningen hoofdstuk 1

Tweede Toets Security 9 november 2016, , Educ-α.

??? Peter Stevenhagen. 7 augustus 2008 Vierkant voor wiskunde

Volledige inductie. Hoofdstuk 7. Van een deelverzameling V van de verzameling N van alle natuurlijke getallen veronderstellen.

1 Hele getallen. Rekenen en wiskunde uitgelegd Kennisbasis voor leerkrachten basisonderwijs. Uitwerkingen van de opgaven bij de basisvaardigheden

Uitwerkingen toets 9 juni 2012

Algoritmes in ons dagelijks leven. Leve de Wiskunde! 7 April 2017 Jacobien Carstens

GETALTHEORIE 1. de Leuke En Uitdagende Wiskunde 1, 2, 3, 4, 5, 1, 3, 6, 10, 15, 1, 4, 9, 16, 25, 1, 5, 12, 22, 35, 1, 6, 15, 28, 65,

Wiskundige beweringen en hun bewijzen

Oefenopgaven Grondslagen van de Wiskunde A

Uitwerkingen toets 12 juni 2010

Finaletraining Nederlandse Wiskunde Olympiade

OP WEG NAAR WISKUNDE. Plusboek uit de serie Het Grote Rekenboek Uitgeverij ScalaLeukerLeren.nl

1 Complexe getallen in de vorm a + bi

Examencursus. wiskunde A. Rekenregels voor vereenvoudigen. Voorbereidende opgaven VWO kan niet korter

Complex multiplication constructions in genus 1 and 2

ProefToelatingstoets Wiskunde B

1 Kettingbreuken van rationale getallen

kun je op verschillende manieren opschrijven of uitspreken: XX Daarnaast kun je een breuk ook opschrijven als een decimaal getal.

2. Ga voor volgende relaties na of het al dan niet functies, afbeeldingen, bijecties, injecties, surjecties zijn :

Transcriptie:

RSA F.A. Grootjen 8 maart 2002 1 Delers Eerst wat terminologie over gehele getallen. We zeggen a deelt b (of a is een deler van b) als b = qa voor een of ander geheel getal q. In plaats van a deelt b schrijven we ook a b. Voorbeeld: 6 12. Soms willen we uitdrukken dat een getal geen deler is van een ander getal, bijvoorbeeld 6 is geen deler van 15. Dit noteren we als 6 15. Als a en b gehele getallen zijn dan is een gemeenschappelijke deler van a en b een geheel getal e met e a en e b. Een geheel getal d noemen we grootste gemeenschappelijke deler (ggd) van a en b als geldt: d is een gemeenschappelijke deler van a en b. als e een gemeenschappelijke deler is van a en b dan e d. (d is de grootste). Tenslotte noement we a en b relatief priem als ggd(a, b) = 1. Voorbeelden ggd(25, 35) = 5; ggd(25, 17) = 1; ggd( 16, 32) = 16. Merk op: er kan maar één gemeenschappelijke deler de grootste zijn. 2 Algoritme van Euclides Een manier om de ggd van twee getallen te vinden is beschreven door Euclides: Als a een deler is van b dan is a een gemeenschappelijke deler van b en a, en is natuurlijk ook de grootste gemeenschappelijke deler: want er is geen getal groter dan a die een deler is van a. Maar als a geen deler is van b, dan houden we door telkens de kleinste van de getallen a en b van de grootste af te trekken een getal over dat een deler is van de getallen ervoor. Het getal wat overblijft is de grootste gemeenschappelijke deler van b en a. We illustreren het algoritme met 78 en 32. We trekken 32 van 78 af en krijgen 46 en 32. We trekken 32 van 46 af en krijgen 14 en 32. Trek 14 van 32 af en we krijgen 14 en 18. Trek 14 van 18 af en we krijgen 4 en 14. Trek 4 van 14 af en we krijgen 10 en 4. Trek 4 van 10 af en we krijgen 6 en 4. Tenslotte trekken we 4 van 6 af en we krijgen 2 en 4. Nu is 2 4 dus ggd(78, 32) = 2. 1

Als we het algoritme wat compacter opschrijven krijgen we: 78 = 2 32 + 14 32 = 2 14 + 4 14 = 3 4 + 2 4 = 2 2 + 0 Het is nu makkelijk in te zien dat ggd(78, 32) = 2. Kijk van onder naar boven: 2 4 en dus 2 14, want 14 = 3 4 + 2. Maar dan ook 2 32 want 32 = 2 14 + 4. Tenslotte zien we dat 2 78 want 78 = 2 32 + 14. Dus 2 is een gemeenschappelijke deler van 78 en 32. Dat hij ook de grootste is zien blijkt uit hetvolgende: als d een gemeenschappelijke deler is van 78 en 32 dan d 14 (kijk maar naar de eerste regel). Dus d is een deler van 32 en 14. Op dezelfde manier vind je dat d een deler is van 14 en 4 en tenslotte van 2. Als elke gemeenschappelijke deler van 78 en 32 een deler van 2 is dan is 2 de grootste. 2.1 Toepassing Een van de toepassingen van het algoritme van Euclides is de volgende bewering: Stelling 1 (Bezout) Als ggd(a, b) = d dan zijn er getallen x en y met d = ax + by. We illustreren de stelling aan de hand van een voorbeeld: Zoek x en y met 1876x + 365y = 1 Gebruik Euclides om de ggd te vinden: 1876 = 5 365 + 51 365 = 7 51 + 8 51 = 6 8 + 3 8 = 2 3 + 2 3 = 1 2 + 1 Dus de ggd is 1. Schrijf nu de tabel anders op: 1 = 3 1 2 2 = 8 2 3 3 = 51 6 8 8 = 365 7 51 51 = 1876 5 365 Begin nu met de eerste regel (1 = 3 1 2) en vul voor de 2 de rechterkant van de tweede regel in: 1 = 3 1 (8 2 3) = 8 + 3 3 We vullen nu voor de 3 de rechterkant van de derde regel in: 1 = 8 + 3 (51 6 8) = 3 51 19 8 2

Achtereenvolgens vullen we 8 en 51 uit de vierde en vijfde regel in: 1 = 3 51 19 (365 7 51) = 19 365 + 136 51 1 = 19 365 + 136 (1876 5 365) = 136 1876 699 365 Dus x = 136 en y = 669. 3 Modulo rekenen Het is nu 16 uur. Hoe laat is het over 10 uur? Het juiste antwoord is 2 uur. Als je normaal zou rekenen zou het antwoord 26 uur zijn, maar daar trek je 24 uur vanaf. Deze vorm van rekenen heet klokrekenen of modulo rekenen (in dit geval modulo 24). Als je hier even over nadenkt dan zie je dat je eigenlijk equivalentie-klassen aan het maken bent: je vindt de antwoorden 2, 26, 50, 74,... allemaal hetzelfde oftewel equivalent. Zo zou je kunnen zeggen dat 16 + 10 = 2. Natuurlijk schept zo n formule verwarring als je er niet bij vertelt dat je modulo rekent! Daarom schrijven we liever: 16 + 10 = 2(mod 24). Dit laatste is hetzelfde als zeggen: Er is een k Z waarvoor 16 + 10 = 2 + k 24. Laten we eens modulo 3 gaan rekenen. Je ziet al snel dat er 3 equivalentie klassen onstaan, namelijk de klasse van alle 3-vouden: {0, 3, 6, 9,...}, de klasse van alle 3-vouden plus 1: {1, 4, 7, 10,...} en tenslotte die van alle 3-vouden plus 2: {2, 5, 8, 11,...}. Laten we een makkelijker notatie invoeren om die klassen te beschrijven. Definitie 1 [a] p = {z Z z = a(mod p)}. Soms schrijven we [a] in plaats van [a] p als het duidelijk is welke p we bedoelen. Je kunt [a] p zien als de verzameling getallen die equivalent zijn met a modulo p. Voorbeeld [0] 3 = {0, 3, 6, 9,...} [8] 3 = {2, 5, 8, 11,...} Beschouw de equivalentie klasse [7] 3. We noemen het getal 7 een representant van de klasse. Merk op dat [7] 3 = [1] 3. Hieraan zie je dat een klasse meerdere representanten kan hebben. Meestal (net zoals we breuken vereenvoudigen) kiezen we de kleinst mogelijke positieve representant voor de klasse. 3.1 Rekenen met equivalentie klassen Stel we rekenen modulo m. We definieren Z m als de verzameling equivalentie klassen {[0], [1], [2],..., [m 1]}. Het is interessant om te kijken wat we met elementen van Z m kunnen doen. Laten we eens kijken naar de voor de hand liggende definitie van optellen en vermenigvuldigen: [a] m + [b] m = [a + b] m [a] m [b] m = [a b] m 3

Deze definities zeggen eigenlijk dat de som (respectivelijk product) van twee equivalentie klassen de klasse is van de som (product) van de representanten. Dat deze definities goed zijn is niet meteen duidelijk: we moeten wel laten zien dat het niet uitmaakt welke representanten we kiezen. Bijvoorbeeld: de definitie zegt dat [4] 5 + [3] 5 = [7 5 ]. Maar omdat [4] 5 hetzelfde is als [9] 5 moet ook gelden [9] 5 + [3] 5 = [7 5 ]. Het is eenvoudig te bewijzen dat deze definities goed zijn. 3.2 Eigenschappen van Z m Het is te bewijzen dat Z m allerlei mooie eigenschappen heeft. We zullen ze hier zonder bewijs noemen. De optelling in Z m gedraagt zich netjes. Er is een neutraal element voor de optelling (namelijk [0] m ), de optelling is associatief (a + b) + c = a + (b + c) en commutatief a + b = b + a en elk element heeft een tegengestelde. De vermenigvuldiging in Z m heeft een neutraal element voor de vermenigvuldiging (namelijk [1] m ), is associatief (a b) c = a (b c) en commutief a b = b a. Tenslotte is Z m distributief a (b + c) = a b + a c en (a + b) c = a c + b c. Een oplettende lezer is het misschien opgevallen dat er een eigenschap mist: het bestaan van een inverse voor de vermenigvuldiging. In het algemeen geldt die eigenschap ook niet: in Z m zijn er elementen (ongelijk aan [0] m ) die geen inverse hebben. Als m echter een priemgetal is, dan geldt de eigenschap wel. Vandaar dat we vaak modulo een priemgetal rekenen. 3.2.1 Voorbeeld We rekenen modulo 6. Hieronder staat de vermenigvuldigingstabel voor Z 6. [0] [1] [2] [3] [4] [5] [0] [0] [0] [0] [0] [0] [0] [1] [0] [1] [2] [3] [4] [5] [2] [0] [2] [4] [0] [2] [4] [3] [0] [3] [0] [3] [0] [3] [4] [0] [4] [2] [0] [4] [2] [5] [0] [5] [4] [3] [2] [1] Uit deze tabel is snel af te leiden (door te kijken waar in een rij [1] staat) dat naast [0], ook [2], [3] en [4] geen inverse hebben. In Z 7 heeft elk element ongelijk aan [0] een inverse. 3.3 Kleine stelling van Fermat Een beroemde en belangrijke stelling van de getal theorie is beschreven door Fermat in 1640 en geeft, naast andere, de mogelijkheid om de inverse van een element uit Z p te vinden, met p een priemgetal. Stelling 2 (Kleine stelling van Fermat) Als p een priemgetal is, en a een geheel getal niet deelbaar door p, dan a p 1 = 1(mod p). Een direct gevolg van deze stelling is: 4

Stelling 3 In Z p geldt: [a] 1 = [a p 2 ]. Hiermee kunnen we snel de inverse van een getal berekenen. Voorbeeld Bepaal [3] 1 7. De vraag is dus om te zoeken naar een getal x met [3] 7 [x] 7 = 1. Volgens Fermat moeten we dus x = 3 5 nemen. Vereenvoudigen geeft: En inderdaad [3] 7 [5] 7 = [15] 7 = [1] 7. 3.4 Machtsverheffen [3 5 ] 7 = [243] 7 = [5] 7 Bij het berekenen van een inverse moet je soms een getal tot een grote macht uitrekenen (modulo p). Voorbeeld Bereken 5 81 (mod 97). Je rekenmachine kan je hierbij niet meer helpen. Een truuk om dit toch met de hand te doen is de macht (81) te schrijven als som van tweemachten (in dit geval 64+16+1). Deze tweemachten kan je vinden door 81 te schrijven als binair getal: 1010001. Elke 1 staat hier voor een tweemacht. We concluderen nu: We maken nu een tabelletje: i 2 i [5 2i ] 0 1 [5] 1 2 [5] [5] = [25] 2 4 [25] [25] = [625] = [43] 3 8 [43] [43] = [6] 4 16 [6] [6] = [36] 5 32 [36] [36] = [1296] = [35] 6 64 [35] [35] = [1225] = [61] Met behulp van de tabel vinden we: 3.5 Euler [5 91 ] 97 = [5 64+16+1 ] 97 = [5 64 5 16 5 1 ] 97 [5 16 5 1 ] 97 = [61 36 5] 97 = [10980] 97 = [19] 97 De wiskundige Euler (1701-1783) vond een algemenere variant op de kleine stelling van Fermat. Voordat we de stelling bespreken introduceren we eerst de zogenaamde Euler functie (φ). 5

Definitie 2 φ(n) = #{z Z ggd(z, n) = 1}. De Euler functie telt als het ware het aantal getallen dat relatief priem is met het meegegeven getal. Merk op dat als p een priemgetal, dan φ(p) = p 1. Voorbeeld φ(2) = 1, φ(6) = 2, φ(7) = 6, φ(30) = 8. Stelling 4 (Euler) Als ggd(a, n) = 1 dan a φ(n) = 1(mod n). We zullen deze stelling gebruiken om de werking van het RSA systeem te verklaren. Tot slot nog handig lemma: Lemma 1 Als ggd(a, b) = 1, dan φ(a b) = φ(a) φ(b). 4 RSA Het RSA cryptosysteem (Rivest, Shamir en Adleman) is een asymmetrisch systeem. Het gebruikt een publieke en een privé sleutel. Hieronder volgt een korte uitleg hoe het systeem werkt. 4.1 De sleutels Het systeem begint met twee (grote) verschillende priemgetallen. Zoals we straks zullen zien is veiligheid van het systeem afhankelijk van de lengte van de priemgetallen. We kiezen twee priemgetallen p en q en houden die geheim. We bepalen hun product n = p q. We zijn geïnteresseerd in berekeningen modulo n en daarom willen we φ(n) uitrekenen. Omdat p en q er groot zijn, en dus n nog groter, is het lastig (onmogelijk) om φ(n) met de botte bijl methode uit te rekenen. Gelukkig kennen we p en q, en omdat ggd(p, q) = 1 (ze zijn beide priem en verschillend) geldt φ(n) = φ(p q) = φ(p) φ(q) = (p 1)(q 1). Ook dit getal houden we geheim. We kiezen vervolgens een getal e dat relatief priem is met φ(n). Het paar < e, n > is onze publieke sleutel. Vervolgens berekenen we het getal d = [e] 1 φ(n). d is dus de inverse van e modulo φ(n). Het paar < d, n > is onze privé sleutel. We vernietigen vervolgens p, q en φ(n). 4.2 Het coderen en decoderen We zijn nu klaar om een boodschap te versturen. We gaan er even van uit dat de boodschap b een numeriek getal is met b < n. Voor het coderen van de boodschap is de publieke sleutel nodig: c = b e (mod n) De ontvanger (de zelf de privé sleutel heeft) kan het gecodeerde bericht weer decoderen door te berekenen: b = c d (mod n) 6

4.3 Hoe werkt het We laten zien dat gedecodeerde bericht (b ) gelijk is aan het oorspronkelijke bericht: b = c d (mod n) = (b e ) d (mod n) = b e d (mod n) Omdat e de inverse is van d modulo φ(n) geldt: e d = 1(mod φ(n)). Er is dus een k Z met e d = k φ(n) + 1. Dus: b = b e d (mod n) = b k φ(n)+1 (mod n) = b b k φ(n) (mod n) = b (b φ(n) ) k (mod n) Volgens Euler geldt b φ(n) = 1(mod n). Dus: Omdat b < n en b < n geldt dus b = b. 4.4 Voorbeeld b = b (b φ(n) ) k (mod n) = b 1 k (mod n) = b(mod n) Neem p = 47 en q = 71. Dus n = p q = 3337. φ(n) = (p 1) (q 1) = 3220. We nemen e = 79, duidelijk is dat ggd(79, 3220) = 1. Onze publieke sleutel is dus < 79, 3337 >. We berekenen d = [79] 1 3 220. Dit kan met de kleine stelling van Fermat, maar we doen het nu met Euclides. We zoeken getal d met: d 79 = 1(mod 3220) d 79 = 1 + k 3220 d 79 k 3220 = 1 We gebruiken Euclides: 3220 = 40 79 + 60 79 = 1 60 + 19 60 = 3 19 + 3 19 = 6 3 + 1 We schrijven de tabel weer anders op: 1 = 19 6 3 3 = 60 3 19 19 = 79 1 60 60 = 3220 40 79 Invullen geeft: 1 = 19 6 (60 3 19) = 6 60 + 19 19 7

1 = 6 60 + 19 (79 1 60) = 19 79 25 60 1 = 19 79 25 (3220 40 79) = 25 3220 + 1019 79 We zien dus d = 1019. Check: 1019 79 = 80501 = 1(mod 3220). Onze privé sleutel is dus < 1019, 3337 >. We versturen de boodschap 123. Hiervoor berekenen we [123 79 ] 3337. We schrijven eerst 79 om in het binaire stelsel: 100111. Hierdoor zien we dat 79 = 64 + 8 + 4 + 2 + 1. Tabelletje: i 2 i [123 2i ] 0 1 [123] 1 2 [123] [123] = [15129] = [1781] 2 4 [1781] [1781] = [3171961] = [1811] 3 8 [1811] [1811] = [3279721] = [2787] 4 16 [2787] [2787] = [7767369] = [2170] 5 32 [2170] [2170] = [4708900] = [393] 6 64 [393] [393] = [154449] = [947] En zo vinden we: [123 7 9] = [947] [2787] [1811] [1781] [123] = [3059] [1849] [123] = [1433] Voor het decoderen berekenen we [1433 1019 ] 3337. 1019 is binair 111111011, dus 1019 = 512 + 256 + 128 + 64 + 32 + 16 + 8 + 2 + 1. Tabelletje: i 2 i [1433 2i ] 0 1 [1433] 1 2 [1433] [1433] = [2053489] = [1234] 2 4 [1234] [1234] = [1522756] = [1084] 3 8 [1084] [1084] = [1175056] = [432] 4 16 [432] [432] = [186624] = [3089] 5 32 [3089] [3089] = [9541921] = [1438] 6 64 [1438] [1438] = [2067844] = [2241] 7 128 [2241] [2241] = [5022081] = [3233] 8 256 [3233] [3233] = [10452289] = [805] 9 512 [805] [805] = [548025] = [647] En zo vinden we: [1433 1019 ] = [647] [805] [3233] [2241] [1438] [3089] [432] [1234] [1433] = [263] [526] [435] [2505] [1433] = [1521] [1813] [1433] = [1211] [1433] = [123] 4.5 Veiligheid Het RSA crypto systeem staat of valt met de geheimhouding van de privé sleutel. Als het eenvoudig is om uit de publieke sleutel < e, n > de privé sleutel < d, n > te berekenen dan zijn we verloren. Het is onmogelijk om zonder φ(n) het getal d te berekenen (anders dan gokken). Verder is geen methode bekend om zonder p en q snel φ(n) te berekenen uit n. Blijft er nog over de mogelijkheid om p en q uit n af te leiden. Dit heet factoriseren (ontbinden in priemfactoren) en dit is tot op dit moment niet snel te doen. Als p en q maar voldoende groot zijn (zeg 512 bits) duurt het factoriseren met de hedendaagse technologie ongeveer een half miljoen MIPS jaar. 8