Рейтинг:0

Расшифровка ввода из известного вывода с использованием SHA512?

флаг in

Основной вопрос. Я занимаюсь самостоятельным изучением хеш-функций.

Если я вставлю Привет в качестве входных данных в хеш-функцию SHA512 (например, используя это) я получаю следующий хэш: 9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043

Я заметил, что алгоритм SHA512 дает один и тот же результат независимо от того, ввожу ли я Привет сегодня или завтра, или если я использую свой компьютер или мою сестру.

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

pigeonburger avatar
флаг co
Да (если нет совпадения, когда происходит столкновение совершенно другой случайной строки, и обе они имеют одинаковые хэши). Если вы помните, что котлета для гамбургера из говядины была сделана из коровы, вы можете расшифровать, что другие котлеты для гамбургера из говядины, вероятно, сделаны из коров. Единственное, что вы не можете сделать, это превратить котлету из говядины обратно в корову - вы должны иметь *предварительные знания* о том, как она была сделана. То же самое и с хешами.
Рейтинг:2
флаг my

Я заметил, что алгоритм SHA512 дает один и тот же результат независимо от того, ввожу ли я привет сегодня или завтра, или если я использую свой компьютер или компьютер моей сестры.

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

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

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

Ну, что вы можете сделать, так это попробовать выполнить SHA512 на разных входных данных; если один из входных данных просто «привет», то да, вы увидите тот же вывод и сделаете вывод, что (за исключением невероятного совпадения) исходный ввод также был «привет».

Однако это, по сути, лучшее, что вы можете сделать; с хорошей хеш-функцией (а SHA512 — хорошая хэш-функция) практически невозможно восстановить исходную строку (или другую строку, которая хешируется до того же значения), не пытаясь использовать различные догадки.

Рейтинг:0
флаг ng
SSA

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


Теперь ваш вопрос о том, как проверить данный хэш, уникален для ввода. т. е. его однозначность. Итак, со временем из-за коллизий появились новые хеш-функции, например. MD4, MD5, SHA1, SHA2.. С помощью грубой силы чрезвычайно сложно получить ввод хэша o/p для более нового хэша, такого как SHA512 или SHA256.


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

Рейтинг:0
флаг it

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

Да и нет...

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

Это также причина, по которой использование вашего дня рождения или 123456 является плохим выбором, поскольку их хэши так легко распознаются таблицей.

-- Нет, это нет расшифровка. Вы назвали вопрос «односторонней функцией», верно? Таким образом, нет обратного способа расшифровки операции хеширования.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.