En kedja av hash är resultatet av att sekventiellt tillämpa en kryptografisk hashfunktion på en viss sträng. Inom datorsäkerhet används en hashkedja för att replikera många engångslösenord som ges en enda nyckel eller lösenord . Hash-kedjor används för att implementera icke-avvisande genom att applicera på data för att registrera historien om dess existens.
En kedja av hash är resultatet av att sekventiellt tillämpa en kryptografisk hashfunktion på en sträng .
Till exempel,
ger en hashkedja med längden 4, som ofta betecknas som
Lamport [1] föreslog att man skulle använda hash-kedjor som lösenordsskydd i en osäker miljö. Servern som behöver ge autentisering kan lagra en hashkedja istället för klartextlösenordet , vilket förhindrar att lösenordet stjäls antingen under överföring till servern eller direkt från servern. Servern börjar till exempel med att lagra en post som tillhandahålls av användaren. När en användare vill autentisera, skickar han en sträng till servern . Servern utvärderar strängen och verifierar att den matchar posten som lagras på servern. Servern lagrar sedan posten för senare autentisering.
En angripare som har avlyssnat kommer inte att kunna reproducera och överföra början av kedjan till servern när den kommer åt servern, eftersom servern nu väntar på . På grund av irreversibilitetsegenskapen hos kryptografiska hashfunktioner kommer en angripare inte att kunna vända hashfunktionen och få början av kedjan. I det här exemplet kan användaren autentisera 1000 gånger innan kedjan är slut. Varje gång är värdet på den överförda hashen olika, så avlyssningen av en hash tillåter inte återautentisering.
Binära hashkedjor används ofta i samband med hashträd . En binär hashkedja tar värdena för ett par hash som indata, limmar ihop dem och applicerar en hashfunktion på den resulterande strängen, vilket skapar en tredje hash.
Diagrammet visar ett hashträd bestående av 8 lövnoder och en hashkedja för det tredje bladet. För att rekonstruera en hashkedja, utöver själva hashvärdena, måste du känna till sammankopplingsordningen (vänster eller höger, 1 eller 0).