Colisionamiento de hashes

Iniciado por Tronos154, 25 Marzo 2014, 01:09 AM

0 Miembros y 2 Visitantes están viendo este tema.

Tronos154

Tengo una duda la cual me gustaria que me aclarasen,¿como se puede generar un colisionamiento de dos hashes?,he averiguado que es 100% seguro de que dos hashes colisionen,pero ¿como puedo averiguar cual de todos colisionara?.Para aclararnos mejor por ejemplo la palabra hola genera este hash 4d186321c1a7f0f354b297e8914ab240,habra un momento en el que otra palabra distinta a hola genere este hash por lo cual se producira un colisionamiento,pero ¿como puedo predecir que palabra sera?

engel lex

Citarhe averiguado que es 100% seguro de que dos hashes colisionen

no XD no es 100% seguro a menos que tengas

Código (cpp) [Seleccionar]
int hash (string palabra)
return 1;


hay posibilidad de que 2 hash colisionen?
si
cual es la probabilidad?
100%/posibilidades

en md5 eso son un montón de 0 despues de la coma y antes de un numero diferente

Citarabra un momento en el que otra palabra distinta a hola genere este hash por lo cual se producira un colisionamiento,pero ¿como puedo predecir que palabra sera?

hablando de 2 palabras formalmente dichas, de nuestro diccionario que colisiones, no, no hay... por lo menos hasta donde personas han corrido todos los diccionario con md5 no han conseguido

hablando de 2 cadenas en formato ascii de longitud posiblemente infinita si, hay alguna probabilidad, aunque muy baja...

si hablamos de 2 variables binarias, tienen una probabilidad más alta que el caso anterior...


aquí este autor expone que puede crear un programa A y un programa B, siendo A y B un programas validos y diferentes,logra que tengan el mismo hash, a demás expone que solo necesitan 128 bytes de diferencia para la colisión md5...
http://www.mscs.dal.ca/~selinger/md5collision/

con respecto a la predictibilidad, hasta ahora no hay... es el objetivo principal de los hashes... si se consigue un patrón calculable, automáticamente ese hash queda inútil


El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

#!drvy

#2
Para complementar la respuesta de engelx (te me adelantaste ·_·)..

Una colisión solo se da en casos donde la entrada es mas grande que la salida. Es decir el texto que quiero "cifrar", tiene mas bytes que la salida que produce el método de cifrado.

Un famoso ejemplo es:
d131dd02c5e6eec4693d9a0698aff95c 2fcab50712467eab4004583eb8fb7f89
55ad340609f4b30283e4888325f1415a 085125e8f7cdc99fd91dbd7280373c5b
d8823e3156348f5bae6dacd436c919c6 dd53e23487da03fd02396306d248cda0
e99f33420f577ee8ce54b67080280d1e c69821bcb6a8839396f965ab6ff72a70


Contra

d131dd02c5e6eec4693d9a0698aff95c 2fcab58712467eab4004583eb8fb7f89
55ad340609f4b30283e488832571415a 085125e8f7cdc99fd91dbdf280373c5b
d8823e3156348f5bae6dacd436c919c6 dd53e2b487da03fd02396306d248cda0
e99f33420f577ee8ce54b67080a80d1e c69821bcb6a8839396f9652b6ff72a70


En donde se obtiene el mismo hash (79054025255fb1a26e4bc422aef54eb4).

Y las posibilidades de colisión varían mucho según el algoritmo. En tu caso te estas refiriendo a MD5 pero hay otros donde todavía no se ha encontrado ni una sola (SHA).

Saludos

Tronos154

Es decir,matematicamente MD5 es vulnerable pero nadie sabe como encontrar dos hashes iguales con distinta entrada.Vamos,que hasta que la teoria no sea comprobada seguira siendo seguro este tipo de encriptacion.

engel lex

te equivocas en casi toda tu ultima frase

Cita de: Tronos154 en 25 Marzo 2014, 13:13 PM
Es decir,matematicamente MD5 es vulnerable pero nadie sabe como encontrar dos hashes iguales con distinta entrada

si se sabe... es justamente lo que explicó drvy

Cita de: Tronos154 en 25 Marzo 2014, 13:13 PM
Vamos,que hasta que la teoria no sea comprobada seguira siendo seguro este tipo de encriptacion.

la teoría comprobada está, puedes ver el primer ejemplo...
no es un tipo de encriprtacion... es una suma de comprobación...



El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Tronos154

Perdon por mi ignoracia XD es que para mi es un tema dificil de entender lo cual me genera muchas preguntas y las respuestas que me dais me cuesta entenderlas,pero gracias por las aclaraciones.

engel lex

XD no hay problema pregunta tus dudas por tontas que sean XD así se aprende! por eso te lo corrijo! :P

si tienes dudas hazlas
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

pindonga123

Muchachos, no se si estoy orinando fuera del tarro y tendria que abrir un tema nuevo con mi duda. Pero para que me serviria que dos hashes colisionen?. Para hacerle creer a la maquina que recibe algo correcto que en realidad es falso?. Gracias

engel lex

exacto... podrías pasar un archivo viral como uno original... realmente no te sabría decir implicaciones directas reales de esto...
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

ivancea96

Como muchos sistemas de login web usan MD5 para guardar las contraseñas, técnicamente, habría infinitas contraseñas diferentes con el mismo hash jaja.
Siempre que no se limite el tamaño de la pass, claro.