Dado un conjunto de 100 cadenas de igual longitud, ¿cómo se puede cuantificar la probabilidad de que una colisión de resumen SHA1 para las cuerdas sea poco probable ...?Probabilidad de colisiones SHA1
Respuesta
son los valores hash de 160 bits generado por SHA-1 lo suficientemente grande como para asegurar la huella digital de cada bloque es único? Suponiendo valores hash aleatoria con una distribución uniforme, una colección de bloques de datos n diferentes y una función hash que genera bits b, el probabilidad p que habrá una o más colisiones está limitada por el número de pares de bloques multiplicado por la probabilidad de que un par determinado colisione.
(fuente: http://bitcache.org/faq/hash-collision-probabilities)
En conclusión, la probabilidad de una colisión es del orden de 10^-45. Eso es muy, * muy * improbable. –
Pero SHA-1 no es una distribución uniforme, podría ser más grande que este límite superior. Dudo que esta ecuación no sea correcta. Al menos el EQUAL. – Kamel
Esta respuesta no tiene en cuenta el descubrimiento chino en 2005 en el que pueden producir colisiones en 2^69 iteraciones en lugar de los 2^80 proyectados por la fuerza bruta https://www.schneier.com/blog/archives /2005/02/sha1_broken.html – Djarid
Eso es Birthday Problem - el artículo proporciona aproximaciones agradables que hacen que sea bastante fácil estimar la probabilidad. La probabilidad real será muy, muy baja; consulte this question para ver un ejemplo.
Bueno, la probabilidad de una colisión sería 1 - ((2^160 - 1)/2^160) * ((2^160 - 2)/2^160) * ... * ((2^160 - 99)/2^160).
Piense en la probabilidad de una colisión de 2 elementos en un espacio de 10. El primer elemento es único con una probabilidad del 100%. El segundo es único con probabilidad 9/10. Entonces, la probabilidad de que ambos sean únicos es 100% * 90%, y la probabilidad de una colisión es 1 - (100% * 90%), o 1 - ((10 - 0)/10) * ((10 - 1)/10), o 1 - ((10 - 1)/10).
Es bastante improbable. Tendría que tener muchas más cadenas para que sea una posibilidad remota.
Eche un vistazo a la tabla en this page on Wikipedia; simplemente interpola entre las filas para 128 bits y 256 bits.
- 1. SHA1 demo de colisión/ejemplo
- 2. Número esperado de colisiones hash
- 3. Ejemplos de colisiones hash?
- 4. Javascript Detección de colisiones
- 5. colisiones de vector.push_back()
- 6. Crea tus propias colisiones MD5
- 7. Probabilidad de resultados Algoritmo
- 8. Código de probabilidad Problema
- 9. Notación de probabilidad
- 10. Probabilidad de números aleatorios
- 11. Editor de células de probabilidad
- 12. Detección de colisiones poligonales 2D
- 13. ¿Cómo diagnosticar colisiones de eclipse?
- 14. probabilidad en javascript ayuda?
- 15. Probabilidad en Java
- 16. Android HMAC-SHA1 Diferente al estándar Java HMAC-SHA1
- 17. PBKDF2-HMAC-SHA1
- 18. Codificación SHA1 en Haskell
- 19. GPU MD5/SHA1 Hasher
- 20. Objetivo C: SHA1
- 21. inválida archivo de firma SHA1
- 22. HMAC SHA1 ColdFusion
- 23. HMAC-SHA1 en bash
- 24. Cocoa/Objective-C Complementos Colisiones
- 25. modelo de actor y detección de colisiones
- 26. ¿Qué es Probabilidad de cruce y probabilidad de mutación en algoritmo genético o programación genética?
- 27. calcular el porcentaje de probabilidad de Poisson
- 28. Generador de números aleatorios de probabilidad
- 29. Obteniendo densidad de probabilidad de datos
- 30. Probabilidad de clasificación WEKA de las clases
aclarar, ¿cómo se puede tener 'diferentes pero iguales' de longitud cuerdas? – KevinDTimm
@kevindtimm "a", "b", "c" son de la misma longitud pero diferentes cadenas –
Supongo que las cadenas tienen al menos 20 bytes de longitud. De lo contrario, obviamente las posibilidades serían mayores de una colisión. :) –