Vad är en säker hash-algoritm?

En säker hashalgoritm, ofta känd som en ”SHA”, är en hashalgoritm som anses vara kryptografiskt säker. I allmänhet används hashfunktioner för att sortera och organisera digital data i mindre, mer kategoriserade paket. Algoritmer är programmen som driver funktionerna och säkerheten för dessa algoritmer har betydelse såtillvida att den styr hur enkelt data kan låsas upp och omorganiseras. Hur säkra saker behöver vara beror oftast på omständigheterna. Många mjukvaru- och kodutvecklare vill ha ogenomträngliga algoritmer eftersom deras metoder för att sortera ämnen och rita kopplingar är proprietära, och de använder det för att tjäna pengar. I andra fall är själva uppgifterna mycket känsliga, vilket ofta är fallet med saker som journaler eller vissa myndighetshandlingar. Den faktiska mekaniken i SHA:er tenderar att vara mycket komplicerad, och åtminstone en viss grad av teknisk kunnighet krävs vanligtvis för att fullt ut förstå hur de fungerar och hur de utvecklas. Liksom det mesta tekniskt har det också skett en uppåtgående utveckling i utvecklingen; tidigare modeller har till stor del bytts ut och nyare, säkrare konstruktioner introduceras nästan ständigt.

Förstå hashalgoritmer i allmänhet

Det moderna digitala landskapet innehåller hundratals miljoner datapunkter, som alla upptar ett nät av sammanlänkning och gemensamma punkter, både över webbplatser och i den sociala sfären när det kommer till meddelanden och inlägg som genereras av användare. Hashing är ett sätt att sammanfoga data som är liknande eller relaterad så att den bildar något av ett kompendium eller en mindre, mer sammankopplad ”webb inom en webb.” Säkra hashalgoritmer försöker göra denna organisering på ett effektivt och säkert sätt.

Den ursprungliga data, när den en gång hashas av en SHA, kan vanligtvis inte rekonstrueras utan en enorm mängd datorkraft. Säkra algoritmer används ofta i kombination med andra algoritmer för att autentisera meddelanden, inklusive digitala signaturer.

Hur de implementeras

Vissa nätverksroutrar och brandväggar implementerar SHA direkt i sin hårdvara. Detta gör att datapaket kan autentiseras med begränsad inverkan på genomströmningen. Specialdesignad programvara är ett annat alternativ, inklusive många implementeringar med öppen källkod. Till exempel driver US National Institute of Standards and Technology (NIST) och Canadian Communications Security Establishment (CSE) tillsammans Cryptographic Module Verification Program (CMVP). Detta officiella program certifierar korrekt funktion av säkra algoritmimplementeringar för känsliga applikationer.
Standardisering
Den amerikanska regeringen har standardiserat minst sex säkra hashalgoritmer. SHA-0 och SHA-1 var de tidigaste modellerna som utvecklades på 1990-talet. SHA-2-serien som utvecklades på 2000-talet inkluderade SHA-224, -256, -384 och -512. Dessa är utformade så att två dokument med olika innehåll i allmänhet producerar två unika uppsättningar av hashvärden, vilket verkligen är användbart när det gäller att undvika hashkollisioner.
Tidigaste iterationer
SHA-0-algoritmen, som först publicerades 1993 av NIST, avbröts snabbt efter att en betydande svaghet upptäckts. Det ersattes av SHA-1 1995, vilket inkluderar ett extra beräkningssteg som tar itu med de hemliga problemen med SHA-0. Båda algoritmerna hash ett meddelande på upp till 264-1 bitar till en 160-bitars ”sammandrag”. Båda använder en blockstorlek på 512 bitar och en ordstorlek på 32 bitar i sin verksamhet.
SHA-1 används i vissa vanliga Internetprotokoll och säkerhetsverktyg. Dessa inkluderar IPsec, PGP, SSL, S/MIME, SSH och TLS. SHA-1 används också vanligtvis som en del av skyddssystemet för oklassificerade myndighetsdokument. Vissa delar av den privata sektorn använder denna algoritm för viss känslig information också. Det togs emellertid formellt tillbaka från allmänt bruk 2010.
Evolution och fortsatt utveckling
SHA-224, -256, -384 och -512 publicerades av NIST mellan 2001 och 2004. Dessa fyra algoritmer, även kända som SHA-2-familjen, är generellt sett mer robusta än SHA-1. SHA-224 och SHA-256 använder samma block-, ord- och maximala inmatade meddelandestorlekar som SHA-1. Däremot producerar SHA-224 en 224-bitars sammanfattning, medan SHA-256 skapar en 256-bitars sammanfattning. SHA-384 och SHA-512 ökar blockstorleken till 1024 bitar, ordstorleken till 64 bitar och den maximala inmatade meddelandelängden till 2128-1 bitar. Sammandraget som produceras av SHA-384 är 384 bitar långt, medan SHA-512-sammandraget innehåller 512 bitar.
Liksom SHA-0 och SHA-1, designades SHA-2-familjen av US National Security Agency (NSA). Även om allvarliga brister inte har avslöjats offentligt i SHA-2, har NIST öppnat en tävling för att utveckla nästa säkra hashalgoritm. Denna nya algoritm, som kommer att kallas SHA-3, kommer sannolikt att väljas från en samling offentliga bidrag. Det förväntas bli en ny design, inte baserad på de befintliga algoritmerna.