Хэш-функция
Хэш-функция — это алгоритм, преобразующий входные данные произвольной длины (сообщение, файл, пароль) в строку фиксированной длины, называемую хэшом или хэш-значением. Это односторонняя функция: из хэша невозможно восстановить исходные данные.
Основные свойства хэш-функций:
- Определённость — одинаковый ввод всегда даёт одинаковый результат.
- Быстродействие — вычисление должно быть быстрым даже при больших объёмах данных.
- Односторонность — по хэшу невозможно восстановить оригинал.
- Устойчивость к коллизиям — вероятность получения одинаковых хэшей для разных данных крайне мала.
- Чувствительность к изменениям — даже одно изменённое слово даёт совершенно другой хэш.
Применение:
- Хранение паролей — сохраняется только хэш пароля, а не сам пароль.
- Целостность данных — проверка, что файл или сообщение не были изменены.
- Цифровые подписи — создание подписи производится от хэша, а не от всего текста.
- Функции поиска и индексации — использование хэшей в структурах данных (например, хеш-таблицы).
Примеры алгоритмов:
- MD5 — устаревший, но по-прежнему встречающийся алгоритм, разработан в США.
- SHA-256 — современный и безопасный стандарт США.
- ГОСТ Р 34.11-2012 — российский алгоритм хэширования.
- СТБ 34.101.77-2016 – белорусский алгоритм хэширования Bash.
Хэш-функции лежат в основе практически всех криптографических и аутентификационных процессов.