Secure Hash Algorithm (SHA) – это семейство криптографических хеш-функций, разработанных для обеспечения целостности и безопасности данных․ Эти алгоритмы преобразуют входные данные (сообщение) в строку фиксированной длины, называемую хеш-значением или message digest․
Что такое хеш-функция?
Содержание статьи:
Хеш-функция – это алгоритм, который принимает данные произвольной длины и возвращает хеш фиксированной длины; Ключевые свойства хеш-функции включают:
- Детерминированность: Для одного и того же входного сообщения всегда получается один и тот же хеш․
- Односторонность: Практически невозможно восстановить исходное сообщение из хеш-значения․
- Устойчивость к коллизиям: Чрезвычайно сложно найти два разных сообщения, которые производят одинаковый хеш․
Семейство алгоритмов SHA
Семейство SHA включает несколько алгоритмов, разработанных Национальным институтом стандартов и технологий (NIST):
- SHA-0: Первоначальная версия, выпущенная в 1993 году, вскоре была отозвана из-за недостатков․
- SHA-1: Производит 160-битное хеш-значение․ Больше не считается безопасным из-за обнаруженных уязвимостей․
- SHA-2: Включает SHA-224, SHA-256, SHA-384 и SHA-512, производящие хеши соответственно 224, 256, 384 и 512 битов․ Более безопасен, чем SHA-1․
- SHA-3: Новейшая версия, использующая совершенно другой подход (Keccak)․ Предлагает значительные улучшения в безопасности и производительности․
Применение SHA
SHA алгоритмы широко используются в различных приложениях, включая:
- Цифровые подписи: Для проверки подлинности и целостности электронных документов․
- Проверка целостности файлов: Для обнаружения изменений в файлах после их создания․ Хеш-значение файла сравнивается с ранее сохраненным хешем․
- Хранение паролей: Вместо хранения паролей в открытом виде, хранятся их хеш-значения․
- Криптовалюты: SHA-256 используется в Bitcoin для защиты транзакций․
- Проверка целостности данных при передаче по сети: Сравнение хешей до и после передачи для обнаружения искажений․
Безопасность SHA
Выбор SHA алгоритма зависит от требуемого уровня безопасности․ SHA-1 считается устаревшим и уязвимым․ SHA-2 и SHA-3 предоставляют более высокий уровень безопасности․ Регулярно появляются новые исследования и рекомендации по выбору наиболее подходящего алгоритма․