Можно ли рассчитать входные данные этой хеш-функции на основе выходных данных? - PullRequest
0 голосов
/ 22 сентября 2018

У меня есть следующая хеш-функция, и мне интересно, есть ли способ рассчитать ввод этой функции на основе хешированного значения.Заранее спасибо

def hash(message):
    key = [0x0f, 0xff, 0x00]
    for char in message:
        n = ord(char)
        key[0] ^= n
        key[1] &= n
        key[2] |= n
    return ’’ + chr(key[0]) + chr(key[1]) + chr(key[2])

Ответы [ 3 ]

0 голосов
/ 25 сентября 2018

в терминах второго предварительного изображения хеш-функции;Существует бесконечно много решений для любой хэш-функции, если у вас достаточно времени и денег.

Теперь, предположив, что у вас есть время и деньги, вы сгенерировали все возможные вторые предварительные изображения с данным значением хеш-функции.до n-бит, и скажем, у нас есть х решений.

for i in space(1..2^n)
   check hash(i) == TheHash

Даже при x = 2 злоумышленник не сможет определить реальное предварительное изображение, которое было выведено в хэш.Имейте в виду, однако, что с точки зрения атакующего злоумышленник уже находит x решений, чтобы сломать ваш хэш.

0 голосов
/ 25 сентября 2018

Возможно, но невозможно сгенерировать сообщение из его хеш-значения, кроме как путем попытки всех возможных сообщений.

0 голосов
/ 22 сентября 2018

Одним словом, нет .Никакая значимая хэш-функция не может быть применена в обратном порядке.

Хэш-функции делают то, что они пытаются создать «подпись» исходного сообщения.Подпись должна быть достаточно маленькой и обычно используется для проверки или в качестве индекса в некотором хранилище.

Для этого выходной домен должен быть значительно меньше, чем входной домен, или, другими словами, несколько входовможет соответствовать одному и тому же выводу.В вашем случае строки "000" и "000000000" будут иметь одинаковое значение хеш-функции, и у вас не будет возможности отличить одно от другого, учитывая только хеш-код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...