SHA-256
SHA-256 一 криптографическая хэш-функция, разработанная Агенством национальной безопасности США. SHA расшифровывается как Secure Hash Algorithm. Сама по себе хеш-функция 一 это математическая операция, выполняемая с цифровыми данными. Сравнивая вычисленный «хеш» (результат выполнения алгоритма) с известным и ожидаемым хеш-значением, человек может определить целостность данных. Односторонний хеш может быть сгенерирован из любого фрагмента данных, но данные не могут быть сгенерированы из хеша.
История создания
SHA-256 принадлежит к хэш-функциям SHA-2, ключ которого до сих пор не был скомпроментирован.
Безопасная связь веб-сайтов и веб-сервисов основана на файлах, которые называются сертификаты. Они используются для установки и аутентификации безопасных соединений. Эти сертификаты содержат криптографические элементы, которые генерируются с использованием таких алгоритмов, как SHA-256.
Ранее сертификаты чаще всего создавались с использованием SHA-1 в качестве элементов цифровой подписи, но алгоритм постепенно устарел и перестал быть безопасным. В результате произошел значительный сдвиг в сторону сертификатов с использованием нового алгоритма – SHA-256′.
Первая версия алгоритма SHA-256 была создана Агенством национальной безопасности США весной 2002 года. Спустя некоторое время Национальный метрологический университет опубликовал протокол шифрования в стандарте безопасной обработки данных FUPS PUB 180-2. Этот протокол был принят на федеральном уровне, а спустя два года он был дополнен второй версией алгоритма.
Сам протокол работает с информацией, поделенной на части по 512 бит (64 байта). Принцип работы состоит в микшировании, а его итог 一 256-битный хэш-код. Алгоритм включает в себя довольно простой цикл, который повторяется 64 раза.
Основные характеристики алгоритма:
- индикатор размера блока: 64 байта
- максимально допустимая длина сообщения: 33 байта
- характеристика размера дайджеста сообщения: 32 байта
- стандартный размер слова: 4 байта
- параметр длины внутренней позиции: 32 байта
- количество итераций в одном цикле: 64
- скорость, достигнутая по протоколу: приблизительно 140 Мб/с
Алгоритм SHA-256 основан на методе построения Меркля-Дамгарда, согласно которому начальный индекс делится на блоки сразу после внесения изменений, а те, в свою очередь, на 16 слов.
SHA-256 используется в сети биткоина следующим образом: