Toppfrågor
Tidslinje
Chatt
Perspektiv

Hashfunktion

Från Wikipedia, den fria encyklopedin

Hashfunktion
Remove ads

En hashfunktion är en deterministisk funktion som omvandlar (engelska hash = hacka sönder[1]) en godtycklig datamängd till en hashsumma av känd storlek. Inom datavetenskap används hashfunktioner bland annat för att skapa och söka i hashtabeller, en datastruktur som adresseras genom hashning av söknycklar. En hashsumma kan även användas för att jämföra dataobjekt, eftersom ett givet invärde alltid gör upphov till samma hashsumma, vilken kan användas som kontrollsumma.

Thumb
Hashfunktionsexempel
Varje godtyckligt invärde omvandlas till en hashsumma av känd storlek. Samma ingångsvärde leder alltid till samma hashsumma (hashfunktionen är deterministisk).

Hashkollisioner (när olika ingångsvärden resulterar i samma hashsumma) kan till exempel hanteras genom att ytterligare en hashfunktion nyttjas för särskiljning.[1] Olika hashfunktioner har olika egenskaper och användningsområden. Exempelvis: en hashfunktion som adresserar en hashtabell har fördel av att vara snabb medan en hashfunktion som används för att dölja lösenord i en lösenordsdatabas saknar fördel av att vara snabb, då snabbhet i det fallet tillåter en crackare att snabbare få fram lösenorden i klartext vid ett dataintrång.

Remove ads

Kryptografiska hashfunktioner

Sammanfatta
Perspektiv

En kryptografisk hashfunktion måste vara enkelriktad och kollisionsresistent (att varje ingångsvärde i praktiken resulterar i en unik hashsumma).[2] En avgörande skillnad gentemot mellan en kryptografisk funktion och en kryptografisk hashfunktion är att den senare är enkelriktad (hashning) medan den förra är dubbelriktad (kryptering och dekryptering).

Användningsområden

  • Lösenordslagring och inloggning[3] – hashsumman av en användares lösenord kan lagras i en lösenordsdatabas, varpå inloggning kan ske genom jämförelse av användaren angivet lösenords hashsumma och användarens tidigare lagrade hashsumma.
  • Digital signering[4] – avsändaren till ett meddelande kan signera sitt meddelande genom att använda sig av asymmetrisk kryptering och hashsumman av meddelandet. Genom att kryptera inte meddelandet i sig, utan hashsumman av meddelandet, kan mottagaren efter dekryptering med avsändarens publika nyckel använda samma hashfunktion som avsändaren och kontrollera att den översända hashsumman överensstämmer med den uträknade hashsumman. Om så är fallet kan mottagaren anta att meddelandet inte har ändrats efter avsändandet.

Exempel

SHA-256 (Secure Hash Algorithm-256) genererar 256-bitars hashsummor vilka används av kryptovalutan Bitcoin för att verifiera transaktioner.[5]

MD5 och SHA-1 ansågs tidigare[när?] vara säkra men har visat sig[förtydliga] ha dålig kollisionsresistens. Hashen måste vara lång för att hindra Brute force-attacker, så vanligtvis används 128 bitar eller mer. Kryptografiska hashfunktioner optimeras för att vara snabba.[källa behövs] Exempel på kryptografiska hash-funktioner som år 2017 anses som relativt säkra[källa behövs] är SHA-2, SHA-3 och BLAKE2, PBKDF2, Bcrypt, Scrypt och argon2.

Remove ads

Etymologi

Namnet hashfunktion kommer av engelskans hash, det som på svenska skulle heta pyttipanna. Det är en måltid där man hackar kött och potatis för att sedan tillaga detta i en röra, på samma sätt som en hashfunktion tar in ett binärt tal och hackar det i delar för att sedan kasta om delarna.[6]

Terminologi

De värden som en hashfunktion ger upphov till kan kallas hashsumma, hashvärde eller kondensat.[7]

Referenser

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads