2010-04-02 12 views
5

Me preguntaba si alguien podría explicar en detalle, cómo funcionan las cadenas en las tablas de arcoíris como lo haría con un principiante completo, pero con relevancia para la programación.¿Cómo funcionan las cadenas en las tablas Rainbow?

Entiendo que una cadena tiene 16 bytes de longitud. 8 bytes marcan el punto de inicio y 8 marcan el final. También entiendo que en el nombre de archivo tenemos la longitud de la cadena, es decir, 2400. Lo que significa que entre nuestro punto de partida y punto final en solo 16 bytes tenemos 2400 textos claros posibles, ¿qué? ¿Cómo funciona? En esos 16 bytes, ¿cómo obtengo mis 2400 hashes y textos claros, o estoy malentendiendo esto?

Su ayuda es muy apreciada.

Gracias.

P.S .: He leído los documentos relacionados y he buscado este tema en Google un poco. Creo que me falta algo importante para hacer que estos engranajes giren.

+0

¿Quieres ayuda para descifrar contraseñas? – bmargulies

+0

no, me gustaría entender cómo se usan los puntos de inicio y fin para generar textos y hashes claros. Agregar también entiendo cómo la int de 64 bits se convierte en una cadena. Solo quería entender de dónde vienen 2400 hashes. –

Respuesta

3

Conociendo el punto de inicio de una cadena hash, puede calcular todos los intermedios y el punto final aplicando repetidamente la función hash-and-reduce.

El punto final aparece cuando desea buscar en la cadena una contraseña hash. Aplique hash-and-reduce hasta la cantidad de veces de la cadena; en cada etapa, fíjate si tu intermedio coincide con el punto final de cualquier cadena que hayas calculado. Si es así, entonces has encontrado la cadena que incluye la contraseña. A continuación, sabe dónde comienza la cadena porque ha almacenado su punto de inicio, por lo que puede caminar trivialmente a través de la cadena desde allí hasta encontrar la contraseña que, una vez obtenida, genera el valor hash.

El proceso de tabla de arco iris completo aplica este tipo de búsqueda pero con una familia de diferentes funciones de reducción para evitar colisiones hash; No estoy muy versado en los detalles.

+0

¿Esto significa que el hash nunca se calcula para el punto final de la cadena? Según tengo entendido, a medida que finaliza la cadena, la función hash nunca se aplica a ella, como en [ilustración] (https://upload.wikimedia.org/wikipedia/commons/thumb/7/78/Rainbow_table1.svg/1200px-Rainbow_table1 .svg.png) de [artículo de Wikipedia] (https://en.wikipedia.org/wiki/Rainbow_table). ¿O me falta algo aquí? –

+0

Aquí hay una buena [respuesta en crypto.stackexchange] (https://crypto.stackexchange.com/a/5901/53497), explicando cómo, exactamente, se calculan las cadenas. –

Cuestiones relacionadas