Криптографическая хеш-функция


Криптографическая хеш-функция ( CHF ) — это математический алгоритм , который отображает данные произвольного размера (часто называемые «сообщением») в битовый массив фиксированного размера (« хеш-значение », «хэш» или «дайджест сообщения») . ). Это односторонняя функция , то есть функция, для которой практически невозможно инвертировать или реверсировать вычисление. [1] В идеале, единственный способ найти сообщение, которое производит заданный хеш, — это попытаться перебрать возможные входные данные, чтобы увидеть, дают ли они совпадение, или использовать радужную таблицу .совпавших хэшей. Криптографические хэш-функции являются основным инструментом современной криптографии.

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

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

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

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

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


Криптографическая хеш-функция (в частности, SHA-1 ) в действии. Небольшое изменение на входе (в слове «сверх») кардинально меняет выход (дайджест). Это так называемый лавинный эффект .
Хэш-конструкция Меркла – Дамгарда