Asymmetrische encryptie
Stel je een hangslot voor dat je open op tafel legt. Iedereen die voorbijkomt, mag er iets in stoppen en het dichtklikken. Maar openen? Dat kan alleen jij, met een sleutel die je nooit uit je zak haalt. Zo'n slot bestaat niet van metaal. Van wiskunde wel — en het loste in 1976 het probleem op waar Caesar al mee zat.
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
- Het open hangslot. Die mag iedereen hebben — je zet hem gerust op je profiel. Wie jou iets geheims wil sturen, versleutelt het hiermee.
- Private sleutel
- De sleutel in je zak. Die blijft bij jou, altijd. Alleen hiermee gaat het slot weer open.
- 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.
De goocheltruc met verf
Hoe kunnen twee mensen die elkaar nog nooit gezien hebben een geheim afspreken, terwijl iedereen meeluistert? Dit is het beeld waarmee de bedenkers, Whitfield Diffie en Martin Hellman, het zelf uitlegden:
- Jij en je vriendin kiezen samen, hardop, een kleur: geel. Iedereen hoort dat.
- Elk van jullie kiest in het geheim een eigen kleur. Jij rood, zij blauw. Dat zeg je aan niemand.
- Elk mengt zijn geheime kleur met geel, en stuurt het mengsel naar de ander. Iedereen ziet oranje en groen voorbijkomen.
- Jij mengt het groen dat je kreeg met jouw rood. Zij mengt jouw oranje met haar blauw. Jullie komen allebei op exact dezelfde bruine kleur uit.
De afluisteraar heeft geel, oranje en groen gezien. Maar verf ontmengen kan niet — hij krijgt jullie geheime rood en blauw er niet uit. Jullie hebben een gedeeld geheim, en niemand anders heeft het. In de echte wereld is "verf mengen" een rekensom die makkelijk vooruit gaat en onmogelijk terug.
Hoe het de rollen omdraait
| Symmetrisch (vorig hoofdstuk) | 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 |
Probeer het zelf
Het sleutelpaar wordt in je browser gemaakt en verdwijnt zodra je dit tabblad sluit.
- Klik Maak een sleutelpaar. Je ziet je publieke sleutel — dat lange blok tekst mag je aan iedereen geven. De private blijft onzichtbaar in je browser.
- Klik Versleutel met de publieke sleutel. De cijfertekst is altijd exact 256 bytes, hoe kort je bericht ook is.
- Klik Ontsleutel met de private sleutel. Je bericht komt terug.
- Plak nu een lange tekst in het berichtveld — een paar alinea's — en versleutel. Het lukt niet. Lees waarom.
Waarom je er tegen een muur liep
RSA met een sleutel van 2048 bits kan maar 190 bytes versleutelen. Dat is geen instelling die je hoger kan zetten: het bericht moet kleiner blijven dan het getal waarmee gerekend wordt. Een grotere sleutel helpt nauwelijks en maakt alles trager. Asymmetrische versleuteling is dus niet gemaakt om berichten mee te versturen.
Waarvoor dan wel? Voor twee dingen die symmetrisch niet kan: een geheime sleutel veilig afgeven aan iemand die je nooit ontmoet hebt (het verf-trucje), en ondertekenen. Over dat tweede gaat hoofdstuk zeven. Over hoe de twee werelden samenwerken, hoofdstuk acht.
Maar eerst iets mooiers. RSA rekent met priemgetallen van 600 cijfers. Er bestaat een elegantere manier die met veel kleinere getallen hetzelfde bereikt: rekenen met punten op een kromme lijn. Die zit in je identiteitskaart, in je browser, en in Bitcoin. Het volgende hoofdstuk laat je erop klikken.
Dit is wiskunde: priemgetallen als éénrichtingsstraat
13 × 17 = 221. Dat reken je uit je hoofd. Maar krijg je 221 en de vraag "welke twee priemgetallen zijn dit?", dan moet je proberen: 3? 7? 11? 13! Bij getallen van drie cijfers is dat een minuut werk. Bij getallen van 300 cijfers lukt het geen computer ter wereld — terwijl de vermenigvuldiging nog altijd in een fractie van een seconde gaat. Die scheve verhouding tussen vooruit en terug heet een valdeurfunctie, en RSA is er volledig op gebouwd. Getaltheorie, het vak dat eeuwenlang "nutteloos maar mooi" heette, blijkt de ruggengraat van het internet.