Наверх
Изображение - Алгоритм хеширования SHA-256 простыми словами

Алгоритм хеширования SHA-256 простыми словами

05.11.2018 | Автор: Евгений Наумов

Известно, что криптовалюты генерируются путем майнинга, он же является основным моментом в создании защиты сети блокчейн. Майнинг криптовалют основан на использовании алгоритма хеширования SHA-2. Благодаря этому алгоритму производится добыча основной криптовалюты Bitcoin и обеспечивается его безопасность. SHA-2 также используется для майнинга альткоинов: Bitcoin Cash, Bitcoin Gold, Litecoin Cash, Auroracoin и других. На алгоритме SHA-2 базируются некоторые протоколы передачи защищенной информации, TLS, SSH, PGP, в том числе протоколы TCP/IP для передачи данных в Интернете.

sha-256.jpg

Алгоритм безопасного хеширования SHA-2 (Secure Hash Algorithm Version 2) представляет собой совокупность криптографических хеш-функций, направленных на шифрование информации с целью ее защиты. Одной из хеш-функций алгоритма SHA-2 является SHA-256, которая используется для майнинга криптовалют. 

Как и любая хеш-функция, SHA-256 представляет собой часть программного кода, которая преобразует входящую информацию в последовательность определенной длины, состоящую из букв и цифр. Этот процесс преобразования называется хешированием (от англ. hashing – рубить, запутывать).

Особенности протокола SHA-256

Хеш-функция алгоритма SHA-2 основана на структуре Меркла-Дамгарда, которая названа в честь ее создателей. Метод построения криптографической хеш-функции заключается в разбиении входной информации на блоки одинакового размера, а каждого блока на шестнадцатеричное число, с которым можно выполнять математические действия. Применив к ним хеш-функцию, в результате 64 или 80 итераций (повторяющейся обработки данных), на выходе получаем хеш-сумму - последовательность заданной длины из букв и цифр, именуемую также хешем, образом, слепком, хеш-кодом.

 Последующий блок, согласно применяемому методу, начинает обрабатываться только после получения выхода предыдущего. И если во входящую информацию внести самое незначительное изменение, хеш уже будет не тот. При одинаковых значениях хеш-функции в разных блоках информации может возникнуть коллизия (конфликт в работе  хеш-функции). Поскольку хеш-функции в процессе добычи криптовалют подтверждают неизменность входящей информации, то в случае быстрого нахождения коллизии сразу же дискредитируется надежность и безопасность всей сети блокчейн. К примеру, цифровая подпись создается с помощью хеш-функции. В случае обнаружения коллизии эту подпись можно подделать. Для вычисления коллизии применяется метод вычислительной сложности полный перебор, который повышает криптостойкость хеш-функции и пока считается самым быстрым.

Чистоту работы алгоритма, т.е. его работу без коллизий, определяет четыре нормативных требования:

1.   При изменении входящей информации хеш-сумма должна измениться.

2.   В процессе хеширования необходимо получить уникальную хеш-сумму.

3.   Хеши должны быть необратимы, т.е. можно работать с входящей информацией, но нельзя выполнить обратный процесс.

4.   Должна быть максимально усложнена генерация ключа с помощью хеширования.

Каждый узел одноранговой сети криптовалюты должен «выловить» из транзакций в сети интересующую его (прежде всего, суммой комиссионных) транзакцию, и провести ее верификацию: проверить вход, выход и подлинность электронной подписи. Затем начать формировать блок заданной емкости, для Bitcoin - 1Мб. Кроме версии и времени создания блок включает хеш входящих в него транзакций, хеш предыдущего блока, nonce и bits – специальные параметры, которые выражают условие для создания уникального хеша. Вместе они подвергаются многократному хешированию и генерируют хеш заглавия формируемого блока, который станет его выходом, а для последующего блока входом.

Представим, что в начале хеша должно быть определенное количество нулей, например, nonce =18. Найти такой хеш невероятно сложно, используя метод перебора. Но это-то как раз и гарантирует защищенность информации в сети блокчейн.  Для генерации хеша блока потребуется просто гигантское количество переборов чисел. Но как только число найдено, оно передается по узлам сети вместе с готовым блоком и полученным хешем с 18 нулями. Каждый участник сети проверяет хеш, склеивая число с данными из блока. Если протокол Proof of Work реализован, блок устанавливается в конце самой длинной ветки блокчейна.

В 2003 году протокол впервые попал под прожектор внимания специалистов. Его исследованием были заняты команды разработчиков по всему миру. Основным вектором работы был поиск уязвимостей, однако вплоть до 2008 года никто не мог обнаружить ни одной проблемы. Впервые сделать прорыв удалось специалистам из Индии. В ходе их исследований было выявлено 22 уязвимости, для которых впоследствии были предложены варианты решения.

Технические данные SHA-256


  • Размер блока в байтах – 64.

  • Максимальная длина сообщения в байтах – 33.

  • Дайджест сообщений в байтах – 32.

  • Размер слова из расчета в байтах – 4.  

  • Внутреннее положение (длина) в байтах – 32.

  • Максимальное число итераций из расчета за один цикл – 64.

  • Удельная скорость протокола (MiB/s) ≈ 140.

Метод работы алгоритма SHA-256 подразумевает деление начального показателя после внесения в него каких-либо коррективов на блоки. Последние, в дальнейшем, претерпевают деление на 16 слов.

Битовые операции протокола представлены следующим образом:

  • and — смысловое значение «и»;

  • shr — отображает перемещение выбранного значения на заданное количество бит вправо;

  • rots — основным значением является принудительный циклический сдвиг;

  • ||  - позволяет соединять линейные структуры (основным элементов, на которое оказывается воздействие, являются строки);

  • xor — значение, ввод которого устраняет команду «или»;

  • + — стандартное соединение значений (прибавление).

Представленный набор операций можно назвать стандартным – в нем отсутствуют какие-либо особенные функции, которые бы выделялись из общего числа.

Важно! Высокий уровень изученности алгоритма стал опорой для его продвижения в программировании. Доказательством доверия является официальное разрешение со стороны правительства США на применение SHA-256 в качестве алгоритма для защиты информации.

Для его работы, в противовес алгоритму Scrypt, требуется меньше вычислительной мощности. Однако SHA-256 представляется чрезмерно простым для обхода со стороны асиков. Соответственно, алгоритм является прямой угрозой децентрализации криптовалют. На фоне представленных данных, Scrypt выглядит более современным и эффективным решением.

Подводим итоги

Таким образом, вполне вероятно, что Scrypt и прочие более современные алгоритмы в ближайшем будущем смогут потеснить SHA-256, который занимает более трети от общего рыночного объема на данный момент. Уже много криптовалют используют для майнинга Scrypt или Ethash


Поделитесь в социальных сетях! Мы будем рады :)

Для того, чтобы оставить комментарий, необходимо авторизоваться или зарегистрироваться.