Is there any research of the similar capabilities for sha256?
Ordina. SHA-256 non è progettato per gestire errori di burst , quindi non è possibile confrontare le proprietà di rilevamento degli errori di burst di un CRC con un hash come SHA-256. Un tale confronto semplicemente non è possibile. Tuttavia, può confrontare le capacità di rilevamento degli errori di CRC32 con un hash come SHA-256.
Con un algoritmo come CRC32, alcuni tipi di modifiche all'input sono garantite per ottenere un valore di checksum differente. L'utilizzo di un buon polinomio (un valore intrinseco alla capacità di un CRC di rilevare le modifiche) consente tipi più comuni di modifiche da rilevare. Con un hash crittografico come SHA-256 (che tenta di modellare un oracolo casuale ) d'altra parte, c'è nessuna garanzia. Il rilevamento delle modifiche all'input è interamente probabilistico. Un hash crittografico ha la stessa probabilità di rilevare una modifica a un singolo bit, in quanto consente di rilevare l'intero input sostituito con qualcosa di completamente diverso.
La cosa da ricordare è che, a differenza di un CRC in cui determinati tipi di input hanno più o meno probabilità di provocare una collisione (con alcuni tipi di input che hanno una probabilità dello 0% di provocare una collisione), l'effettivo probabilità di collisioni per l'inserimento in un hash crittografico è una funzione di solo la lunghezza dell'hash.
Quindi, a cosa servono questi diversi tipi di algoritmi? Un CRC è utile per l'individuazione efficiente e rapida di modifiche accidentali (corruzione, ecc.), Con le modifiche a bit singolo rilevate con probabilità del 100%. Un hash crittografico viene utilizzato quando il set di input è abbastanza grande da consentire il raggiungimento del compleanno ed è probabile una piccola dimensione di hash per provocare collisioni o quando un utente malintenzionato potrebbe tentare intenzionalmente di creare input per scontrarsi (ad esempio durante la generazione di certificati o la firma di un documento).