У меня есть хеш-функция, как я могу сказать, что она соответствует критериям криптографической хеш-функции? - PullRequest
0 голосов
/ 09 апреля 2019

Скажем, предположим, у меня есть криптографическая хеш-функция, она разбивает сообщение на блоки, и каждый блок составляет 20 байтов, содержимое каждого блока обрабатывается как положительное целое число, функция будет принимать сумму содержимого 1-го блока квадрат содержимого 2-го блока, куб содержимого 3-го блока и т. д., пока он не достигнет последнего блока, который мы принимаем в качестве m-го блока, и не принимаем m ^ m в качестве значения, затем, когда мы получаем сумму, мы модифицируем сумма с 2 ^ 160. Я хочу знать, почему эта хеш-функция не соответствует критериям криптографической хеш-функции.

Итак, что я до сих пор знал, так это: 20 байтов на блок = 160 бит на блок Напомним метод преобразования двоичного числа в десятичное: десятичный = d0 * 2 ^ 0 + d1 * 2 ^ 1 + d2 * 2 ^ 2 +… + dn * 2 ^ n, а в нашем случае n = 159 значение хеша тогда будет (1-й блок + (2-й блок) ^ 2 + (3-й блок) ^ 3 +… + (m-й блок) ^ m) mod 2 ^ 160 что соответствует в соответствии со свойством мода операции: (1-й блок мод 2 ^ 160 + (2-й блок) ^ 2 мод 2 ^ 160 + (3-й блок) ^ 3 мод 2 ^ 160 +… + (m-й блок) ^ м мод 2 ^ 160) мод 2 ^ 160 но я, кажется, знаю, что это не очень хорошая функция, но я не мог сказать почему, потому что я не мог продолжать анализировать ее.

...