Tengo la siguiente pregunta teórica:
Sea H(X)
una función hash que se considera débil porque se pueden producir colisiones (por ejemplo, SHA1, MD5).
Me pregunto si las siguientes funciones:
H2(X) = H(H(X)) xor H(X)
H3(X) = H(H(H(X))) xor H(H(X)) xor H(X)
H4(X) = ...
puede considerarse seguro, si H(X)
se considera inseguro. Si el atacante pudiera encontrar una colisión en H(X)
, también tendría que encontrar una colisión en H(H(X))
, para poder tener una colisión en H2(X) = H(H(X)) xor H(X)
. ¿O todavía no es seguro? (¿Por qué?)
Soy consciente de que dicha cascada no es eficaz en comparación con una función hash más nueva como SHA256 o SHA3.