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 используется в сети биткоина следующим образом:

Криптовалюты, использующие SHA-256

См. также на BitcoinWiki

Ссылки