Итак, очередной провокационный вопрос: не противоречит ли нашему законодательству создание и/или распространение так называемых rainbow tables?
Статья на английском, объясняющая принцип действия:
http://en.wikipedia.org/wiki/Rainbow_tableЕсли описать кратко, то смысл в следующем.
Создаётся вторая функция, преобразующая хэш-значение в какое-нибудь слово. Т.е. это как бы аналог хэш функции, только выполняется обратное преобразование.
Далее создаётся цепочка:
случайное слово->хэш->слово->хэш->слово->...->хэш
В таблице сохраняются только начало и конец цепочки.
Таких цепочек создаётся достаточно много.
Далее, для взлома пароля берётся его хэш-значение и прогоняется по данной цепочке, пока значение хэша не совпадёт с одним из хвостов, хранящихся в таблице.
Как только мы нашли цепочку, прогоняем её заново с самого начала и находим слово(пароль), из которого получился данный хэш.
Для одной цепочки можно посчитать вероятность попадания в неё пароля, соответственно, можно посчитать, скольно нужно создать цепочек, чтобы взломать пароль с заранее заданной вероятностью.
Т.е. этим методом решена проблема хранения предвычисленных значений хэшей. Вторая особенность - то, что все ресурсоёмкие вычисления выполняются заранее, а пароль взламывается в считанные секунды (доли секунд).
Соответственно, большУю ценность представляют предвычисленные таблицы цепочек для различных хэш-функций (MD5, sha1, ntlm...). Так вот, вопрос, являются ли законным создание, распространение, продажа этих таблиц? По сути, они содержат данные, позволяющие выполнять успешное обратное преобразование с любой заданной вероятностью успеха < 100%.