Asymmetrische encryptie

Eén massieve sleutel en drie omlijnde kopieën van een andersgevormde sleutel, rond hetzelfde hangslot.

Stel je koopt duizend identieke hangsloten, doet ze allemaal open en deelt ze uit aan iedereen die je kent. De enige sleutel die erop past, houd jij. Wil iemand je iets geheims sturen, dan legt hij het in een doosje, klikt er één van jouw hangsloten op en post het. Vanaf dat moment krijgt hij het zelf ook niet meer open — alleen jij. Zo'n slot bestaat niet van metaal. Van wiskunde wel, en het is iets anders dan wat je vorig hoofdstuk deed: daar spraken twee mensen samen een sleutel af, hier stuurt iemand jou rechtstreeks iets geheims zonder dat jullie ooit iets afgesproken hebben.

Woorden die je zo nodig hebt

Sleutelpaar
Twee sleutels die wiskundig bij elkaar horen en samen gemaakt worden. Wat de ene sluit, opent alleen de andere.
Publieke sleutel
Zo'n open hangslot. Daar deel je er zoveel van uit als je wil, en je mag hem gerust op je profiel zetten. Wie jou iets geheims stuurt, doet het in een doosje en klikt jouw hangslot erop.
Private sleutel
De enige sleutel die op al die hangsloten past. Die blijft bij jou, altijd, en zonder die sleutel gaat er geen enkel doosje meer open — ook niet voor wie het zelf dichtgeklikt heeft.
Asymmetrisch
Twee verschillende sleutels voor sluiten en openen. Het tegendeel van symmetrisch, waar het dezelfde sleutel is.
RSA
Het eerste systeem dat dit kon, uit 1977, genoemd naar de drie bedenkers Rivest, Shamir en Adleman. Het werkt met priemgetallen die honderden cijfers lang zijn.

Niet te verwarren met het vorige hoofdstuk

Allebei lossen ze hetzelfde ongemak op — geheim doen met iemand die je niet vooraf een sleutel kon geven — maar ze doen het op een andere manier, en dat verschil raakt iedereen door elkaar. Ook mensen die het zouden moeten weten.

Sleutels afspreken (hoofdstuk 6)Asymmetrisch versleutelen (hier)
Wat er gebeurtjullie komen samen op één geheim uitiemand versleutelt iets voor jou
Wie doet meeallebei, tegelijkde zender alleen; jij hoeft er niet te zijn
Wat je krijgteen gedeelde sleutel, waar je dan AES mee doeteen cijfertekst, meteen
Het sleutelpaarhoort bij die ene uitwisselingis van jou, en blijft van jou

Hoe het de rollen omdraait

Symmetrisch (hoofdstuk 5)Asymmetrisch (dit hoofdstuk)
Sleutelséén, en die moet je delentwee, en één mag iedereen zien
Vooraf afsprekenja, via een veilig kanaalniets
Snelheidbliksemsneltraag
Hoe groot mag het bericht zijn?onbeperktheel klein — kleiner dan de sleutel

Twee toepassingen, en het zijn niet dezelfde bewerking

Een sleutelpaar wordt op twee manieren gebruikt, en het is de moeite ze uit elkaar te houden — ze worden voortdurend verward, ook in leerboeken.

VersleutelenOndertekenen
Wie begintiedereen die jou iets wil sturenalleen jij
Met welke sleuteljouw publiekejouw private
Wie kan de andere kantalleen jij, met je privateiedereen, met jouw publieke
Dat heetontsleutelenverifiëren, niet ontsleutelen
Waarvoorgeheimhoudingbewijzen dat jij het was

De regel die je vaak hoort — "wat je met de ene sleutel versleutelt, kan je alleen met de andere ontsleutelen" — klopt niet. Ze gaat op voor kale RSA en verder nergens. Bij de systemen op elliptische krommen béstaat "versleutelen met de private sleutel" niet eens: een handtekening is een paar getallen waar het bericht niet meer uit te halen valt. Verifiëren is geen ontsleutelen, het is een vergelijking die klopt of niet klopt.

De regel die wél overal opgaat, is deze: de private sleutel doet iets wat alleen de houder kan doen; de publieke sleutel laat iedereen dat richten of controleren. Over ondertekenen gaat hoofdstuk 8.1.

Twee families, en een handvol namen

Er bestaan verschillende manieren om een sleutelpaar te maken. Twee ervan dragen bijna alles wat je vandaag gebruikt, en die krijgen elk een eigen stuk hierna.

FamilieRust opSleutel afsprekenOndertekenenVersleutelen
RSApriemgetallen ontbinden—RSA-PSSRSA-OAEP
Elliptische krommenterugtellen op een krommeECDHECDSA, EdDSAzelden
Priemgetallen mod pde discrete logaritmeDH (hoofdstuk 6)DSA — afgevoerd—
Roostersde kortste vector zoekenML-KEMML-DSA—

Twee dingen vallen op in die tabel. Er is geen enkele familie die alles kan — elke kolom vraagt zijn eigen algoritme. En DSA staat er als afgevoerd: de Amerikaanse standaardisatiedienst NIST haalde het in 2023 uit de norm voor nieuwe handtekeningen, en liet het alleen staan om oude te blijven controleren. De onderste rij is de nieuwste en gaat over de quantumcomputer; daarover later meer.

Waar het bij mensen blijft hangen. Vraag iemand die dit vak doet wat hem of haar erin getrokken heeft, en het antwoord gaat verrassend vaak over dit ene hoofdstuk. Niet over de formules, maar over de scheefheid: een simkaartje van een halve centimeter rekent iets uit dat alle datacenters ter wereld samen niet kunnen terugdraaien. Dat een zó klein ding een zó groot ding kan tegenhouden, is niet vanzelfsprekend, en het is geen trucje van betere machines. Het is een eigenschap van de wiskunde zelf.

Dit is wiskunde: complexiteit

Alles in dit hoofdstuk hangt aan één soort som: eentje die je vooruit in een fractie van een seconde maakt en achteruit in geen duizend jaar. Zo'n som heet een eenwegfunctie. Je hebt er al twee gezien — priemgetallen vermenigvuldigen in hoofdstuk 7.1 en punten optellen in hoofdstuk 7.2 — en ze lijken in niets op elkaar, behalve in die scheefheid. Het vak dat meet hoeveel werk een berekening kost heet complexiteitstheorie, en het meet niet in seconden maar in hoe hard het werk groeit als je invoer groter wordt. Verdubbel je de sleutel, dan verdubbelt het werk om te versleutelen, terwijl het werk om te kraken een paar miljard keer zo groot wordt. Dáár leeft je veiligheid.

En nu het ongemakkelijke. Van geen enkele eenwegfunctie is bewezen dat ze er een is. Niemand heeft ooit aangetoond dat grote getallen ontbinden echt moeilijk moet zijn; we weten alleen dat het niemand tot nu toe gelukt is. Die vraag zit vast aan het beroemdste open probleem van de informatica, P versus NP, waar sinds 2000 een miljoen dollar op staat. Wordt het ooit opgelost in de verkeerde richting, dan valt de helft van deze site stil. Dat is geen doemscenario dat je moet vrezen, wel iets om te weten: moderne cryptografie rust niet op een bewijs, maar op vijftig jaar mislukte pogingen.