Агентство национальной безопасности США (NSA) разработало как алгоритм SHA-256, так и ряду других криптографических хэш-функций SHA-2. Сами эти инициалы означают Secure Hash Algorithm — безопасный хэш-алгоритм. Криптографическая хэш-функция — это математическая операция, позволяющая обработать цифровые данные. Результат работы алгоритма называется «хэш». Сравнение хэша с известным и ожидаемым значением позволяет выяснить, вносились ли в исходные данные какие-либо изменения или же нет. Вы можете сгенерировать односторонний хэш из любых данных, но вы не сможете получить исходные данные обратно путем манипуляций с хэшем.
История
Алгоритм SHA-256, ранее известный как SHA-2, действительно является более продвинутой и совершенной версией алгоритма SHA-1. Расшифровать его немногим сложнее, чем SHA-1, но его сила в 256-битном ключе шифрования, который пока что так никому и не удалось взломать.
Сайты и веб-сервисы могут безопасно обмениваться друг с другом данными с помощью специальных файлов — так называемых «сертификатов», с помощью которых создаются и проверяются безопасные подключения. Такие сертификаты включают в себя криптографические элементы, созданные с помощью алгоритма SHA-256 (и ряда других).
В прошлом сертификаты создавались на основе алгоритма SHA-1, представляя собой скорее цифровые подписи. Впрочем, с течением времени надежность этого алгоритма была скомпрометирована, и мало кто всерьез ему доверял. Как следствие, многие пользователи перешли на более безопасный класс сертификатов, созданных на основе нового алгоритма SHA-256.
Переход на SHA-2
Отрасль SSL-сертификатов перешла на алгоритм SHA-2 в 2016 году. Из-за этого авторитетным и уважаемым организациям, занимающимся выдачей сертификатов, пришлось заменить тысячи сертификатов и выпустить множество крупных обновлений программного обеспечения.
Новые сертификаты необходимо было выпустить не позднее 31 декабря 2015 года. Интернет-сектор, соответственно, должен был перейти на новый формат к этой дате, но, разумеется, процесс прошел не без ошибок и сложностей.
Большинство сертификатов Sha-1 исчезли в течение нескольких следующих лет. Так, в августе 2017существовало еще порядка 500 000 таких сертификатов.
Шифрование SHA-3 — новый большой шаг вперед
Считается, что с течением времени кибератаки будут становиться все более и более мощными. Это логично, ведь вычислительные ресурсы становятся дешевле и, как следствие, доступнее. Отсюда можно сделать единственно верный вывод о том, что цифровые подписи, обеспечивающие адекватную защиту сейчас, перестанут справляться с угрозами завтрашнего дня. Иными словами, однажды алгоритм SHA-2 безнадежно устареет.
Вот почему как никогда важно стало выбирать походящий алгоритм шифрования. Полумер будет недостаточно, ясно и однозначно. Фактически, на сегодняшний день сложилась такая ситуация, что ни один хэширующий алгоритм не сохраняет актуальность более 10 лет. Вот почему криптографы уже начали работу над алгоритмом SHA-3, который должен прийти на замену SHA-2. И когда настанет время перейти на более безопасный и защищенный стандарт, SHA-3 будет готов к работе.
Создание нового стандарта качества криптографической защиты требует многих лет исследований и проверок. Лишь затем можно приступать к разработке программного обеспечения, использующего новый алгоритм. Мы должны опережать кибер-преступников, чтобы вывести уровень защиты алгоритма будущего на качественно новый уровень.
Bitcoin и алгоритм SHA-256
Весной 2002 года Агентство национальной безопасности США представило первую версию алгоритма SHA-256. Уже через несколько месяцев ученые из Национального метрологического университета опубликовали этот новый протокол шифрования. После этого стандарт безопасной обработки данных FIPS PUB 180-2 был принят на федеральном уровне. В конце 2004 года свет увидела вторая версия алгоритма.
Спустя еще три года Агентство национальной безопасности США сделало доступным алгоритм SHA второго поколения для использования по модели Royalty-free, не предусматривающей лицензионных отчислений разработчикам, что и позволило данной технологии переместиться в гражданский сектор.
Этот протокол работает с данными, разделенными на фрагменты размером в 512 бит/64 байт (что одно и то же). После криптографической обработки, повторяющейся в общей сложности 64 раза, алгоритм генерирует 256-битный хэш-код.
Кроме того, алгоритм SHA-256 отличается следующими техническими параметрами:
-
Индикатор размера блока (байт): 64.
-
Максимальная длина сообщения (байт): 33.
-
Размер дайджеста сообщения (байт): 32.
-
Стандартный размер слова (байт): 4.
-
Параметр длины внутренней позиции (байт): 32.
-
Количество итерация в рамках одного цикла: 64.
-
Скорость протокола (МБ/с): около 140.
Алгоритм SHA-256 опирается на метод построения структур Меркла — Дамгора, который предусматривает, что начальный индекс будет разделен на блоки длиной в 16 слов сразу же, как только изменение будет сделано.
В сети Bitcoin алгоритм SHA-256 используется для доказательства выполнения работы и повышения защищенности и конфиденциальности биткоин-адресов пользователей.