Asymmetrische encryptie
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 5) | Asymmetrisch versleutelen (hier) | |
|---|---|---|
| Wat er gebeurt | jullie komen samen op één geheim uit | iemand versleutelt iets voor jou |
| Wie doet mee | allebei, tegelijk | de zender alleen; jij hoeft er niet te zijn |
| Wat je krijgt | een gedeelde sleutel, waar je dan AES mee doet | een cijfertekst, meteen |
| Het sleutelpaar | hoort bij die ene uitwisseling | is van jou, en blijft van jou |
Hoe het de rollen omdraait
| Symmetrisch (hoofdstuk 4) | Asymmetrisch (dit hoofdstuk) | |
|---|---|---|
| Sleutels | één, en die moet je delen | twee, en één mag iedereen zien |
| Vooraf afspreken | ja, via een veilig kanaal | niets |
| Snelheid | bliksemsnel | traag |
| Hoe groot mag het bericht zijn? | onbeperkt | heel 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.
| Versleutelen | Ondertekenen | |
|---|---|---|
| Wie begint | iedereen die jou iets wil sturen | alleen jij |
| Met welke sleutel | jouw publieke | jouw private |
| Wie kan de andere kant | alleen jij, met je private | iedereen, met jouw publieke |
| Dat heet | ontsleutelen | verifiëren, niet ontsleutelen |
| Waarvoor | geheimhouding | bewijzen 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 7.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.
| Familie | Rust op | Sleutel afspreken | Ondertekenen | Versleutelen |
|---|---|---|---|---|
| RSA | priemgetallen ontbinden | — | RSA-PSS | RSA-OAEP |
| Elliptische krommen | terugtellen op een kromme | ECDH | ECDSA, EdDSA | zelden |
| Priemgetallen mod p | de discrete logaritme | DH (hoofdstuk 5) | DSA — afgevoerd | — |
| Roosters | de kortste vector zoeken | ML-KEM | ML-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.