Cryptology Academy · Lektion

SHA-1- och SHA-2-familjen förklarad

Förstå SHA-1:s svaghet och skillnaderna mellan SHA-256 och SHA-512

Lektion 3 av 413 steg

SHA-1- och SHA-2-familjen förklarad är en gratis lektion i Cryptology Academy på CoddyKit. Detta är lektion 3 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

SHA-1 och SHA-2 är de av NSA utformade efterföljarna till MD5. SHA-1 är nu föråldrat och bör inte längre användas. SHA-256 och SHA-512 är fortfarande branschstandard för de flesta tillämpningar.

Översikt över SHA-1

SHA-1 producerar en hash på 160 bitar (20 byte). Algoritmen utvecklades av NSA och publicerades 1995. Exempel: SHA1('hello') = aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d

SHA-1:s struktur

SHA-1 använder 80 rundor grupperade i fyra steg med 20 rundor vardera. Varje steg använder olika logiska funktioner (Ch, Parity, Maj). Algoritmen utökar 16 indatavärden till 80 med XOR och rotationer.

SHA-1-kollision: SHAttered 2017

År 2017 skapade Google och CWI Amsterdam den första praktiska SHA-1-kollisionen (SHAttered-attacken). Två PDF-filer hade identiska SHA-1-hashar men olika innehåll. Kostnad: cirka 6 500 GPU-år.

SHA-2-familjen

SHA-2 omfattar SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 och SHA-512/256. Alla använder Merkle–Damgård-konstruktionen. SHA-256 är den vanligaste varianten.

SHA-256:s struktur

SHA-256 använder 64 rundor på block om 512 bitar. Algoritmen håller åtta tillståndsvärden på 32 bitar vardera (a,b,c,d,e,f,g,h). Varje runda blandar indatavärden med funktionerna Ch, Maj, Σ0 och Σ1.

SHA-256 i Python

import hashlib msg = b'hello' digest = hashlib.sha256(msg).hexdigest() print(digest) # 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

SHA-512 jämfört med SHA-256

SHA-512 använder 80 rundor med 64-bitarsvärden och producerar 512 bitar. Algoritmen är snabbare på 64-bitars maskinvara, men producerar större digestvärden. Använd SHA-512 när en säkerhetsnivå på 256 bitar behövs.

SHA-3 (Keccak)

SHA-3 standardiserades 2015 som en alternativ konstruktion. Den använder svampkonstruktionen i stället för Merkle–Damgård, vilket gör den immun mot längdutökningsattacker.

Längdutökningsattacker mot SHA-2

SHA-256(secret || message) är sårbart: en angripare som känner till Hash(message) kan beräkna Hash(message || padding || extra). Därför använder HMAC en konstruktion med dubbla hashningar.

När ska de olika varianterna användas?

SHA-256: allmän användning, TLS, certifikat och HMAC. SHA-512: tillämpningar med högre säkerhetsmarginal. SHA-3: nya protokoll där längdutökningsattacker inte är ett problem. Använd aldrig SHA-1 eller MD5 i nya konstruktioner.

Snabb kontroll

Vilken konstruktion använder SHA-3 som gör den immun mot längdutökningsattacker?

Sammanfattning

Nu förstår Ni hur SHA-familjen har utvecklats. Härnäst studerar vi praktiska tillämpningar av hashfunktioner: kontrollsummor, HMAC och hur Git använder SHA.
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 ”SHA-1- och SHA-2-familjen förklarad” gratis?

Ja – hela texten till ”SHA-1- och SHA-2-familjen förklarad” 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 ”SHA-1- och SHA-2-familjen förklarad”?

Förstå SHA-1:s svaghet och skillnaderna mellan SHA-256 och SHA-512 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 3 av 4.

Hur lång tid tar lektionen ”SHA-1- och SHA-2-familjen förklarad”?

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. Vad kännetecknar en bra hashfunktion
  2. MD5: historia, användning och varför algoritmen är knäckt
  3. SHA-1- och SHA-2-familjen förklarad
  4. Hashning: checksummor, HMAC och Git
← Tillbaka till Cryptology Academy