Efecto avalancha

De Wikipedia, la enciclopedia libre

En criptografía, el efecto avalancha es la propiedad deseable de los algoritmos criptográficos, generalmente cifrados de bloque y funciones de cifrado criptográfico, en donde si una entrada cambia ligeramente (por ejemplo, permutando un solo bit), la salida cambia significativamente (por ejemplo, la mitad de los bits de salida). En el caso de los cifrados de bloque de alta calidad, un cambio tan pequeño en la clave o en el texto plano debería provocar un cambio drástico en el texto cifrado. El término real fue utilizado por primera vez por Horst Feistel,[1]​ aunque el concepto se remonta a al menos la difusión de Shannon.

La función de hash SHA-1 exhibe un buen efecto de avalancha. Cuando se cambia un solo bit, la suma de hash se vuelve completamente diferente.

Si un cifrado de bloque o función de hash criptográfica no exhibe el efecto de avalancha en un grado significativo, entonces tiene una asignación aleatoria deficiente y, por lo tanto, un criptoanalista puede hacer predicciones sobre la entrada, teniendo como dato solo la salida. Esto puede ser suficiente para romper parcial o completamente el algoritmo. Por lo tanto, el efecto de avalancha es una condición deseable desde el punto de vista del diseñador del algoritmo o dispositivo criptográfico. Si no se incorpora esta característica, la función hash queda expuesta a ataques que incluyen ataques de colisión, ataques de extensión de longitud y ataques de preimagen.

La construcción de un cifrado o hash que exhiba un efecto de avalancha sustancial es uno de los principales objetivos de diseño, y matemáticamente la construcción aprovecha el efecto mariposa.[2][3]​ Esta es la razón por la que la mayoría de los cifrados de bloque son cifrados de producto. También es la razón por la que las funciones hash tienen grandes bloques de datos. Ambas características permiten que los pequeños cambios se propaguen rápidamente a través de las iteraciones del algoritmo, de modo que cada bit de la salida debería depender de cada bit de la entrada antes de que finalice el algoritmo.  

Criterio de avalancha estricto[editar]

El estricto de avalancha estricto (SAC, por sus siglas en inglés) es una formalización del efecto de avalancha. Se satisface si, cada vez que se complementa un solo bit de entrada, cada uno de los bits de salida cambia con un 50% de probabilidad. El SAC se basa en los conceptos de integridad y avalancha. Fue introducido por Webster y Tavares en 1985.[4]

Las generalizaciones de orden superior de SAC implican múltiples bits de entrada. Las funciones booleanas que satisfacen el orden más alto de SAC son siempre funciones dobladas, también llamadas funciones máximamente no lineales o funciones no lineales perfectas.[5]

Criterio de independencia de bit[editar]

El criterio de independencia de bit (BIC, por sus siglas en inglés) establece que los bits de salida j y k deben cambiar independientemente cuando se invierte un solo bit de entrada i, para todos i, j y k .[6]

Véase también[editar]

Referencias[editar]

  1. Feistel, Horst (1973). «Cryptography and Computer Privacy». Scientific American 228 (5): 15-23. doi:10.1038/scientificamerican0573-15. 
  2. A Nobel Chaos based Secure Image Encryption Algorithm, Al-Kuwari1 et al. Archivado el 2 de marzo de 2017 en Wayback Machine.
  3. Al-Kuwari, Saif; Davenport, James H.; Bradford, Russell J. (2011). Cryptographic Hash Functions: Recent Design Trends and Security Notions. 
  4. Webster, A. F.; Tavares, Stafford E. (1985). «On the design of S-boxes». Advances in Cryptology - Crypto '85 218. New York, NY: Springer-Verlag New York, Inc. pp. 523-534. ISBN 0-387-16463-4. 
  5. C. Adams; S. Tavares (January 1990). The Use of Bent Sequences to Achieve Higher-Order Strict Avalanche Criterion in S-Box Design. Queen's University. 
  6. William, Stallings (2016). Cryptography and network security : principles and practice (Seventh edición). Boston. p. 136. ISBN 9780134444284. OCLC 933863805.