Как работают цепочки в таблицах Rainbow? - PullRequest
5 голосов
/ 03 апреля 2010

Мне было интересно, может ли кто-нибудь подробно объяснить, как цепочки работают в радужных таблицах, как если бы вы были для новичка, но с точки зрения программирования.

Я понимаю, что длина цепочки составляет 16 байтов. 8 байтов отмечают начальную точку, а 8 - конец. Я также понимаю, что в имени файла мы имеем длину цепи, то есть 2400. Что означает, что между нашей начальной точкой и конечной точкой всего в 16 байтах у нас есть 2400 возможных чистых текстов, что? Как это работает? В этих 16 байтах, как я могу получить мои 2400 хэшей и чистые тексты, или я неправильно это понимаю?

Ваша помощь очень ценится.

Спасибо.

П.С .: Я прочитал соответствующие статьи и довольно долго гуглил эту тему. Я думаю, что я просто упускаю что-то важное, чтобы заставить эти механизмы вращаться.

1 Ответ

3 голосов
/ 06 мая 2011

Зная начальную точку цепочки хеширования, вы можете вычислить все промежуточные и конечные точки, многократно применяя функцию хеширования и редукции.

Конечная точка наступает, когда вы хотите найти в цепочке хешированный пароль. Применять хэш-и-уменьшать до длины цепочки количество раз; на каждом этапе посмотрите, соответствует ли ваше промежуточное звено конечной точке какой-либо цепочки, которую вы вычислили. Если так, то вы нашли цепочку, включающую пароль. Затем вы знаете, где начинается цепочка, потому что вы сохранили ее начальную точку, и вы можете тривиально пройти вперед по цепочке оттуда, чтобы найти пароль, который при однократном хешировании возвращает значение хеш-функции.

В процессе полной радужной таблицы применяется такой вид поиска, но с семейством различных функций сокращения, чтобы избежать коллизий хешей; Я не очень хорошо разбираюсь в деталях.

...