Gekraakt? Dan moet je ofwel een sleutel van te weinig bits gebruiken, of zo achterlijk zijn je (privé) sleutel over het internet te sturen. Is dat niet het geval, dan is het kraken in de praktijk veel te complex. Even wat uitleg over public-key versleuteling:
Public-key versleuteling maakt gebruik van 2 sleutels: een public en een private key. Van een gebruiker is slechts de public key algemeen bekend. Alleen de gebruiker zelf kent zijn private key. Op het moment dat iemand met behulp van een public key iets versleuteld kan alleen met de bijbehorende private key het bericht worden ontcijferd. Niet met de public key, waarmee het versleuteld is. Ook als iemand een bericht schrijft en dit versleuteld met zijn private key kan dit alleen met behulp van de bijbehorende public key ontcijferd worden.
RSA is een voorbeeld van een public key system. De ontwikkelaars hiervan zijn Rivest/Shamir/Adelman (1976). Het systeem is gebaseerd op het "geloof" dat er geen snelle manier is om een groot getal te ontbinden in 2 priemgetallen. Er is echter een stelling die zegt dat ieder niet-priemgetal te ontbinden is als het produkt van een uniek paar priemgetallen. Hiervan wordt in RSA gebruik gemaakt.
RSA bestaat uit de volgende 7 stappen:
1. Zoek 2 grote priemgetallen p en q en laat n := p.q. Nu is n een heel groot getal en zijn p en q de unieke priemgetallen waarin n te ontbinden is.
2. Zoek een groot geheel getal getal d dat "relatief priem" is met met het gehele getal (p-1)(q-1) en d>max{p,q}. Relatief priem tussen 2 getallen betekend dat ze geen factor gezamenlijk hebben.
d is nu de private key.
3. Bereken het unieke geheel getal uit de range 1 <= e <= (p-1)(q-1) volgens de formule e.d = 1 (mod (p-1) (q-1))
4. De publieke sleutel is nu het paar (e , n)
5. Laat M de boodschap die je wilt versturen zijn.
6. Representeer deze in een Cryptogram C volgens:
C = M^e (mod n)
7. Ontsleutel met private key d en de formule:
D = C^d (mod n)
Over de snelheid waarmee RSA gekraakt kan worden, worden speculaties gemaakt. In 1977 zei Ron Rivest, een van de uitvinders van RSA, dat het miljarden jaar duurde om een getal van 125 decimalen te factoriseren. In 1994 werd een getal van 129 decimalen gefactoriseerd (ong 512 bits) .
In de onderstaande tabel staan tijden die nodig zijn om een RSA code te kraken. De tijd staat aangegeven in mips-years. Een computer die een miljoen instrukties per seconde uitvoert, doet dus 1 jaar over 1 mips-year. Dit is per definitie een DEC VAX 11/780. Ter vergelijk: een 486 DX2 50 : 2 mips.
512 bits < 200 mip-years
768 bits = 100,000 mip-years
1024 bits = 3*10^7 mip-years
1536 bits = 2*10^11 mip-years
2048 bits = 4*10^14 mip-years
Bron:
Universiteit Tilburg