Cryptology Academy · Lektion

ECB jämfört med CBC: mönster och IV:er

Demonstrera pingvinattacken mot ECB och varför CBC med en slumpmässig IV krävs.

Lektion 2 av 413 steg

ECB jämfört med CBC: mönster och IV:er ä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

ECB och CBC är två lägen för blockchiffer. ECB är berömt osäkert på grund av informationsläckage om mönster. CBC med ett slumpmässigt IV är mycket starkare. Nu ska vi förstå båda på djupet.

ECB-läge: Electronic Codebook

ECB krypterar varje block separat: Ci = AES(K, Pi). Samma klartextblock → samma chiffertextblock varje gång. Block i samma meddelande eller i olika meddelanden är identiska om innehållet matchar.

ECB-pingvinen

ECB-pingvinen är en klassisk demonstration: kryptera en PNG-bild av Linux-pingvinen Tux med AES-ECB. Resultatet ser fortfarande ut som pingvinen — områden med samma färg krypteras till samma mönster.

ECB-sårbarhet: uppspelning av block

I ECB-läge kan en angripare ordna om chiffertextblock utan att känna till nyckeln: - Blocken är oberoende - Ordna om block → ordna om dekrypterad klartext - Duplicera block → duplicera innehåll - Ta bort block → ta bort innehåll

CBC-läge: Cipher Block Chaining

CBC XOR:ar varje klartextblock med föregående chiffertext innan kryptering: C0 = AES(K, P0 XOR IV) Ci = AES(K, Pi XOR C(i-1)) Samma klartext på olika positioner → olika chiffertext.

Initieringsvektor (IV)

IV:t fungerar som C(-1) för det första blocket. Det måste vara: - Slumpmässigt och unikt för varje meddelande - Inte hemligt (överförs tillsammans med chiffertexten) - Aldrig återanvänt med samma nyckel Ett förutsägbart IV bryter CBC:s säkerhet.

CBC-dekryptering

Pi = AES_Dec(K, Ci) XOR C(i-1) P0 = AES_Dec(K, C0) XOR IV Observera: dekryptering av block i kräver endast Ci och C(i-1). Blocken kan dekrypteras parallellt (till skillnad från kryptering).

CBC-bitflippningsattack

Om bit i i block Ci ändras orsakar det: (1) förvanskning av Pi, (2) en förutsägbar ändring av bit i i P(i+1). Utan autentisering kan en angripare ändra specifika bitar i klartexten och veta var de finns.

BEAST-attacken mot TLS 1.0 (2011)

BEAST utnyttjade att TLS 1.0 använde CBC med förutsägbara IV:n. Det sista blocket i en post användes som IV för nästa post. Attacken demonstrerades av Rizzo och Duong och tvingade fram uppgraderingar av webbläsare till TLS 1.1 eller senare.

Varför CBC kräver autentisering

CBC-kryptering utan en MAC möjliggör bitflippningsattacker och padding-orakelattacker. Kombinera alltid CBC med HMAC (Encrypt-then-MAC) eller byt till AES-GCM (inbyggd AEAD).

Praktisk CBC i Python

from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes import os iv = os.urandom(16) key = os.urandom(32) cipher = Cipher(algorithms.AES(key), modes.CBC(iv)) enc = cipher.encryptor() ciphertext = enc.update(padded_plaintext) + enc.finalize()

Snabbkontroll

Varför läcker ECB-läget information om klartextens struktur?

Sammanfattning

ECB är farligt och CBC är bättre men behöver autentisering. Därefter studerar vi CTR-läget — hur AES omvandlas till ett strömchiffer.
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 ”ECB jämfört med CBC: mönster och IV:er” gratis?

Ja – hela texten till ”ECB jämfört med CBC: mönster och IV:er” 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 ”ECB jämfört med CBC: mönster och IV:er”?

Demonstrera pingvinattacken mot ECB och varför CBC med en slumpmässig IV krävs. 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 ”ECB jämfört med CBC: mönster och IV:er”?

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. Grunderna i blockchiffer och utfyllnad
  2. ECB jämfört med CBC: mönster och IV:er
  3. CTR-läge och strömchifferbeteende
  4. GCM och autentiserad kryptering
← Tillbaka till Cryptology Academy