Хеш-функция

Понятие и роль хеш-функции

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

В качестве исходных данных может служить сколь угодно большая последовательность букв и цифр. Результат хеширования всегда будет иметь неизменную длину. По сути, хеш-функция представляет собой калькулятор, по сложной формуле вычисляющий сумму всех исходных данных. Ее можно уподобить некоему черному ящику, используемому для шифрования информации. Неподготовленному человеку может показаться невероятным, чтобы практически бесконечное число символов можно было преобразовать в уникальную строку, которая состоит всего из нескольких сотен бит. Однако именно это делают хеш-функции. Используя данную технологию, можно преобразовать целый толстый том в одну строку из 64 символов. Получить исходные данные из результата вычислений невозможно. Но если знать алгоритм вычисления, то на основе одних и тех же исходных данных путем повторных расчетов всегда будет получен одинаковый хеш. Хеширование используется в криптовалютах и в любых блокчейнах. Именно оно обеспечивает защиту блокчейнов, сохранность денежных средств и возможность осуществлять обменные операции между владельцами криптовалют.

Разновидности хеш-функций

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

  • CRC – контрольная сумма. Эта хеш-функция отличается простотой и имеет множество вариантов в зависимости от требуемой выходной длины дайджеста сообщения. Однако ввиду ее простоты она не относится к криптографическим.
  • MD5 – весьма популярная криптографическая функция свертки. Длина хеша равна 128 бит.
  • SHA-1 – также весьма распространенная криптографическая функция свертки. Длина дайджеста сообщения равна 160 бит.
  • ГОСТ Р 34.11-94 – российский криптографический стандарт хеширования. Длина дайджеста сообщения составляет 256 бит.

Любая хеш-функция должна отвечать следующим требованиям:

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

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

Основные требования к криптографическим хеш-функциям

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

  • Необратимость. Это означает, что для определенного значения функции свертки k должно быть невозможно вычислить блок данных Y, для которого H(Y) = k.
  • Устойчивость к коллизиям первого рода. Это значит, что для заданного сообщения M нельзя путем вычислений найти другое сообщение K, для которого H(K) = H(M).
  • Устойчивость к коллизиям второго рода. Под эти понимается невозможность путем вычислений найти пару сообщений (M, M') с одинаковым дайджестом сообщения.

Указанные требования являются зависимыми друг от друга:

  • Функция свертки, не обладающая устойчивостью к коллизиям первого рода, также не обладает устойчивостью к коллизиям второго рода; противоположное неверно.
  • Обратимая функция свертки не обладает устойчивостью к коллизиям первого и второго рода.

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

  • хеш-функция
  • понятие хеш-функции
  • роль хеш-функции
  • разновидности хеш-функций
  • требования к криптографическим хеш-функциям
X

Комментарии (0)

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