Хеширование

Хеширование #

Хеширование это “свертка” информационного сообщения в уникальное значение. Хеш текста “Братьев Карамазовых” и коротенького предложения “Привет, мир!” будут одинаковой величины, НО! – и в этом суть – изменение в один символ в результате приведет к тому, что хеш будет совершенно другим. Таким образом, если дважды вычислить хеш одного и того же сообщения и он будет одинаковым, то гарантирует, что между этими измерениями никаких изменений внесено не было.

Требования к алгоритму хеширования #

Главное и единственное требование к алгоритму хеширования - это гарантия того, что у двух разных текстов никогда не будет одинакового хеша. Однако размер хэша настолько меньше исходного сообщения, что математически это невозможно. Поэтому на самом деле точная формулировка требования к алгоритму звучит так - “не должно существовать способа преднамеренного изменения сообщение с сохранением хэша”.

Уязвимости алгоритмов хеширования #

В этом и есть уязвимость любого алгоритма хеширования. Изучая способы его получения, исследователи пытаются “развернуть” алгоритм в обратную сторону и найти способ менять сообщение с сохранением его хэша. Если два разных сообщения имеют один хеш, это называется “коллизией”. Они могут быть и непреднамеренными, в таком случае алгоритм хеширования считается слабым. А могут быть результатом успешной атаки - тогда он считается скомпрометированным.