Криптографические хеш-функции считаются надёжными по нескольким причинам:
- Необратимость. 24 Из хеша нельзя получить исходные данные даже теоретически. 2
- Детерминированность. 2 Если подать хеш-функции одинаковые данные, то и хеш у них будет одинаковым. 2 Именно это свойство позволяет использовать хеши для проверки подлинности информации. 2
- Уникальность. 24 Идеальная хеш-функция выдаёт стопроцентно уникальный результат для каждого возможного набора данных. 2 В реальности такое невозможно, и иногда случаются коллизии — одинаковые хеши для разных сведений. 2 Но существующие хеш-функции достаточно сложны, поэтому вероятность коллизии сводится к минимуму. 2
- Разнообразие. 2 Даже если два набора информации различаются одним-двумя символами, их хеши будут кардинально разными. 2 У них не будет общих блоков, по ним невозможно будет понять, что исходные данные схожи. 2
- Высокая скорость генерации. 2 В отличие от зашифрованных версий файлов, хеши генерируются быстро, даже если входной массив данных большой. 2
Если хеш-функция удовлетворяет всем этим свойствам, она считается криптографической — то есть устойчивой к основным видам хакерских атак. 4