¿La seguridad de Skein como hash implica la seguridad de Threefish como cifra en bloque?

StackOverflow https://stackoverflow.com/questions/827989

Pregunta

El Skein hash propuesto para SHA-3 cuenta con algunos resultados de velocidad impresionantes, que sospecho sería aplicable para el cifrado de bloques Threefish en su corazón, pero, si Skein está aprobado para SHA-3, ¿implicaría que Threefish también se considera seguro? Es decir, ¿alguna vulnerabilidad en Threefish implicaría una vulnerabilidad en SHA-3? (y, por lo tanto, la falta de problemas conocidos y una confianza general en SHA-3 implican lo mismo para Threefish)

¿Fue útil?

Solución

No. La seguridad de Skein no implica la seguridad de Threefish. Dicho de manera positiva, si alguien encuentra una debilidad en Threefish, esto no implica que Skein también sea insegura.

Sin embargo, la pregunta es bastante interesante y se aplica a otras funciones hash también. Skein usa una construcción Davis-Meyer con alguna modificación. MD5, SHA1 y muchas otras funciones hash también están utilizando esta construcción de Davis-Meyer y, por lo tanto, en principio se basan en un cifrado de bloque. Solo en el caso de MD5 o SHA1, ese cifrado de bloque no tiene nombre y no conozco mucha investigación sobre cuán adecuadas son estas construcciones.

Los requisitos para un buen cifrado de bloque y para una buena función hash son diferentes. Algo simplificado, si E es un cifrado de bloque y no es factible encontrar dos claves K, K 'y dos mensajes M, M' de modo que E K (M) xor M = E K ' (M') xor M 'entonces E es adecuado para construir una función hash usando Davis-Meyer. Pero para ser seguro como un cifrado en bloque E necesitaría otras propiedades. E tendría que resistir ataques de texto cifrado elegido, ataques de texto plano elegido, etc.

Además, si E es un buen cifrado de bloque, eso tampoco significa que tenga una buena función hash. Microsoft tuvo que aprender esto de la manera difícil con el hash que usaron en XBOX. Este hash se basó en el TEA de cifrado de bloque que tenía una debilidad que era insignificante para un cifrado de bloque, pero resultó fatal cuando se usó para una función hash.

Para ser justos, hay algunas relaciones entre ser un buen cifrado de bloques y ser adecuado para una función hash. Por ejemplo, en ambos casos deben evitarse los ataques diferenciales. Por lo tanto, algunos métodos de diseño utilizados para la construcción de buenos cifrados de bloques se pueden utilizar para construir buenas funciones hash.

Permítanme agregar también que algunas de las propuestas para SHA-3 se basan en AES. Hasta ahora, no he visto mucho apoyo para favorecer las funciones hash basadas en AES, solo porque AES ya es un estándar. Estas funciones hash se analizan como cualquier otra propuesta SHA-3.

Otros consejos

No tenga en cuenta mi respuesta anterior. No entendí la relación entre Skein y Threefish. Todavía no creo que la aprobación de Skein pruebe absolutamente que Threefish es generalmente seguro (es posible que Threefish solo sea seguro cuando se usa de una manera particular), pero sería una indicación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top