Грубая сила - худшая атака, ничто не может быть доказательством грубой силы ...
прямо сейчас ~ 80-90 бит считается криптографически безопасным с точки зрения атаки методом перебора, поэтому вам нужно всего 10 байтов, если функция хэширования при столкновении отлично, но это не так, вы просто делаете больше битов ...
доказательство того, что ничто не может быть доказательством грубой силы, содержится в принципе голубиных отверстий .
, поскольку хэш-функция H
допускает ввод произвольного размера [0,1]^n
и выводит постоянный вывод [0,1]^k
, когда размер ввода превышает размер вывода :, n>k
, обязательно есть несколько выходов, которые могут быть получены более чем один вход.
Вы можете визуализировать это с помощью квадрата, разделенного на 9 вспомогательных квадратов.
0 | 0 | 0
0 | 0 | 0
0 | 0 | 0
это ваши 9 лунок. Мы нападающий грубой силы, у нас есть неограниченные шансы атаковать ... у нас есть неограниченное количество голубей ... но нам самое большее нужно 10, чтобы найти столкновение ...
после 4 пиджонов и хорошего алгоритма хеширования, устойчивого к столкновениям:
P | 0 | 0
0 | P | P
0 | 0 | P
после 9 пиджонов:
P | P | P
P | P | P
P | P | P
так что наш 10-й голубь обязательно столкнется, потому что все дыры заполнены.
но на самом деле это даже не так хорошо, потому что есть другое числовое свойство, называемое парадокс дня рождения , где при заданном количестве независимых выборок вы найдете дубликат гораздо быстрее, чем требуется, чтобы заполнить все ваши "дыры".