## RSA

De ideeën van Diffie en Hellman werden ook bekend bij het MIT Laboratory for Computer Science. Daar waren het de onderzoekers Rivest, Shamir en Adleman die geïnteresseerd raakten in de zoektocht naar een asymmetrisch cijfer.
Na een flitsende inval van Rivest, te vergelijken met het eureka van Archimedes, werd een oplossing gevonden.
Het cijfer moet aan de volgende voorwaarde voldoen:

- Alice maakt een public key aan, die ze aan iedereen bekend maakt. Deze sleutel kan gebruikt worden om berichten aan haar te vercijferen.
  De public key is een eenwegfunctie, zodat het vrijwel onmogelijk is dat iemand die kan omkeren om de berichten van Alice te ontcijferen.
- Alice maakt ook een private key, waarmee ze het effect van de public key kan omkeren, zodat zij alleen de berichten aan haar kan ontcijferen.

Bekijk de video over het RSA-algoritme.

Deze methode staat bekend onder de naam RSA, de eerste letters van de achternamen van Rivest, Shamir en Adleman.
In het voorbeeld hebben we voor p en q gekozen voor twee kleine priemgetallen 17 en 11. Als je N hebt bepaald door p en q te vermenigvuldigen dan is het met wat proberen uit de uitkomst 187 wel te achterhalen wat p en q zijn geweest. Daarom moet er gekozen worden voor zeer grote priemgetallen, bijvoorbeeld:

686479766013060971498190079908139321726943530014330540939446345918554318339765605212255964 0661454554977296311391480858037121987999716643812574028291115057151 en 531137992816767098689588206552468627329593117727031923199444382004035598608522427391625022 65229285668889329486246501015346579337652707239409519978766587351943831270835393219031728 127

Als je deze twee getallen met elkaar vermenigvuldigt, krijg je:

36461548502950113697071310114387110954007991399431704908725856286835490343625520659558095 89514611470241298944167703929337528884908857116141935206466329731087514964112054543019336 53621610762952359760633015466919606414418247273955697450246240243890311584572563094642894 3768540714098264727068026730424033578827886916761701429264950573899186177

Wanneer je uit deze uitkomst weer de oorspronkelijke priemgetallen wilt achterhalen dan is zelfs een snelle computer daar jaren mee bezig.
RSA is heel populair geworden en daar zijn een paar redenen voor te noemen.

- Het systeem is asymmetrisch zodat de sleutel die nodig is voor het decoderen, nooit hoeft te worden verzonden;
- De snelheid van het coderen en decoderen met RSA is hoog genoeg om acceptabel te zijn;
- RSA werkt asymmetrisch zodat authenticatie (het zetten van een digitale unieke handtekening die het bewijs is van de afzender van het bericht) tot de mogelijkheden behoort;
- Op voorwaarde dat je van sleutels van een behoorlijke lengte gebruik maakt, is RSA met de meest geavanceerde computers niet te kraken