De voorbeelden die we tot nu toe gezien hebben zijn voorbeelden van symmetrische cryptografie. Dit betekent dat je dezelfde sleutel nodig hebt voor het encrypten en decrypten van een bericht. Het probleem hiervan is dat je de sleutel moet doorgeven en hierdoor kan deze onderschept worden. De onderschepper kan de berichten dan meelezen.
Tegenwoordig wordt gebruikt gemaakt van asymmetrische cryptografie. Bij asymmetrische cryptografie zijn twee verschillende sleutels nodig: een sleutel om de informatie te encrypten, en een andere sleutel om de informatie te decrypten.
De meest bekende encryptiemethode tegenwoordig is RSA. Deze methode maakt gebruik van asymmetrische cryptografie en van priemgetallen. Dit maakt de RSA methode heel veilig. RSA is genoemd naar de initialen van de uitvinders: Rivest, Shamir en Adleman.
RSA maakt gebruik van de eigenschappen van priemgetallen, daarom gaan we eerst in op wat dat precies zijn. Priemgetallen zijn getallen, die alleen door 1 en zichzelf deelbaar zijn. Het getal 9 is geen priemgetal want 9 is deelbaar door 3. Het getal 17 is wel een priemgetal. Er is geen getal denkbaar waar 17 een geheel aantal malen door te delen is.
Er is niet één priemgetal aan te duiden als het grootste. Er bestaat wel het grootste priemgetal dat tot nu toe bekend is. De Duitse oogarts Martin Nowak heeft in maart 2005 het grootste priemgetal tot nu toe ontdekt. Dit priemgetal bestaat uit maar liefst 7.816.230 cijfers. De eerste persoon die een priemgetal van 10 miljoen cijfers vindt, wint 100.000 dollar.
Priemgetallen hebben een speciale eigenschap: elk geheel getal kan worden gemaakt door bepaalde priemgetallen te vermenigvuldigen. Dit kan maar op één manier. Zo kun je het getal 42 maken door de priemgetallen 2,3 en 7 met elkaar te vermenigvuldigen (2 * 3 * 7 = 42). Er is geen andere combinatie van priemgetallen mogelijk die je met elkaar kunt vermenigvuldigen en die 42 oplevert.
RSA maakt gebruik van deze eigenschap van priemgetallen. Zoals we al eerder hebben gezien maakt RSA gebruik van twee sleutels: een publieke sleutel en een geheime sleutel. De publieke sleutel mag iedereen weten en deze sleutel is nodig om een bericht te encrypten. De geheime sleutel moet je goed geheim houden en met behulp van deze sleutel kun je een bericht decrypten. De publieke sleutel kun je maken door twee priemgetallen met elkaar te vermenigvuldigen. Bijvoorbeeld 2027 * 6359 = 12889693. de publieke sleutel is dus nu 12889693. Met deze sleutel kun je een bericht encrypten.
Om het bericht vervolgens te decrypten heb je de getallen 2027 en 6359 nodig.Het is niet makkelijk om erachter te komen welke priemgetallen je met elkaar moet vermenigvuldigen om de publieke sleutel te krijgen. Bij kleine getallen is dit nog wel mogelijk zoals je hebt gezien. Maar bij heel grote getallen is dit niet mogelijk - tenminste met de computers die we tot nu hebben. Als je een bericht veilig wilt versturen heb je een heel grote publieke sleutel nodig.