En kæde af hashes er resultatet af sekventielt at anvende en kryptografisk hashfunktion til en bestemt streng. I computersikkerhed bruges en hash-kæde til at replikere mange engangsadgangskoder givet en enkelt nøgle eller adgangskode . Hash-kæder bruges til at implementere ikke-afvisning ved at anvende data for at registrere historien om dens eksistens.
En kæde af hashes er resultatet af sekventielt at anvende en kryptografisk hashfunktion på en streng .
For eksempel,
giver en hashkæde af længde 4, som ofte betegnes som
Lamport [1] foreslog at bruge hash-kæder som en adgangskodebeskyttelsesordning i et usikkert miljø. Serveren, der skal give godkendelse , kan gemme en hash-kæde i stedet for klartekst - adgangskoden, og dermed forhindre, at adgangskoden bliver stjålet enten under transmission til serveren eller direkte fra serveren. For eksempel starter serveren med at gemme en post , som er leveret af brugeren. Når en bruger ønsker at godkende, sender han en streng til serveren . Serveren evaluerer strengen og verificerer, at den matcher posten, der er gemt på serveren. Serveren gemmer derefter posten til efterfølgende godkendelse.
En angriber, der har opsnappet , vil ikke være i stand til at reproducere og sende begyndelsen af kæden til serveren, når den tilgår serveren, da serveren nu venter på . På grund af irreversibilitetsegenskaben ved kryptografiske hash-funktioner, vil en angriber ikke være i stand til at vende hash-funktionen og få begyndelsen af kæden. I dette eksempel kan brugeren godkende 1000 gange, før kæden er opbrugt. Hver gang er værdien af den transmitterede hash forskellig, så opsnapningen af en hash vil ikke tillade gengodkendelse.
Binære hashkæder bruges almindeligvis i forbindelse med hashtræer . En binær hash-kæde tager værdierne af et par hashes som input, limer dem sammen og anvender en hash-funktion på den resulterende streng og producerer således en tredje hash.
Diagrammet viser et hashtræ bestående af 8 bladknuder og en hashkæde for det tredje blad. For at rekonstruere en hashkæde skal du ud over selve hashværdierne kende sammenkædningsrækkefølgen (venstre eller højre, 1 eller 0).