Cryptology Academy · Les

XOR-encryptie en het one-time pad

Bouw een eenvoudig XOR-cijfer en ontdek de variant met perfecte geheimhouding.

Les 2 van 413 stappen

XOR-encryptie en het one-time pad is een gratis Cryptology Academy-les op CoddyKit. Dit is les 2 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Cryptology Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Cryptology Academy bevat in totaal 4 lessen.

Welkom

XOR-encryptie is eenvoudig: cijfertekst = platte tekst XOR sleutel. Wanneer de sleutel echt willekeurig is en slechts één keer wordt gebruikt, krijgen we het eenmalige pad — het enige aantoonbaar onbreekbare cipher.

Basisprincipes van XOR-encryptie

key = bytes([0x5A, 0xF2, 0x3C, 0x11]) plaintext = bytes([0x48, 0x65, 0x6C, 0x6C]) # 'Hell' ciphertext = bytes(p^k for p,k in zip(plaintext,key)) # Result: 0x12 0x97 0x50 0x7D

Eigenschap dat XOR zijn eigen inverse is

Decryptie is hetzelfde als encryptie: plain = cipher XOR key Bewijs: (P XOR K) XOR K = P XOR (K XOR K) = P XOR 0 = P Daardoor zijn XOR-ciphers triviaal symmetrisch.

Concept van het eenmalige pad

Een eenmalig pad (OTP) gebruikt een willekeurige sleutel die even lang is als het bericht en precies één keer wordt gebruikt. Het is theoretisch onbreekbaar: elke cijfertekst kan met gelijke waarschijnlijkheid naar elke mogelijke platte tekst worden gedecrypt.

Shannons bewijs van perfecte geheimhouding

Claude Shannon bewees in 1949: een cipher biedt perfecte geheimhouding dan en slechts dan als de sleutel willekeurig is, minstens zo lang is als het bericht en hoogstens één keer wordt gebruikt. OTP is het enige praktische cipher met deze eigenschappen.

Praktische beperkingen van OTP

De sleutel moet even lang zijn als het bericht. De sleutel moet veilig worden verspreid. De sleutel mag nooit opnieuw worden gebruikt. Door deze beperkingen is OTP voor de meeste toepassingen onpraktisch.

Aanval op hergebruik van sleutels: many-time pad

Als C1 = P1 XOR K en C2 = P2 XOR K, dan is C1 XOR C2 = P1 XOR P2. De sleutel valt weg! Een aanvaller die twee cijferteksten heeft, krijgt P1 XOR P2, waardoor patronen uitlekken.

Aanval met crib dragging

Als de aanvaller een deel van P1 raadt (een 'crib', zoals ' the '), dan onthult XOR-en met P1 XOR P2 op elke positie de bijbehorende tekst van P2. Geleidelijk worden de volledige platte teksten teruggewonnen.

Mislukking door hergebruik van sleutels in de praktijk

Het Venona-project ontsleutelde duizenden berichten uit het Sovjet-eenmalige-pad omdat KGB-agenten onder druk tijdens de oorlog pads opnieuw gebruikten. Door hergebruik van sleutels brak de aantoonbaar perfecte encryptie.

XOR in stroomciphers

Moderne stroomciphers (ChaCha20, RC4) genereren een pseudowillekeurige sleutelstroom en XOR-en die met de platte tekst. Ze benaderen het eenmalige pad, maar gebruiken een korte sleutel die door een CSPRNG wordt uitgebreid.

Python-demo van XOR-encryptie

import os def otp_encrypt(plaintext: bytes) -> tuple: key = os.urandom(len(plaintext)) ciphertext = bytes(p^k for p,k in zip(plaintext,key)) return ciphertext, key ciphertext, key = otp_encrypt(b'Secret!')

Snelle controle

Waarom is het hergebruiken van een sleutel van een eenmalig pad rampzalig onveilig?

Samenvatting

XOR en het eenmalige pad zijn fundamentele concepten. Vervolgens bestuderen we waarom naïeve XOR-schema's in de praktijk mislukken en welke aanvallen hergebruik van sleutels uitbuiten.
Gratis beginnen

Leer Cryptology Academy met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
67
Lessen
261

Veelgestelde vragen

Is de les “XOR-encryptie en het one-time pad” gratis?

Ja — de volledige tekst van “XOR-encryptie en het one-time pad” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Cryptology Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Cryptology Academy bevat in totaal 4 lessen.

Wat leer ik in “XOR-encryptie en het one-time pad”?

Bouw een eenvoudig XOR-cijfer en ontdek de variant met perfecte geheimhouding. Je oefent met Cryptology Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Cryptology Academy te beginnen?

Ervaring vooraf is niet nodig. Cryptology Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.

Hoe lang duurt de les “XOR-encryptie en het one-time pad”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Cryptology Academy?

Ja. Elke les over Cryptology Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Opfrisser: bitwise-bewerkingen
  2. XOR-encryptie en het one-time pad
  3. Waarom XOR alleen niet veilig is
  4. XOR in AES en streamcijfers
← Terug naar Cryptology Academy