2016-09-22 1 views
1

Рассмотрим наивную функцию хэша: HASH = INPUT % 4. Эта функция периодична в том смысле, что если мы назовем ее последовательными числами 0, 1, 2, 3, 4, 5, ..., то полученная хешированная последовательность будет иметь периодичность четыре: 0, 1, 2, 3, 0, 1, 2, 3, 0, ....Периодичность хеш-функций

Вопрос в том, являются ли современные криптографические хэш-функции, такие как SHA256, периодическими в этом смысле? Другими словами, существуют ли целые числа 0 <= n и 0 < k такие, что HASH(n + b) = HASH(n + b + ak) для всех целых чисел b в [0, k - 1] и все положительные целые числа a? Например, будет ли последовательность SHA256(0), SHA256(1), SHA256(2), SHA256(3), ... периодической после некоторой точки?

ответ

1

Абсолютно нет. Если бы это было так, было бы тривиально найти столкновение. Сила криптографической хэш-функции определяется тем, насколько сложно найти Hash (a) == Hash (b). В идеале вам нужно найти все значения Hash (b), чтобы найти столкновение, что невозможно, если Hash - это много бит.

+0

Это очень хороший момент, спасибо. Это теоретически доказано или только практически так? Например, если 'k' и' n' чрезвычайно велики (и в настоящее время неизвестны), было бы практически невозможно найти столкновения, но теоретически мы могли бы. –

+0

Вы должны спросить об этом из-за переполнения математики :) Я думаю, что если k конечно, вы можете это доказать. Но на бесконечности, когда Хэш идет от реальной до пары цифр, я думаю, что на самом деле нужно быть k. – starmole

+0

У меня может быть эскиз, который работает: вам нужно показать, что не существует k, так что для всех a: Hash (a) == Hash (a + k). Итак, нам нужно показать, что существует один a для каждого k, где Hash (a)! = Hash (a + k). Теперь мы требуем, чтобы Hash (x)! = Hash (x '), если x' равно x, с одним щелчком. Тривиальный хэш-бит, который будет делать это, - это взять все биты в x и xor. Итак, чтобы найти a для любого k, просто выберите a так, чтобы a = (a + k) с одним битом перевернулся. Это может быть a = 1 << maximumbitindex (k). – starmole

Смежные вопросы