¿Hay alguna investigación de las capacidades similares para sha256?
Tipo de. SHA-256 no está diseñado para lidiar con errores de ráfaga , por lo tanto, no puede comparar las propiedades de detección de error de ráfaga de un CRC con un hash como SHA-256. Tal comparación simplemente no es posible. Sin embargo, puede comparar las capacidades de detección de errores de CRC32 con un hash como SHA-256.
Con un algoritmo como CRC32, ciertos tipos de cambios en la entrada están garantizados para dar como resultado un valor de suma de comprobación diferente. Utilizar un buen polinomio (un valor intrínseco a la capacidad de un CRC para detectar modificaciones) permite Tipos más comunes de cambios a detectar. Con un hash criptográfico como SHA-256 (que intenta modelar un oráculo aleatorio ) por otro lado, hay No hay tal garantía. La detección de cambios en la entrada es totalmente probabilística. Un hash criptográfico es tan probable que detecte un cambio en un solo bit como detectar la entrada completa que se reemplaza con algo completamente diferente.
Lo que hay que recordar es que, a diferencia de un CRC en el que ciertos tipos de entrada tienen más o menos probabilidades de provocar una colisión (con ciertos tipos de entrada con un 0% de probabilidad de causar una colisión), la real probabilidad de colisiones para ingresar a un hash criptográfico es una función de solo la longitud del hash.
Entonces, ¿para qué se usan estos diferentes tipos de algoritmos? Un CRC es bueno para la detección eficiente y rápida de cambios accidentales (corrupción, etc.), y los cambios de un solo bit se detectan con un 100% de probabilidad. Se utiliza un hash criptográfico cuando el conjunto de entrada es lo suficientemente grande como para que se pueda alcanzar el birthday bound y un tamaño de hash pequeño es probable como resultado de algunas colisiones, o cuando un atacante intente intencionalmente crear información para colisionar (por ejemplo, al generar certificados o firmar un documento).