Spring til indhold

Secure Hash Algorithm

Fra Wikipedia, den frie encyklopædi

Secure Hash Algorithm (SHA) er en kryptografisk hashfunktion med en variabel hashværdi. SHA blev udviklet af NSA i 1993, og blev oprindeligt kaldt Secure Hash Standard. Kort efter publikation blev algoritmen i 1995 trukket tilbage, og SHA-1 publiceret som erstatning. Den oprindelige algoritme betegnes nu SHA-0. Der blev senere fundet mindre fejl ved SHA-0 algoritmen, og det antages at det var disse fejl der fik NSA til at revidere til SHA-1. De nyere varianter (SHA-224, SHA-256, SHA-384 og SHA-512) betegnes samlet SHA-2.

Målet med SHA er, som med alle kryptografiske hashfunktioner, at gøre det praktisk umuligt at generere det oprindelige datasæt ud fra et hash.

Der blev i 1996 fundet ikke-fatale svagheder i MD5-algoritmens funktion, derefter ændrede verdens kryptografer anbefalingen til at brugen af SHA1-algoritmen i stedet.

Senere i 2005, blev SHA-1 anset for ikke længere at være sikker mod velfinansierede modstandere, da antallet af SHA-1 beregninger per sekund steg markant med den stigende processor kraft, som dermed gjorde "brute-force" angreb praktisk mulig.

Siden 2010, har mange organisationer anbefalet at man benytter de mere moderne SHA-2 eller SHA-3 algoritmer, og Microsoft, Google, Apple og Mozilla har annonceret at de vil stoppe med at acceptere SHA-1 SSL Certifikater.[1]

SHA1 hash eksempler

[redigér | rediger kildetekst]

Eksempler på SHA1 hasher:

SHA1("The quick brown fox jumps over the lazy dog") 
 = 2fd4e1c6 7a2d28fc ed849ee1 bb76e739 1b93eb12

Selv en lille ændring vil, med størst sandsynlighed, resultere i en helt anden hash, på grund af dominoeffekten. For eksempel, at ændre d til c:

SHA1("The quick brown fox jumps over the lazy cog") 
 = de9f2c7f d25e1b3a fad3e85a 0bd17d9b 100db4b3

Hashen af den tomme (længde=nul) streng er:

SHA1("")
 = da39a3ee 5e6b4b0d 3255bfef 95601890 afd80709

SHA-256 hash eksempler

[redigér | rediger kildetekst]

Her er eksempler af SHA-256 hasher.

SHA256("abc")
 = ba7816bf 8f01cfea 414140de 5dae2223 b00361a3 96177a9c b410ff61 f20015ad 

SHA256("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq")
 = 248d6a61 d20638b8 e5c02693 0c3e6039 a33ce459 64ff2167 f6ecedd4 19db06c1 
//Bemærk at disse to strenge ikke er ens, det sidste ord er ændret 
SHA256("The quick brown fox jumps over the lazy dog") 
 = d7a8fbb3 07d78094 69ca9abc b0082e4f 8d5651e4 6d3cdb76 2d02d0bf 37c9e592

SHA256("The quick brown fox jumps over the lazy cog")
 = e4c4d8f3 bf76b692 de791a17 3e053211 50f7a345 b46484fe 427f6acc 7ecc81be 

Hashen af den tomme (længde=nul) streng er:

SHA256("")
 = e3b0c442 98fc1c14 9afbf4c8 996fb924 27ae41e4 649b934c a495991b 7852b855