SHA er et akronym for Secure Hash Algorithm, en krypteringsstandard oppfunnet av National Security Agency og utgitt av National Institutes of Standards and Technology. Den originale SHA-algoritmen ble funnet å ha svakheter i krypteringsmetodene, og ble erstattet med SHA-1 for sterkere sikkerhet.
Sikker Hash-algoritme
SHA er en kryptografisk hash-funksjon. En hash-funksjon tar en første ukryptert tekst, kalt ren tekst, og produserer et teoretisk unikt nummer som utgjør den krypterte meldingen. SHA oppretter et 160-bits tall, som er et tall mellom 0 og 1,46 x 10^48. Det er ikke mulig for dette nummeret å garanteres unikt for alle mulige klartekstmeldinger, da antallet slike meldinger er teoretisk uendelig, men oddsen er omtrent 2^80, eller 1,21 x 10^24, mot to meldinger som produserer samme krypterte resultat. Hvis dette skjer, kalles dette en kollisjon. En kollisjon gir et matematisk angrep på en krypteringsalgoritme, noe som gjør det mulig for en kryptograf å dekryptere klarteksten.
Dagens video
SHA-0 og SHA-1
Etter publiseringen ble det oppdaget feil i den originale SHA-algoritmen som muliggjorde et kryptografisk angrep for å produsere hasjkollisjoner, noe som svekket dens effektivitet kraftig. En revidert SHA-versjon, SHA-1, ble utviklet som skapte de samme 160-bits resultatene uten de originale feilene i algoritmen. Den opprinnelige SHA ble med tilbakevirkende kraft omdøpt til SHA-0 for å skille mellom bruken og SHA-1-bruken.
Endringer i SHA-1
De opprinnelige feilene i SHA-0 har aldri blitt publisert, da disse feilene gir et verktøysett for enhver angriper som forsøker å dekryptere en melding ved hjelp av SHA-0-kryptering. Den eneste offentlige informasjonen om svakhetene i den opprinnelige algoritmen indikerer at hasjkollisjoner er mer sannsynlige enn tilfeldig ved bruk av SHA-0, og at kollisjoner ved bruk av den upubliserte metoden elimineres ved bruk SHA-1. Siden SHA-1 og SHA-0 gir matematiske resultater av samme lengde, kan SHA-1 brukes som drop-in erstatning i dataprogramvare for den originale SHA-0-algoritmen uten å kreve store omskrivinger i resten av programvare.
SHA-2 og SHA-3
SHA-1 har vist seg å være mer robust enn SHA-0, men gir rom for forbedring. En matematisk analyse av SHA-1-resultater demonstrerte en metode der SHA-1-kryptering kunne brytes 2000 ganger raskere enn det som ville vært teoretisk mulig ved å sjekke alle 10^48 mulige kombinasjoner av produksjon. Ettersom en ideell kryptografisk algoritme forhindrer dekrypteringshastighetsforbedringer av denne typen, unngår SHA-2-algoritmen dette angrepet og øker den mulige hash-størrelsen til 512-bit, eller 1,34 x 10^154. SHA-3, en enda kraftigere krypteringsalgoritme, er for tiden under utvikling.