Capacidad de detección de errores de SHA-256

1

Si utilizamos la suma de comprobación SHA-256 para detectar daños en un archivo, ¿cuál es su capacidad en términos de errores perdidos?

Por ejemplo, leyendo la página sobre corrección y detección de errores aquí , debajo de la sección de un ejemplo de CRC dice:

  

Para un error de ráfaga de longitud n - 1, la probabilidad de detección de errores es del 100%.

     

Un error de ráfaga de longitud igual a n + 1, la probabilidad de detección de errores se reduce a 1 - (1/2) n-1.

     

Un error de ráfaga de longitud mayor que n - 1, la probabilidad de detección de errores es 1 - (1/2) n.

¿Hay alguna investigación de las capacidades similares para SHA-256?

    
pregunta minghua 20.11.2018 - 02:15
fuente

1 respuesta

1
  

¿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).

    
respondido por el forest 28.11.2018 - 06:29
fuente

Lea otras preguntas en las etiquetas