¿Hay un x
donde SHA1(x) == x
? Estoy buscando una prueba o un fuerte argumento en contra.¿Hay alguna x para la cual SHA1 (x) sea igual a x?
Respuesta
Se aplican los mismos argumentos que para la pregunta Is there an MD5 fixed point? I.e. para una función elegida al azar es aproximadamente 63%.
Eso no es lo que estoy buscando. Decir 63% es como decir "tal vez o no". ;-) – forki23
Y creo que un punto importante es que SHA1 no es una función aleatoria y, por lo tanto, la respuesta correcta solo puede ser sí o no. – forki23
El argumento dice que, a menos que pueda explotar propiedades especiales de SHA1, será difícil encontrar argumentos sólidos a favor o en contra de puntos fijos. Y con suerte, SHA1 no tiene propiedades especiales desconocidas. – abc
Leer sobre el ataque de punto fijo en esta entrada wiki One-way compression function - Davies-Meyer
funciones hash más ampliamente utilizados, incluyendo MD5, SHA-1 y SHA-2
utilización construcción Merkle-Damgard.
Si entiendo esto correctamente, entonces no está realmente probado, pero tenemos pocas posibilidades de encontrar un ejemplo . – forki23
@ forki23, creo que es posible encontrar un valor de punto fijo por lo que el método de Merkle-Damgård es solo para fortalecer los algoritmos hash. –
El problema con esa construcción, tal como se aplica a la pregunta actual, es que la longitud anexa se conoce a priori; la entrada es tan larga como la salida. – MSalters
- 1. ¿Hay alguna diferencia entre "Objeto [] x" y "Objeto x []"?
- 2. ¿Hay alguna diferencia entre x ++ y ++ x en java?
- 3. ¿`X x = x = X();` legal C++?
- 4. Para cada x ... Siguiente vs. Para cada x ... Siguiente x
- 5. ¿Cuál es la diferencia entre X = X ++; vs X ++ ;?
- 6. definir el uso (x) (x) = (x)
- 7. int x = 10; x + = x--; en .Net - ¿Por qué?
- 8. ¿Es x == x alguna vez falso en Python?
- 9. string.charAt (x) o cadena [x]?
- 10. ¿Es posible que class.property = x devuelva algo que no sea x?
- 11. std :: cadena x (x);
- 12. ¿Hay alguna alternativa de KCacheGrind para Mac Os X?
- 13. "x = ++ x" ¿es realmente indefinido?
- 14. ¿Diferencia en la construcción del objeto usando "X x (42)" y "X x = 42"?
- 15. ¿Hay alguna diferencia entre `if bool (x)` y `if x` en Python?
- 16. ¿Cuál es el resultado de X (X, X)?
- 17. Taquigrafía para "devolver x si x" en Ruby
- 18. ¿Cómo se empareja la clase [X] para diferentes X?
- 19. ¿Es x + = 1 más eficiente que x = x + 1?
- 20. Sustitución si (x) foreach() con Foreach.Where (x)
- 21. Struts 1.x vs Struts 2.x
- 22. ¿Math.IEEERemainder (x, y) es equivalente a x% y?
- 23. Calculando el trabajo realizado por F x = (x, x)
- 24. Xerces-C: ¿Migración de v2.x a v3.x?
- 25. ¿Hay creadores .chm para OS X?
- 26. Si x es la lista, ¿por qué funciona x + = "ha", mientras que x = x + "ha" arroja una excepción?
- 27. 'de X import a' versus 'import X; X.a'
- 28. Simplificar si (x == 1 || x == 2)
- 29. ¿Cuál es la diferencia entre las macros "#define STR (x) #x" y "#define STR (x) VAL (x)" con "#define VAL (x) #x"?
- 30. x-y = x + 1 + ¬y problema
Olvidé el algo, pero sugiero que tomar e ingresar y salir al circuito sean los mismos y tratar de formular las condiciones en las puertas internas, ver si alguno de ellos está en conflicto, si no es posible, no es así. Gracias –
que se llama "punto fijo", http://en.wikipedia.org/wiki/Fixed_point_%28mathematics%29 –