Sådan fungerer SHA-256

SHA-256 er en kryptografisk hashfunktion, der omdanner data til en fast lang række tegn. Navnet henviser til en funktion i SHA-2-familien, og resultatet er 256 bit, som ofte skrives som 64 hexadecimale tegn. Input kan være en kort tekst, en fil eller en anden samling af data. Uanset størrelsen får outputtet samme længde.

Hvad en SHA-256-hash fortæller

En hash fungerer som et digitalt fingeraftryk af de data, der blev behandlet. Selv en lille ændring i input giver normalt et helt anderledes resultat. Det gør SHA-256 nyttig til at opdage ændringer, men hashværdien kan ikke i almindelighed bruges til at genskabe det oprindelige indhold. Beregningen går kun én vej.

Hashfunktioner er ikke det samme som kryptering. Kryptering er beregnet til at kunne dekrypteres med en nøgle, mens en hash ikke har en tilsvarende tilbagevej. SHA-256 er desuden ikke en adgangskodebeskyttelse i sig selv. Hvis adgangskoder lagres, kræves der særlige metoder, som er udviklet til dette formål, typisk med salt og en langsom beregning.

Sådan beregnes SHA-256 trin for trin

  1. Først behandles input som en række bit. Tekst skal derfor have en bestemt tegnkodning, så samme tekst bliver repræsenteret ens på tværs af systemer.

  2. Input forlænges med en markering og ekstra bit, så længden passer til SHA-256’s blokopdeling. Den oprindelige længde føjes også til afslutningen. Dette gør datablokkene entydigt afgrænsede.

  3. De færdige data deles i blokke på 512 bit. En intern tilstand med otte 32-bit værdier startes med faste standardværdier.

  4. Hver blok behandles gennem 64 beregningsrunder. Her kombineres bitoperationer, addition modulo 2³² og faste konstanter. Resultatet fra en blok påvirker tilstanden, som bruges videre til næste blok.

  5. Når alle blokke er behandlet, sættes de otte værdier sammen. Det giver 256 bit, som ofte vises i hexadecimal form med små eller store bogstaver.

Hvis beregningen udføres manuelt, kræver det nøje styr på bit, blokke og de præcise operationer. En enkelt fejl undervejs ændrer hashværdien. Ved kontrol af et resultat er det derfor vigtigt, at input, tegnkodning og visningsformat er ens.

Hvor SHA-256 bruges

SHA-256 bruges blandt andet til at kontrollere, om data er ændret under overførsel eller lagring. En afsender kan offentliggøre en hash ved siden af en fil, og modtageren kan beregne en hash af sin egen kopi og sammenligne værdierne. Et match er stærk indikation på, at indholdet er identisk, men beviser ikke i sig selv, hvem der har lavet filen.

Funktionen indgår også i digitale signaturer, certifikater og forskellige sikkerhedsprotokoller. I disse sammenhænge hashes data ofte som del af en større proces, hvor nøgler og andre kontrolmekanismer bidrager til sikkerheden. En hash alene skjuler ikke indholdet og bekræfter ikke afsenderens identitet.

En vigtig begrænsning er, at to forskellige input i teorien kan give samme hash; det kaldes en kollision. SHA-256 er udformet, så det er meget vanskeligt at finde en sådan kollision med kendte metoder. Funktionen bør dog indgå i en samlet sikkerhedsløsning, ikke stå alene som garanti for databeskyttelse.