Хеширование
Хеширование это «свертка» информационного сообщения в уникальное значение. Хеш текста «Братьев Карамазовых» и коротенького предложения «Привет, мир!» будут одинаковой величины, НО! – и в этом суть – изменение в один символ в результате приведет к тому, что хеш будет совершенно другим. Таким образом, если дважды вычислить хеш одного и того же сообщения и он будет одинаковым, то гарантирует, что между этими измерениями никаких изменений внесено не было.
Требования к алгоритму хеширования
Главное и единственное требование к алгоритму хеширования - это гарантия того, что у двух разных текстов никогда не будет одинакового хеша. Однако размер хэша настолько меньше исходного сообщения, что математически это невозможно. Поэтому на самом деле точное требование такого - не должно существовать способа изменить сообщение так, чтобы получить тот же самый хэш.
Уязвимости алгоритмов хеширования
В этом и есть уязвимость любого алгоритма хеширования. Изучая способы его получения, исследователи пытаются «развернуть» алгоритм в обратную сторону и найти способ менять сообщение с сохранением его хэша. Если два разных сообщения имеют один хеш, это называется «коллизией». Они могут быть и непреднамеренными, в таком случае алгоритм хеширования считается слабым. А могут быть результатом успешной атаки - тогда он считается скомпрометированным.