
28.06.2009, 04:35
|
|
Постоянный
Регистрация: 30.09.2007
Сообщений: 815
С нами:
9796693
Репутация:
659
|
|
Сообщение от Cthulchu
дихард, это кольца. ред о них упоминал и тут и на сходке. давай лучше придумаем как красивее их обойти.
Единственное, что приходит в голову это тривиальный вариант с возможностью оптимизаций:
каждый полученый хеш прежде, чем хешировать снова - надо сопоставить с уже существующей базой нахешированых хешей... Да, это долго.
Что делать, если мы нашли кольцо? Останавливаем хеширование замыкающего кольцо хеша, удаляем его из базы, добавляем к нему единицу и продолжаем по заданому алгоритму.
Да, это будет долго.
ДА нет, это будет очень долго.
Оно того стоит.
Да, мой набросок допускает вероятность вычесления не всех хешей.
Ред, вместо того, что бы делить твою теоритическую базищу на сегменты по 250 миллионов хешей, оставляя лишь первый и последний - можно будет оставлять только кольца. Я, правда, не представляю сколько их там будет.
вот и все.
Нет, кольца тут не при чем, это еще хуже, попробую пояснить математическим языком -
А - конечное множество всех значений функции хеширования F()
Так как существуют такие a и b из множества A (a не равно b), для которых существует коллизия F(a)=F(b)=c, то с учётом того что А - конечно, то область значений F() на множестве аргументов A не равна А и является подмножеством A. Т.е. не для всякого x из А существует такое y из A, что F(y)=x
|
|
|