BTC
3435.5
ETH
88.860
LTC
23.802
CFI
0.0233
EOS
1.8700
REQ
0.0269
XMR
43.396
XRP
0.3027
Yobit
hashflare.io
YoBit.Net
http://change.msk.ru

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

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

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

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

Из множества алгоритмов самыми распространенными являются хэш-функции. Они необходимы для «сжатия» информации в образы, которые представляют собой битовые комбинации фиксированной длины. Хэш-функции семейства 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 называется майнингом, так как создающие блоки устройства не только обеспечивают работу системы, но и получают в награду биткойны.


Показать комментарии Обсудить на форуме

Подписывайтесь на новости и их анализ в нашем Telegram канале!

Калькулятор Bitcoin
Скорость, GH/s:
Сложность:
Курс BTC/USD:
Курс BTC/RUB:
в день в неделю в месяц
BTC
0.000045
0.000312
0.00134
USD
0.15040
1.0528
4.5119
RUB
9.9625
69.737
298.87
Расширенный калькулятор
konvert.im
YoBit.Net
Курсы криптовалют
Обновить
Статистика сети
Текущая сложность: 5646403851535
Следующая сложность: 5132446755107 (-9.1%)
Блоков до пересчета: 996
Цена шары (PPS): 0.0000000000
Мощность сети (Th/s): 36739484.94
Блоков в сети: 553404
Блоков в час: 5.45
Блоков за последний час: 4
До 6.25 BTC/блок: 585.6 дней
(76596 блоков)
Лучше взять и изобрести завтрашний день, чем переживать о том, что вчерашний был так себе
Стив Джобс