¿Por qué SHA-1 puede considerarse una función hash segura? Eso es algo de lo que todavía me pregunto.
Entiendo los conceptos de por qué los algoritmos asimétricos modernos se consideran seguros. Se basan en problemas matemáticos de sonido que probablemente son "difíciles" de resolver, por ejemplo. Logaritmos discretos en campos finitos o factorización de enteros. Los conceptos de reclamos de seguridad y pruebas son relativamente fáciles de seguir si uno es consciente de los conceptos matemáticos.
Pero cuando se trata de criptografía simétrica y funciones hash seguras, la imagen se vuelve mucho menos clara. Entiendo que existen muchos resultados y análisis para cifrados de bloque y algoritmos de resumen, pero ¿en qué se basan estos resultados?
Por ejemplo, Cuando se trata de bloquear cifrados, se pueden encontrar muchas pruebas de que el algoritmo de cifrado X es resistente a un cierto número de ataques conocidos . O prueban que alguna propiedad se mantiene, por ejemplo, cada bit de la entrada afecta a la salida, porque se considera necesario, etc., etc.
Desde el exterior, la construcción de algoritmos de cifrado y compendio parece "intentar alterar y alterar la entrada lo más posible" aplicando cambios de bit, XOR, etc.
Lo que me gustaría saber ahora (estaría agradecido por una visión más profunda de cualquiera de los dos):
a) ¿Podría proporcionarme indicadores de recursos (libros preferidos) que expliquen las consideraciones de diseño y seguridad que se deben tener en cuenta al crear un
?a1) algoritmo de cifrado
a2) algoritmo de resumen
eso explicaría cosas como por qué una caja S tiene que verse exactamente como se ve en lugar de cualquier otra forma y, probablemente, aún más importante para mí y para mi comprensión por qué sería malo si ¿Se construyeron de manera diferente?
b) ¿Existen o están sus intentos de modelar estas "operaciones de manipulación de bits" matemáticamente (por ejemplo, ¿los "ataques algebraicos" se basan en dicho modelo?)
c) ¿Cómo se "mide" la calidad de un algoritmo de resumen como SHA-1? Es decir. ¿Cómo puede decir que es mejor hacer un cambio de dos bits aquí en lugar de tres o un XOR, y por qué estas operaciones son la base de SHA-1 en primer lugar? ¿Porque en ese momento parecía la única cosa conocida que se "ensuciaba al máximo" con la entrada? Lo pregunto porque parece que la mayoría de los candidatos SHA-3 estaban basados en algoritmos de cifrado (porque hay más resultados teóricos) o, por ejemplo, sobre nuevos conceptos como funciones de esponja . Para mí, las definiciones de cualquiera de los algoritmos SHA (MD5 también) aún parecen: "Vamos a meternos con esto, ¿vale?" - ¿Pero cuál es el razonamiento detrás de esto? ¿Por qué hacerlo como lo hicieron?
Estaría más que feliz si pudiera darme una idea de cualquiera de estos temas.