Cryptology Academy · Lektion

Meet-in-the-middle och avvägningar mellan tid och minne

Angrip dubbel-DES med MITM och studera Hellman-tabeller.

Lektion 4 av 413 steg

Meet-in-the-middle och avvägningar mellan tid och minne är en gratis lektion i Cryptology Academy på CoddyKit. Detta är lektion 4 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.

Meet-in-the-Middle-attack (MITM)

MITM-attacker delar upp en krypteringsalgoritm i två halvor och angriper dem oberoende av varandra. Angriparen bygger en tabell från ena änden och söker sedan från den andra änden efter en matchning. Detta minskar attackens komplexitet från O(2^{2n}) till O(2^n), på bekostnad av O(2^n) minne.

Att knäcka Double-DES

Double-DES tillämpar DES två gånger: C = DES_{K2}(DES_{K1}(P)). Nyckelutrymme: 2^{112}. MITM-attack: för alla 2^{56} K1-värden beräknas DES_{K1}(P) och lagras. För alla 2^{56} K2-värden beräknas DES_{K2}^{-1}(C), som sedan slås upp i tabellen. Matchning → kandidat (K1, K2). Totalt krävs endast 2^{57} arbete.

MITM-algoritmen

Steg 1: kryptera klartexten P med alla möjliga K1 → tabell T[DES_{K1}(P)] = K1. Steg 2: dekryptera chiffertexten C för varje K2: v = DES^{-1}_{K2}(C). Kontrollera om v ∈ T. Om T[v] = K1 finns, verifiera (K1, K2) mot ett andra klartext–chiffertext-par. Räkna med 1–2 falska matchningar och förkasta dem.

Triple-DES-resistens

Triple-DES (3DES) använder tre nycklar K1,K2,K3: C = DES_{K3}(DES^{-1}_{K2}(DES_{K1}(P))). MITM gäller fortfarande, men i mindre utsträckning: tvånyckel-3DES (K3=K1) minskar till 2^{112} arbete. För tre nycklar finns en MITM-attack på 2^{112}, vilket förklarar varför 3DES bara ger ungefär 112 bitars effektiv säkerhet trots en nyckel på 168 bitar.

Hellmans tids–minnesavvägning

Hellman (1980): förberäkna en tabell med kedjor av (start_point, end_point) för att snabba upp offline-sökning efter nycklar. Givet en målhash eller chiffertext söker man i Hellman-tabellen efter en kedja som innehåller den. Avvägning: P = N (tid × minne = konstant utrymme). Detta utgör grunden för regnbågstabeller.

Regnbågstabeller

Regnbågstabeller (Oechslin, 2003) förbättrar Hellman-tabeller genom att använda olika reduktionsfunktioner vid varje position i kedjan, vilket eliminerar falsklarm (sammanslagna kedjor). De är effektiva för att knäcka osaltade lösenordshashar. En uppslagning tar O(table_size/chain_length) tid.

Besegra regnbågstabeller med salt

Ett salt är ett slumpmässigt värde som läggs framför lösenordet före hashning: H(salt||password). Olika salter ger olika hashvärden för samma lösenord – en regnbågstabell för "password" är värdelös om ett annat salt användes. Salter måste lagras tillsammans med hashen.

MITM i AES-nyckelschemat

MITM-attacker mot AES-128 (10 ronder): kända attacker delar vid rond 5 – krypterar framåt genom 5 ronder, dekrypterar bakåt genom 5 ronder och möts i mitten. Den bästa kända attacken minskar 2^{128} till 2^{126.1} med en biclique-attack – inte praktiskt genomförbar, men den visar att AES saknar säkerhetsmarginal mot MITM-liknande metoder.

MITM mot hashförbilder

För Merkle-Damgard-hashfunktioner kan MITM hitta förbilder snabbare än brute force i vissa konstruktioner. Attacken bygger en tabell från meddelandeblock som börjar vid IV och söker bakåt från målhashen. Mot SHA-256 med fullständigt antal ronder krävs fortfarande ungefär 2^{255} arbete – ingen förbättring jämfört med brute force.

Dissektionsattack

Dissektionsattacken generaliserar MITM till uppdelningar i r delar. Vid en uppdelning i tre delar av en krypteringsalgoritm krypteras den första tredjedelen framåt, man möts i mitten av kedjan och dekrypterar sedan den sista tredjedelen bakåt. Den kräver O(2^{n*2/3}) tid och O(2^{n/3}) minne – en mer balanserad avvägning.

Nyckelhärledning förhindrar MITM

I protokoll kan MITM-attacker förhindras genom att använda långa KDF-härledda nycklar från lösenord med hög entropi (vilket minskar det nyckelutrymme som kan genomsökas), använda hårdvarutoken (FIDO2) där nyckeln aldrig lämnar enheten eller använda autentisering med publika nycklar (ingen delad hemlighet att genomsöka).

Snabb kontroll

Vilken är den effektiva säkerheten hos Double-DES (2x DES, kombinerad nyckel på 112 bitar) mot en MITM-attack?

Sammanfattning

MITM-attacker delar upp krypteringsalgoritmer i halvor och minskar tidsåtgången från 2^{2n} till 2^n med 2^n minne. De knäcker Double-DES; 3DES är motståndskraftigt i viss mån men har 112 bitars effektiv säkerhet. Regnbågstabeller använder MITM-logik för att knäcka lösenord och besegras genom saltning. Nästa avsnitt: tidsattacker och sidokanalsattacker.

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 ”Meet-in-the-middle och avvägningar mellan tid och minne” gratis?

Ja – hela texten till ”Meet-in-the-middle och avvägningar mellan tid och minne” 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 ”Meet-in-the-middle och avvägningar mellan tid och minne”?

Angrip dubbel-DES med MITM och studera Hellman-tabeller. 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 4 av 4.

Hur lång tid tar lektionen ”Meet-in-the-middle och avvägningar mellan tid och minne”?

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 differentiell kryptoanalys
  2. Linjär kryptoanalys och approximationstabeller
  3. Födelsedags- och kollisionsattacker
  4. Meet-in-the-middle och avvägningar mellan tid och minne
← Tillbaka till Cryptology Academy