Basis van informatiebeveiliging
Welke combinatie geeft voor een ideale hashfunctie met een uitvoer van 256 bits het geschatte aantal berekeningen voor een brute-force-aanval in twee gevallen: een invoer vinden die een gegeven hashwaarde oplevert (een preimage-aanval), en willekeurig welke twee verschillende invoeren vinden die dezelfde hashwaarde opleveren (een botsingsaanval)?
- APreimage-aanval ongeveer 2^256, botsingsaanval ongeveer 2^128
- BPreimage-aanval ongeveer 2^128, botsingsaanval ongeveer 2^256
- CZowel de preimage-aanval als de botsingsaanval ongeveer 2^256
Antwoord en toelichting tonen
Antwoord: A. Preimage-aanval ongeveer 2^256, botsingsaanval ongeveer 2^128
Een ideale hashfunctie met een uitvoer van n bits heeft 2^n mogelijke hashwaarden, en elke geprobeerde invoer komt met kans 1/2^n overeen met een gegeven hashwaarde. Een preimage-aanval vergt daarom ongeveer 2^n berekeningen, voor n = 256 dus ongeveer 2^256. Bij een botsingsaanval mogen echter willekeurig welke twee invoeren overeenkomen, dus k geprobeerde invoeren leveren ongeveer k^2/2 te vergelijken paren op. Zodra k^2/2 in de buurt van 2^n komt, dus als k rond 2^(n/2) ligt, wordt een botsing waarschijnlijk; voor n = 256 is dat ongeveer 2^128. Dit is hetzelfde idee als de verjaardagsparadox, waarbij in een groep van 23 personen de kans dat twee dezelfde verjaardag hebben groter is dan 50%, en daarom heet dit een verjaardagsaanval. De sterkte van een hashfunctie tegen botsingen wordt dus geschat op de helft van de uitvoerlengte, en voor een sterkte van 128 bits is een uitvoer van 256 bits nodig.