«Unhashing» называется «атакой с прообразом»: при заданном хеш-выходе найдите соответствующий ввод.
Если хеш-функция «безопасна», то нет лучшей атаки, чем попытка возможных вводов, пока не будет найдено попадание; для хеш-функции с n -битным выходом среднее число вызовов хеш-функции будет примерно равно 2 n , т.е. слишком много для текущей земли- основанная технология, если n больше 180 или около того. Иначе говоря: если для данной хеш-функции найден метод атаки, более быстрый, чем этот метод грубой силы, то хеш-функция считается непоправимо нарушенной.
MD5 считается нарушенным, но для других недостатков ( - это опубликованный метод для прообразов со стоимостью 2 123,4 , который таким образом, примерно в 24 раза быстрее, чем затраты на грубую силу - но это все еще настолько технологически невозможно, что это невозможно подтвердить).
Когда известно, что ввод хеш-функции является частью сравнительно небольшого пространства (например, это «пароль», поэтому он может поместиться в мозгу пользователя-человека), тогда можно оптимизировать атаки прообразом, используя предварительно вычисленные таблицы Злоумышленнику по-прежнему приходится оплачивать стоимость поиска один раз, но он может повторно использовать свои таблицы для атаки на несколько экземпляров. Радужные таблицы - это предварительно вычисленные таблицы с сжатым представлением с эффективным использованием пространства: для радужных таблиц узким местом для злоумышленника является мощность процессора, а не размер его жестких дисков.