Форум
USD
USD
EUR
RUB
UAH
KZT
Монеты: 16 185 Биржи: 1410
Рыночная капитализация: $2 262 512 312 584,60
Объём за 24 ч: $122 831 435 843,82
ETH Газ: 4,19 Gwei
Быстро
4,62 Gwei
Стандарт
4,19 Gwei
Медленно
4,19 Gwei
Алгоритм хеширования

Этот механизм получил широкую популярность после запуска майнинга Bitcoin в 2009 году. Однако государственные и коммерческие компании применяют криптошифрование для защиты информации с 1995-го. Алгоритм SHA-256 используется в протоколах TCP/IP/SSL и для проверки подлинности исходного документа. Механизм универсален, прост и устойчив к взлому, поэтому до сих пор популярен, несмотря на появление более современных версий. В статье — о том, как работает алгоритм SHA-256.

В основе криптошифрования лежит технология Меркла-Дамгарда — сообщение любой длины разбивается на 16 частей и перемешивается 64 раза. На выходе получается универсальный идентификатор фиксированного объема. Для шифрования следующего блока используют хеш предыдущего. Изменение хотя бы одного символа делает недействительной всю цепочку.

Что такое SHA-256

Аббревиатура расшифровывается как Secure Hash Algorithm (безопасный алгоритм расчета хеша), а 256 означает количество бит в ключе. В 2023 году это один из наиболее надежных методов защиты информации. С его помощью можно превратить любое значение в уникальный цифровой код фиксированной длины.

Майнинг-пул
Монеты
Расположение
Комиссия
выбор редакции
ViaBTC
4.9
Монеты
Расположение
Asia
Комиссия
2.3%
выбор редакции
EMCD
4.8
Монеты
Биткоин Doge
Расположение
Asia, Europe, США
Комиссия
1.0%
выбор редакции
Trustpool
4.7
Монеты
Расположение
Россия
Комиссия
1.0%
выбор редакции
Lincoin
4.5
Монеты
Биткоин
Расположение
Океания
Комиссия
2.5%

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

Механизм хеширования
Схема работы Secure Hash Algorithm

Сертификация

Алгоритм разработан Агентством национальной безопасности США для защиты государственных документов. Позже было разрешено коммерческое использование семейства криптопротоколов SHA-2. Для этого нужно пройти процедуру сертификации — Cryptographic Module Validation Program (CMVP). Всего к 2023 году ее выполнили более 250 вариаций SHA-2.

Одной из самых популярных выступает разновидность с данными на выходе в виде 256-битного (32 байта) хеша — строчка из 64 букв латинского алфавита и цифр. Алгоритм получил широкую известность благодаря использованию для майнинга Bitcoin. В 2023 году его применяют также для шифрования данных.

Обмен информацией в интернете происходит с помощью протокола HTTP. После получения запроса сервер отправляет данные (картинки, текст, ссылки) в исходном виде. Использовать такое соединение небезопасно — к нему может получить доступ третья сторона (например, интернет-провайдер). Поэтому в 2000 году протокол модернизировали. Зашифрованная версия HTTPS работает так:

  1. Пользователь передает запрос.
  2. Сервер отправляет данные о сертификате SSL/TLS и публичный ключ.
  3. Браузер проверяет информацию и создает на ее основе одноразовый код.
  4. Данные передаются по каналу в зашифрованном виде (на основе идентификатора сервера и онлайн-обозревателя).

Сначала для кодировки использовали алгоритм SHA-1. Но в 2018-2020 годах компании стали переходить на усовершенствованную версию SHA-2. Модернизация систем занимает много времени из-за проблем совместимости.

Особенности

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

  • Работает на основе метода Меркла-Дамгарда. Массив данных делится на 16 блоков, каждый из которых сжимается и перемешивается 64 раза.
  • Идентификатор имеет объем 256 байт.
  • На выходе алгоритм выдает случайный хеш. Не существует другого способа найти верное значение, кроме перебора всех возможных вариантов.
  • Чем больше мощность оборудования, тем выше вероятность получения правильного хеша.

История возникновения алгоритма

Первая версия криптозащиты SHA-1 появилась в 1995 году. Алгоритм применяли для защиты информации военные и гражданские чиновники. В 2002 году АНБ США выпустило усовершенствованную версию — SHA-2. Сначала был выдан патент только для военного использования. Но в 2005-м технологию разрешили применять в коммерческих целях.

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

Криптоанализ хеш-функции

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

  • Коллизии — одинаковый хеш для разных входных данных. От устойчивости зависит достоверность и защита цифровых подписей.
  • Прообраз — нахождение исходного сообщения по хешу. От этого параметра зависит безопасность паролей для аутентификации на серверах.

Программисты со всего мира пытались взломать код SHA-256 с 2003 года. Найти коллизии удалось только в 2008-м. Индийские ученые опубликовали работу с решениями для 22 итераций SHA-256. Разработчики исправили уязвимости. В 2012 году вышла новая, модернизированная версия, основанная на другом принципе.

Несмотря на недостатки, SHA-256 считается надежным протоколом. До появления криптовалют его не получалось взломать. Коллизии встречаются редко, а для подбора хеша нужно иметь производительное вычислительное оборудование. Другие современные алгоритмы (например, Scrypt) основаны на более сложном принципе. Поэтому разработчики не могут создать для них ASIC.

5 главных принципов блокчейна
5 главных принципов блокчейна

Пройди опрос и получи в подарок скидку на торговую комиссию и книгу о криптовалюте

Шаги алгоритма хеширования SHA-256

Hash-функция — это метод кодирования, при котором создаются уникальные отпечатки (цифровые подписи) фиксированной длины. На вход можно подать данные любого объема. Одно из главных свойств хеширования — необратимость. По известному идентификатору нельзя получить исходные данные. Общий принцип работы SHA-256 достаточно простой:

  1. Разбиение входной информации на 64-байтные блоки.
  2. Перемешивание.
  3. Генерирование 256-битного хеша.

Предварительный

Данные должны соответствовать заданному стандарту. Сначала информацию надо подготовить. Для этого:

  1. Сообщение преобразуют в двоичный код. В конец добавляют биты информации. Первый всегда равен единице. Остальное заполняют нулями, пока объем не достигнет 448 бит (512-64).
  2. Добавляют информацию о длине хеш-функции SHA-256. В конец нужно записать 64 бита в виде целого числа (функция big-endian) в двоичном формате.

Инициализирование значения хеша

В алгоритме используют жестко запрограммированные константы (h0-h7). Чтобы их получить, нужно:

  1. Вычислить квадратный корень первых восьми простых чисел.
  2. Взять только начальные 32 бит информации (конец отбрасывается).

Инициализация округленных констант

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

  1. Вычисляют кубический корень из первых натуральных чисел — 64 штуки.
  2. Записывают только начальные 32 бит информации.
Читайте также
Что такое ERC-20

Блокчейн Эфириум создавался как удобная и функциональная платформа для запуска dApps. Цепочка...

Централизованные и децентрализованные финансы

В СССР вся экономическая система находилась под контролем государства. Банки, пенсионный фонд и...

Почему скачет хешрейт при майнинге на пуле

Криптодобытчики обращают внимание на то, что заявленная производительность фермы отличается от...

Цикл фрагментов

Данные разбивают на блоки по 512 бит. Операции выполняются последовательно для каждого из них.

Сообщение состоит из 16 слов (Word) — так называют минимальную единицу длины, равную 32 бит.

Алгоритм шифрования SHA-256 преобразует сообщение любого размера. Для создания финального идентификатора в итерациях цикла нужно изменять значение хеша h0-h7 и активировать функцию для каждого фрагмента.

Схема протокола
Преобразование сообщения

Расписание сообщений

Для кодирования данных нужно создать новый массив. Принцип такой:

  1. Добавить сообщение из шага 1 («Предварительный»).
  2. Каждая запись в массиве — 32-битное слово (наименьшая единица информации Word). К нему нужно добавить еще 48 значений (из нулей). Так получается 64-битный массив данных, в котором закодированная информация есть только в первых значениях.
  3. Полученные числа пропускают через хеш округленных констант. Нужно последовательно применять функцию. В одном раунде пользователь не заметит разницу, но после выполнения полного цикла информация меняется до неузнаваемости.

Сжатие

При первой итерации необходимо установить значение переменных, равное хешу h0-h7. Далее запускается цикл сжатия:

  1. Вычисляют 3 переменные с помощью математических функций.
  2. Значения A-H перемешивают. Некоторые из них получаются путем сложения (A + temp), другие — переопределения (B = C).
  3. Функции применяют к массиву.
  4. Переменные A-H меняют местами.
  5. Цикл повторяется 64 раза.

Изменение окончательных значений

После цикла сжатия протокол выдает конечные переменные A-H. К ним добавляют исходные константы h0-h7 (шаг «Инициализированные значения хеша»). При этом хеш перераспределяют (h0 + a = H0).

Финальный хеш

Значения, полученные на предыдущем шаге, суммируют. Итоговый хеш — H0 + H2…. + H7. Алгоритм хеширования SHA-256 простой — используются несложные логические функции:

  • and — побитовое добавление данных.
  • shr и rots — сдвиг информации на заданное количество бит вправо (обычный или циклический).
  • || — добавление (соединение) строк.
  • + — сложение.

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

В сети биткоина валидный хеш — это значение с 17 нулями в начале массива. Случайно найти его невозможно — это труднее, чем отыскать заданную крупицу песка на Земле. Для взлома нужны вычислительные мощности, превышающие 51% хешрейта пользователей в сети.

Как применяется алгоритм

На выходе функции получается уникальный идентификатор объемом 256 байт. Код используют в майнинге и для защиты данных в ряде областей:

  • Создание цифровых подписей.
  • Проверка подлинности пароля.
  • Контроль целостности данных.

Легко убедиться, что присланная на сервер информация соответствует хешу. Даже добавление пробела в исходном файле изменит идентификатор. Эта технология лежит в основе сертификатов TLS/SSL для сайтов, протокола удаленного доступа к ПК SSH, ПО для подписания документов PGP и других программ.

Какие криптовалюты можно майнить на алгоритме

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

МонетаРыночная капитализация ($)Доступность на CEX
Bitcoin Cash
4,7 млрд
35
Bitcoin SV
686,3 млн
46
DigiByte
134,3 млн
52
Syscoin
83,9 млн
20
Namecoin
23,95 млн
4
Peercoin
10,57 млн
6

Часто задаваемые вопросы

⚡ Чем отличаются алгоритмы хеширования от других методов шифрования?

При использовании AES можно получить исходную информацию, применив ключ. Хеш-функция работает только в одну сторону.

📌 Почему SHS-256 считается надежным, если программисты нашли коллизии?

На практике не удается добиться полного отсутствия одинаковых хешей для разных данных. Алгоритм считается надежным, если число коллизий стремится к теоретическому минимуму.

🔔 Как злоумышленники могут взломать пароли, если расшифровать хеши невозможно?

Учетные данные пользователей на сервере хранятся в виде идентификаторов. Единственный способ получить именную информацию — использовать метод перебора. Хакеры пропускают базу через массив простых, часто используемых ключей. Поэтому стоит устанавливать сложные пароли.

✨ Выгодно ли добывать биткоин на асиках?

Хешрейт сети постоянно растет, поэтому для сохранения рентабельности придется докупать оборудование. Инвестиции принесут прибыль при высоком курсе монеты. Во время коррекции рынка майнеры только покрывают издержки. Поэтому надо предусмотреть варианты событий и заложить в бизнес-план среднюю цену Bitcoin. Опытные майнеры зарабатывают около 20-30% в год.

📢 Как протоколы определяют, что пароль верный, ведь на сервере хранятся только хеши?

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

Ошибка в тексте? Выделите её мышкой и нажмите Ctrl + Enter
Евгений Лукин
Заместитель главного редактора
Комментариев пока нет
Регистрируйтесь, задавайте вопросы и общайтесь!
Форум Crypto.Ru
На нашем форуме вы можете узнать много полезной информации о криптовалютах для новичков и продвинутых пользователей
Открыть форум
Получайте главные новости из мира криптовалюты прямо на почту