Ett brev jag skrev till sändlistan SHA-3 2010: Från: Zooko O'Whielacronx Till: hash-forum Datum: 2010-10-14 03:46 UTC Föräldrar: Om en hash har 32-bitars föravbildningsresistens innebär det att en angripare kan spendera cirka 2³² resurser för att hitta en förbild. Om en hash har 64-bitars föravbildningsresistens innebär det att en angripare kan spendera cirka 2⁶⁴ resurser för att hitta en förbild. Vad händer om en hash har 512-bitars förbildsresistens? Vad skulle det betyda? Att en angripare kan spendera cirka 2⁵¹² resurser för att hitta en förbild i den? Det är en meningslös möjlighet att diskutera eftersom 2⁵¹² resurser aldrig kommer att existera i detta universums liv, så det kan inte betyda det, eller om det betyder att det inte är någon idé att tala om "512-bitars för-bildresistens". Kanske betyder det något annat? Anta att du i analogi övervägde byggandet av en bro som motstod 10³ ton tryck. Du kan också överväga en bro som tål 10⁶ ton tryck. Om bron skulle användas i en situation där mer än 10³ ton men mindre än 10⁶ ton kan vila på den, skulle detta vara en mycket viktig distinktion att göra. Men vad skulle det innebära att diskutera en design för en bro som skulle klara 10¹⁵⁰ tons tryck? Ett sådant tryck skulle aldrig kunna appliceras på bron. Skulle det finnas något värde i en skillnad mellan en brokonstruktion som skulle tåla 10¹⁵⁰ ton tryck och en annan som skulle tåla 10³⁰⁰? Även om ingen av dem någonsin skulle kunna utsättas för så mycket som 10¹⁵⁰ tryck, kanske den senare bron fortfarande skulle vara säkrare mot något annat hot – ett misstag från konstruktörernas eller konstruktörernas sida eller en stressande händelse som inte fanns med i den modell som vi använde för att utvärdera våra broar från början. Eller kanske inte. Kanske är det så att bron, som är konstruerad för att motstå 10³⁰⁰ tons tryck, faktiskt är mer benägen att gå sönder än den andra när den träffas av denna oförutsedda, omodellerade händelse. Vem kan säga det? En rimlig ståndpunkt att inta är att det var ett misstag av NIST att ange att vissa av SHA-3-hasharna måste ha 512-bitars förbildsresistens. (Om det var ett misstag så har jag verkligen ingen aning om vad jag ska göra åt det just nu!) Den ståndpunkten säger att det finns ett behov av en hash-funktion som tar mycket mer CPU-tid än SHA-3-256 gör för att ge mycket mindre sannolikhet för att en angripare kommer att kunna hitta en förbild i den än i SHA-3-256, men att denna "mycket mindre sannolikhet" inte i någon meningsfull mening är korrelerad med idén om att ha "512-bitars förbildsresistens". En annan rimlig ståndpunkt är att en hashfunktion som är känd för att ha högst 384-bitars förbildsresistens är mer benägen att misslyckas än en som är känd för att ha högst 512-bitars förbildsresistens. Det är här min begränsade förståelse för hash-funktionens kryptoanalys tar slut. Är det rimligt? Om jag ger dig två hash-funktioner på det sättet, är du säker på att du kan lära dig att hitta förbilder i den förra innan du hittar förbilder i den senare? Hur säker är du? Är det möjligt att det skulle vara tvärtom – att du skulle upptäcka en metod för att hitta förbilder i den senare innan du upptäcker en metod för att hitta förbilder i den förra? Om någon som har verklig expertis inom hash-funktion kryptoanalys och som intar den senare ståndpunkten kunde förklara vad de menar med "mer sannolikt att misslyckas", så skulle jag bli fascinerad av att höra det. I vilket fall som helst är jag ganska säker på att det jag bryr mig om som användare av hashfunktioner är "mer sannolikt att misslyckas" (och effektivitet), inte om "säkerhetsbitar" för någon bitnivå som är större än cirka 128 (inklusive hänsyn till kvantattacker, attacker med flera mål, etc.). Tack för att du tog dig tid att läsa detta. Hälsningar Zooko Wilcox-O'Hearn
5,03K