Bits.media logo

Русскоязычный информационный сайт о криптовалюте Bitcoin


Baikal miners

Семейство криптографических алгоритмов SHA-2

Эта статья расскажет новичкам в криптовалютах, ИТ и криптографии о том, как появились и как работают механизмы, которые защищают сеть Bitcoin от взлома и обеспечивают целостность и уникальность транзакций, передающих биткойны между пользователями сети.  Специалисты, вероятно, не найдут в ней ничего нового.

SSL logo

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

Из множества алгоритмов самыми распространенными являются хэш-функции. Они необходимы для «сжатия» информации в образы, которые представляют собой битовые комбинации фиксированной длины. Хэш-функции семейства SHA-2 пользуются высокой популярностью в приложениях, связанных с систематизацией, поиском и защитой информации.

SHA2 безопаснее SHA1

SHA-2 – это аббревиатура от Secure Hash Algorithm version 2 – или, по-русски, безопасный алгоритм хэширования. Цифра «2» означает вторую версию стандарта. Существует и первая версия - SHA-1. Она была разработана в 1995 году, а в 2002-м включена в SHA-2. Оба стандарта созданы Агентством Национальной Безопасности США и предназначены для общественного использования: SHA-2 выпущен под лицензией Royalty Free, которая не предполагает авторских отчислений создателю.

В 2012 году под эгидой Национального института стандартов и технологий США разработана новая версия алгоритма - SHA-3. Ожидается, что в ближайшие годы она заменит стандарты первой и второй версий.

Любая информация может иметь… «отпечатки пальцев»

Главная задача хэш-функций – получение кратких сведений о файле, сообщении или блоке данных. На языке специалистов такие сведения называются «отпечатками пальцев» (fingerprints), поскольку образ любой информации уникален. Как на Земле нет двух людей, чьи отпечатки пальцев совпадают, так и в системе не должно быть ни одного файла, сведения о котором совпадали бы со сведениями о другом файле. То же касается и сообщений, и блоков данных. Конечно, бывают исключения, но о них мы поговорим ниже.

Пользуясь уникальностью «отпечатков» можно не только осуществлять поиск нужной информации, но и выполнять множество других операций. Любой образ, созданный хэш-функциями SHA-2, является неповторимым идентификатором массива информации и содержит краткие сведения о нем.

Создание образов с помощью функций SHA-2

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

Сформированный хэш-функцией код имеет фиксированную длину, независимо от размера входной информации. Размер полученных образов варьируется в диапазоне от 30 до 512 бит.

Надежная хэш-функция обладает двумя качествами:

  • быстро вычисляется и очень долго расшифровывается без наличия ключей; 
  • минимизирует риск появления коллизий.

Коллизии – это одинаковые образы, возникающие из-за обработки одинаковых входных блоков данных. Для борьбы с коллизиями разработаны специальные методы. Например, при работе с хэш-таблицами применяются методы открытой адресации либо прямого связывания. Если же стоит задача защитить от фальсификации пароли и электронные подписи, применяется метод «криптографической соли», когда в создании хэша участвует свободно изменяемая последовательность битов. Он используется в том числе и в криптовалютах.

Важно, чтобы содержимое образа менялось вслед за оригиналом. Это является первым и главным требованием к хэш-функциям любых семейств. Если изменения не будут отслеживаться, то образ перестанет соответствовать оригиналу, и работа  с данными окажется невозможной.

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

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

Четвертое требование – невозможность подделки: необходимо, чтобы подбор сообщения с правильным значением образа обладал высокой сложностью. Если значение одного из сообщений все же станет достоверно известным, то подбор остальных сообщений  должен быть максимально сложен.

SHA-2 и криптовалюты

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

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


Все материалы с данного сайта Вы можете свободно копировать с указанием на источник - bits.media
Любые пожелания, предложения, материалы и т.п. Вы можете присылать на адрес admin@bits.media
Адрес для добровольных пожертвований на развитие - 1BQ9qza7fn9snSCyJQB3ZcN46biBtkt4ee (QR)