Hoppa till innehållet
Hem

SHA — NIST:s säkra kryptografiska hashfunktioner: definition och översikt

Upptäck SHA: NIST:s säkra kryptografiska hashfunktioner, definition, variantjämförelse och tillämpningar. Lär dig hur SHA skyddar data och skillnader mellan SHA-1, SHA-2 och SHA-3.

Inom kryptografin är Secure Hashing Algorithms (SHA) en familj av kryptografiska hashfunktioner som publicerats och rekommenderas av National Institute of Standards and Technology (NIST). Algoritmerna tar en godtycklig inmatning och producerar ett hashvärde (ofta hexadecimalt) med fast längd. Hashvärdets längd bestäms av algoritmens digestlängd och påverkar både säkerhet och representation.

Grundläggande egenskaper

  • Beständighet mot förbildsattacker (pre-image resistance): det ska vara svårt att utifrån ett givet hashvärde hitta en inmatning som ger det värdet.
  • Andra förbildsattacker (second pre-image resistance): det ska vara svårt att hitta en annan inmatning som ger samma hash som en given inmatning.
  • Kollisionresistens: det ska vara svårt att hitta två olika inmatningar som ger samma hashvärde.
  • Deterministisk och snabbräknad: samma inmatning ger alltid samma hash, och beräkningen ska vara effektiv.

Versioner och digestlängder

Familjen innehåller flera generationer:

  • SHA-0: den ursprungliga versionen (mycket begränsad användning idag).
  • SHA-1: 160-bitars digest (40 hexadecimala tecken). Tidigare mycket använd, men har kollisioner och anses osäker för nya tillämpningar.
  • SHA-2: en serie varianter med längre digest: SHA-224 (224 bitar, 56 hex tecken), SHA-256 (256 bitar, 64 hex), SHA-384 (384 bitar, 96 hex) och SHA-512 (512 bitar, 128 hex). Det finns även derivat som SHA-512/224 och SHA-512/256.
  • SHA-3: baserad på Keccak-algoritmen och standardiserad senare än SHA-2. SHA-3 finns i motsvarande längder (t.ex. SHA3-256, SHA3-512) och ger en alternativ konstruktion med annan intern struktur.

Säkerhet och historik

SHA-1 visade sig vara svagare än förväntat: teoretiska attacker identifierades tidigt och praktiska kollisionsattacker demonstrerades (t.ex. "SHAttered" 2017). Därför rekommenderas inte SHA-1 för nya system. SHA-2 har inga kända praktiska kollisionsattacker mot fulla varianter och används fortfarande brett. SHA-3 introducerades som ett alternativ med annan designprincip, för att ge diversitet om en svaghet skulle upptäckas i SHA-2.

Användningsområden

  • Kontroll av data- och filintegritet (t.ex. checksummor).
  • Digitala signaturer och certifikat (hashning före signering).
  • HMAC (Hash-based Message Authentication Code) för meddelandeautentisering.
  • Derivationsfunktioner och kombinationer i protokoll (t.ex. TLS, SSH).
  • Observera: för lagring av lösenord rekommenderas långsammare, minneskrävande algoritmer som bcrypt, scrypt eller Argon2 istället för rena SHA-varianter.

Val och rekommendationer

  • Använd inte SHA-1 för säkerhetskritiska ändamål. Migrera system som fortfarande förlitar sig på SHA-1.
  • SHA-2 (särskilt SHA-256 eller längre) är i praktiken säkert för de flesta tillämpningar i dagsläget.
  • Överväg SHA-3 när du vill ha en annan designprincip eller skydd mot eventuella framtida svagheter i SHA-2.
  • För lösenord och nyckelderivning använd alltid algoritmer anpassade för ändamålet (KDFs) och kombinera med salt och lämplig kostnadsparameter.
  • Håll implementationer och bibliotek uppdaterade och följ NISTs och andra standardiserande organens rekommendationer.

Praktiska detaljer

För att räkna ut hur många hexadecimala tecken ett hashvärde ger kan du dela antalet bitar med fyra (1 hex = 4 bitar). Exempelvis ger SHA-256 256/4 = 64 hextecken och SHA-512 ger 512/4 = 128 hextecken.

Sammanfattningsvis är SHA-familjen central inom modern kryptografi. Vilken variant som är lämplig beror på säkerhetskrav, prestanda och kompatibilitet — men undvik SHA-1 i nya system och använd i stället säkra varianter ur SHA-2 eller SHA-3.

 

Familj

  • SHA-0: Det var namnet på den ursprungliga algoritmen för säker hashing som släpptes 1993. Den användes inte längre eftersom den inte var säker att använda och ersattes snabbt av SHA-1.
  • SHA-1: Det är det första namnet som används för den officiella algoritmen för säker hashing. Den släpptes efter en svaghet i SHA-0. Den har tagits fram av National Security Agency (NSA). Den befanns också vara svag och osäker.
  • SHA-2: Det är en av de mest populära SHA-typerna. Det finns alternativ för att ställa in hashens längd (genom att ändra storleken på sammanställningen) till 256 eller 512 bitar. SHA256 och SHA512 hänvisar till dessa algoritmer. Den gjordes också av National Security Agency.
  • SHA-3 (Keccak): Den senaste typen av SHA. Den skapades av Guido Bertoni, Joan Daemen, Michaël Peeters och Gilles Van Assche. Den valdes ut efter en tävling som anordnades av NIST.

De säkra Hashing-algoritmerna är algoritmer som uppfyller Federal Information Processing Standard (FIPS) och omfattas av Cryptographic Algorithm Validation Program (Kryptografisk algoritmvalideringsprogram).

 

Relaterade artiklar

Författare

AlegsaOnline.com SHA — NIST:s säkra kryptografiska hashfunktioner: definition och översikt

URL: https://sv.alegsaonline.com/art/89321

Dela

Källor