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

Простыми словами

Для файла или сообщения вычисляют короткое представление — хеш. Повторное вычисление тем же алгоритмом для тех же байтов даёт тот же результат. Это удобно для сравнения содержимого без передачи всего файла.

Хеш не является уникальным номером для всех возможных данных: совпадения математически возможны. В криптографической задаче важно, насколько трудно найти нужное совпадение. Алгоритм выбирают с учётом назначения и известных ограничений.

Как применяется

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

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

Пример применения

Администратор получает пакет обновления и контрольное значение из независимого доверенного канала поставщика. Он вычисляет хеш полученного файла тем же алгоритмом и сравнивает значения.

Несовпадение означает, что байты отличаются и установку следует остановить до выяснения причины. Совпадение подтверждает соответствие доверенному значению, но не доказывает отсутствие уязвимостей в самом обновлении. Подпись поставщика проверяют отдельно, если она предусмотрена.

Не путать с

  • ШифрованиеПреобразует данные для защиты их содержимого с возможностью предусмотренного расшифрования. Хеширование не является обратимым шифрованием.
  • Цифровая подписьПозволяет проверять связь данных с ключом подписанта. Общедоступный хеш без защищённого эталона не подтверждает отправителя.
  • Контрольная суммаМожет предназначаться для случайных ошибок передачи. При противодействии намеренной подмене нужны подходящие криптографические свойства и доверие к эталону.

Как это работает

  1. Определить задачуВыбирают алгоритм и способ получения доверенного эталона. Для паролей используют специальную схему, а не простое хеширование.
  2. Зафиксировать байтыОпределяют точные входные данные. Различия в кодировке, переводах строк или упаковке меняют результат.
  3. Вычислить дайджестПрименяют выбранный алгоритм к полному входу и сохраняют результат в согласованном формате.
  4. Сопоставить результатСравнивают с ожидаемым значением из доверенного источника. При несовпадении выясняют причину до дальнейшего использования.

Связанные термины

Частые вопросы

Можно ли расшифровать хеш?

У хеш-функции нет штатной операции расшифрования. Однако короткие или предсказуемые входы можно перебирать. Поэтому один хеш не делает слабый пароль защищённым.

Коллизии невозможны у хорошего алгоритма?

Нет. При конечной длине дайджеста совпадения возможны. Требование относится к практической трудности их поиска в рассматриваемой модели угроз.

Совпавший хеш доказывает, что файл безопасен?

Нет. Он подтверждает соответствие контрольному значению. Нужны доверенный эталон и отдельная оценка происхождения и содержимого файла.

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