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

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

Криптографические хеш-функции

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

Детерминированность – при определенной входной величине каждый раз должен производиться фиксированный объем хешей.

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

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

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

У выходов длина фиксированная и, соответственно, в этом случае количество вариантов ограничено. При этом несколько входов могут произвести одинаковый выход.

Если устойчивость к коллизиям недостаточно высока, могут происходить так называемые атаки «дней рождения». Это атака, в которой математика преобладает над теорией вероятности. Возможно, вы уже слышали о подобных случаях. Самый простой пример иллюстрации таких атак – если в комнате находится 27 человек, есть 50%-ная вероятность того, что у двух присутствующих совпадают дни рождения.

Почему так происходит? На одного человека вероятность составляет 1/365, исходя из количества дней в году. На второго человека приходится такая же вероятность. Для определения вероятности совпадения их дней рождения нужно умножить один показатель на другой.

Итак, получается, что есть 365 дат дней рождения и 365 вероятностей совпадения, и если извлечь корень из этого числа, выходит, что у 23 рандомно выбранных человек вероятность совпадения дат рождения составляет 50%.

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

Что такое хеширование в блокчейне

Биткоин функционирует на базе блокчейна и использует алгоритм хеширования SHA-256 (алгоритм криптографического хеширования 256). С его помощью любой объем информации можно преобразовать в строку из 64 символов.

Хеширование онлайн через алгоритм SHA-256

В случае с биткоином хеш-функции выполняют три основные задачи:

  • Майнинг – майнеры конкурируют за решение задач. Каждый майнер берет информацию из блоков, о которых они уже знают и выстраивают из них новый блок. Если на выходе алгоритм выдает значение, меньшее целевой цифры, оно считается действительным и может быть принято остальными участниками сети. Таким образом, майнер получает право на создание следующего блока.
  • Соединение блоков – в целях дополнительной безопасности. Каждый блок в блокчейне связан с предыдущим, что достигается посредством хеш-указателя (переменные, хранящие адрес другой переменной).  По сути, каждый блок содержит результат хеширования от предыдущего блока в блокчейне. Благодаря этой функции можно легко отслеживать историю в блокчейне и исключить вероятность добавления вредоносного блока в сеть.
  • Создание ключей – чтобы отправить или получить криптовалюту необходимы частный и публичный ключи. Оба ключа связаны друг с другом через хеш-функцию. Это неотъемлемый компонент, который исключает получение вашего частного ключа третьими лицами.

Почему это важно

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

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

Предлагаем продолжить обсуждение этой темы в нашем Telegram-канале.