Jaký je rozdíl mezi kryptografickými a nekryptografickými hashami? http://en.wikipedia.org/wiki/Computational_complexity_theory#Intractability


Odpověď 1:

Při dobré kryptografické hašovací funkci by změna jednoho bitu na vstupu měla v průměru změnit 50% bitů na výstupu.

V nekryptografické funkci není tento znak přítomen a někdy nemusí být žádoucí.

Představte si, že vytváříte rejstřík obrázků, které jsou si „podobné“ (cokoli, co by mohlo být definováno jako).

S kryptografickou hašovací funkcí mění pouze hodnota alfa kanálu (neviditelná pro uživatele, pokud obrázek nemá průhledné oblasti), což dává úplně jinou hašovací hodnotu.


Odpověď 2:

Hlavním rozdílem mezi kryptografickými hashami a nekryptografickými hashami je „jedinečnost“. Přijatelný kryptografický hash má všechny vlastnosti nekryptografického hashe plus skutečnost, že vytváří jedinečný hashový výstup.

Kryptografický musí odolat Preimage útoku - Wikipedia a Collision attack - Wikipedia (zde hraje hlavní roli jedinečnost). A také to, že musí mít lavinový efekt - Wikipedia.

Zatímco nekryptografické hashe obvykle zaručují slabší rozsah „pravidel“ pro dobrý kryptografický hash výměnou za lepší výkon, tj. Vyšší výpočetní rychlost ve srovnání s kryptografickou hashovací funkcí.

Snad to pomůže.

Šťastné učení!


Odpověď 3:

Právě jsem narazil na tuto QA a informace se zdají neúplné, ne-li nepřesné a udržují nedorozumění mezi kryptografickými a nekryptografickými hashami.

Kryptografické i nekryptografické hašování se snaží poskytovat výsledky, které mají výrazné vyhýbání se kolizi a vyhýbání se lavinám. Ve skutečnosti vlastnosti v těchto ohledech mohou být velmi podobné mezi kryptografickou a nešifrovací hashovací funkcí. To není rozdíl mezi nimi.

Rozdíl mezi kryptografickými a nekryptovacími funkcemi nesouvisí přímo s těmito vlastnostmi, ale naopak souvisí s obtížemi zvrátit tyto vlastnosti. V kryptografickém prostředí má schopnost vynutit kolizi nebo vynutit lavinu devastující účinek. Z tohoto důvodu je nezbytné, aby hašovací funkce, která má být použita v kryptografickém prostředí, byla velmi obtížná, aby vynutila kolize nebo lavinu. Nejjednodušší způsob, jak ztěžovat, je učinit jej výpočetně nákladným.

Skutečný rozdíl mezi kryptografickým hashem a nekryptografickým hashem spočívá v tom, že je výpočetně nákladné najít kolize nebo laviny s kryptografickým hashem. To přímo neznamená, že nekryptografický hash má více srážek, nebo že bude s větší pravděpodobností lavina, ale spíše to znamená, že není obtížné vytvořit umělou situaci, ve které dojde ke srážce nebo lavině.

Který hashovací algoritmus je nejlepší pro jedinečnost a rychlost?

Znamená to však, že kryptografické hašování bude pomalejší, a pokud je rychlost důležitá a specifické vlastnosti kryptografického hašování nejsou důležité, měla by být použita nekryptografická hasha. Ve skutečnosti došlo k vylepšení výkonu bitcoinů změnou hash sha v případě, že to nebylo potřeba pro výkonnější nešifrovací hash.