Dopis, který jsem napsal do mailing listu SHA-3 v roce 2010: Od: Zooko O'Whielacronx Komu: hash-forum Datum: 2010-10-14 03:46 UTC Lidičky: Pokud má hash 32bitovou odolnost proti předobrazu, znamená to, že útočník může vynaložit asi 2³² zdrojů na nalezení předobrazu. Pokud má hash 64bitovou odolnost proti předobrazu, znamená to, že útočník může vynaložit asi 2⁶⁴ zdroje na nalezení předobrazu. Co když má hash 512bitovou odolnost před obrázkem? Co by to znamenalo? Že by útočník mohl utratit asi 2⁵¹² zdrojů, aby v něm našel předobraz? To je nesmyslná možnost diskutovat, protože 2⁵¹² zdroje nikdy nebudou v životě tohoto vesmíru existovat, takže to nemůže znamenat, nebo pokud to znamená, že pak nemá smysl mluvit o "512-bitové předobrazové rezistenci". Možná to znamená něco jiného? Analogicky předpokládejme, že byste uvažovali o stavbě mostu, který by vydržel tlak 10³ tun. Můžete také zvážit most, který by vydržel tlak 10⁶ tun. Pokud by měl být most nasazen v situaci, kdy by na něm mohlo spočívat více než 10³ tun, ale méně než 10⁶ tun, pak by to byl velmi důležitý rozdíl. Co by to ale znamenalo diskutovat o návrhu mostu, který by vydržel tlak 10¹⁵⁰? Takový tlak by nikdy nemohl být na můstek vyvinut. Měl by nějaký smysl rozlišovat mezi jednou konstrukcí mostu, která by vydržela tlak 10¹⁵⁰, a jinou, která by vydržela 10³⁰⁰? I když ani jeden z nich by nikdy nemohl zažít tlak vyšší než 10 tun, možná by druhý most byl stále bezpečnější proti nějaké jiné hrozbě – chybě na straně stavitelů nebo projektantů nebo stresující události, která nebyla zahrnuta v modelu, který jsme použili k hodnocení našich mostů. Nebo možná ne. Možná, že most, který je navržen tak, aby vydržel tlak 10³⁰⁰ tun, má ve skutečnosti větší pravděpodobnost selhání než ten druhý, když je zasažen touto nepředpovězenou, nemodelovanou událostí. Kdo to může říct? Jedním z rozumných postojů je, že bylo chybou, že NIST specifikoval, že některé z hashů SHA-3 musí mít 512bitovou odolnost před obrazem. (Pokud to byla chyba, pak opravdu nemám ponětí, co s tím v tuto chvíli dělat!) Tento postoj říká, že je potřeba hashovací funkce, která zabere mnohem více času procesoru než SHA-3-256, aby poskytla mnohem menší pravděpodobnost, že v ní útočník bude schopen najít pre-obraz než v SHA-3-256, ale že tato "mnohem méně pravděpodobná" není v žádném smysluplném smyslu korelována s myšlenkou mít "512-bitovou odolnost před obrazem". Dalším rozumným postojem je, že hašovací funkce, o které je známo, že má maximálně 384bitovou předobrazovou odolnost, s větší pravděpodobností selže než ta, o které je známo, že má maximálně 512bitovou předobrazovou odolnost. Zde končí mé omezené chápání kryptoanalýzy hashovacích funkcí. Je to věrohodné? Když vám dám dvě takové hashovací funkce, jste si jistý, že byste se mohl naučit, jak najít předobrazy v první z nich dříve, než najdete předobrazy v druhé? Jak moc jste si tím jisti? Je možné, že by to bylo naopak – že byste objevili metodu hledání předobrazů v tom druhém dříve, než byste objevili metodu hledání předobrazů v prvním? Pokud by někdo, kdo má skutečné zkušenosti s kryptoanalýzou hashovacích funkcí a kdo zastává druhou pozici, dokázal vysvětlit, co myslí "pravděpodobnějším selháním", pak bych byl fascinován, kdybych to slyšel. V každém případě jsem si docela jistý, že jako uživateli hashovacích funkcí mi záleží na "větší pravděpodobnosti selhání" (a efektivitě), nikoli na "bitech zabezpečení" pro jakoukoli bitovou úroveň větší než asi 128 (včetně úvah o kvantových útocích, útocích s více cíli atd.). Děkuji, že jste si našli čas na přečtení tohoto článku. S pozdravem Zooko Wilcox-O'Hearn
4,51K