Cryptology Academy · Lektion

XOR-kryptering och engångsblock

Bygg ett enkelt XOR-chiffer och upptäck dess motsvarighet med perfekt sekretess

Lektion 2 av 413 steg

XOR-kryptering och engångsblock är en gratis lektion i Cryptology Academy på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Cryptology Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Cryptology Academy innehåller totalt 4 lektioner.

Välkommen

XOR-kryptering är enkel: ciphertext = plaintext XOR key. När nyckeln verkligen är slumpmässig och används endast en gång får vi ett engångskrypto – det enda chiffer som bevisligen inte kan knäckas.

Grunderna i XOR-kryptering

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

XOR:s självinverserande egenskap

Dekryptering är samma sak som kryptering: plain = cipher XOR key Proof: (P XOR K) XOR K = P XOR (K XOR K) = P XOR 0 = P Detta gör XOR-chiffer trivialt symmetriska.

Konceptet engångskrypto

Ett engångskrypto (OTP) använder en slumpmässig nyckel som är lika lång som meddelandet och används exakt en gång. Det är teoretiskt omöjligt att knäcka: varje ciphertext kan dekrypteras till varje möjlig plaintext med samma sannolikhet.

Shannons bevis för perfekt sekretess

Claude Shannon bevisade 1949 att ett chiffer har perfekt sekretess om och endast om nyckeln är slumpmässig, minst lika lång som meddelandet och används högst en gång. OTP är det enda praktiska chiffret med dessa egenskaper.

Praktiska begränsningar hos OTP

Nyckeln måste vara lika lång som meddelandet. Den måste distribueras på ett säkert sätt. Den får aldrig återanvändas. Dessa begränsningar gör OTP opraktiskt i de flesta tillämpningar.

Angrepp vid återanvändning av nyckel: many-time pad

Om C1 = P1 XOR K och C2 = P2 XOR K, blir C1 XOR C2 = P1 XOR P2. Nyckeln tar ut sig själv! En angripare som har två ciphertext-värden får P1 XOR P2, vilket läcker mönster.

Angrepp med crib dragging

Om angriparen gissar en del av P1 (en så kallad crib, till exempel ' the '), avslöjar XOR med P1 XOR P2 på varje position motsvarande text i P2. Gradvis återställs hela plaintext-värdena.

Verkligt misslyckande vid återanvändning av nyckel

Venona-projektet dekrypterade tusentals sovjetiska engångskryptomeddelanden eftersom KGB-agenter återanvände engångsblock under krigstidens press. Återanvändningen av nycklar bröt den bevisligen perfekta krypteringen.

XOR i strömchiffer

Moderna strömchiffer (ChaCha20, RC4) genererar en pseudorandomiserad nyckelström och XOR:ar den med plaintext. De efterliknar OTP, men använder en kort nyckel som utvidgas av en CSPRNG.

Python-demo av XOR-kryptering

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!')

Snabbkontroll

Varför är det katastrofalt osäkert att återanvända en engångskryptonyckel?

Sammanfattning

XOR och engångskryptot är grundläggande begrepp. Härnäst studerar vi varför naiva XOR-scheman misslyckas i praktiken och vilka angrepp som utnyttjar återanvändning av nycklar.
Gratis att börja

Lär dig Cryptology Academy med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
67
Lektioner
261

Vanliga frågor

Är lektionen ”XOR-kryptering och engångsblock” gratis?

Ja – hela texten till ”XOR-kryptering och engångsblock” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Cryptology Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Cryptology Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”XOR-kryptering och engångsblock”?

Bygg ett enkelt XOR-chiffer och upptäck dess motsvarighet med perfekt sekretess Ni övar på Cryptology Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Cryptology Academy?

Du behöver inga förkunskaper. Utbildningen i Cryptology Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.

Hur lång tid tar lektionen ”XOR-kryptering och engångsblock”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Cryptology Academy-lektionen?

Ja. Varje Cryptology Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Repetition av bitvisa operationer
  2. XOR-kryptering och engångsblock
  3. Varför XOR inte är säkert på egen hand
  4. XOR i AES och strömchiffer
← Tillbaka till Cryptology Academy