Открыть сервис

Адаптивная криптографическая хеш-функция

Адаптивная криптографическая хеш-функция — это разновидность криптографических хеш-функций, в которой параметры вычислений (например, объём используемой памяти, количество итераций, размер блока данных) могут динамически изменяться в зависимости от контекста применения, требований к безопасности или доступных вычислительных ресурсов. В отличие от классических хеш-функций (таких как SHA-2 или SHA-3), которые имеют фиксированную структуру, адаптивные функции позволяют настраивать сложность вычислений, что делает их особенно полезными для защиты от атак с использованием специализированного оборудования (ASIC, FPGA) и для обеспечения устойчивости к коллизиям в условиях ограниченных ресурсов.

История

Первые упоминания об адаптивных хеш-функциях относятся к началу 2000-х годов, когда рост производительности вычислительных систем и появление специализированных интегральных схем (ASIC) для майнинга криптовалют поставили под сомнение безопасность классических хеш-функций. В 2009 году, с запуском Bitcoin, стала очевидной необходимость в функциях, которые могли бы быть «память-затратными» (memory-hard) — то есть требовать значительного объёма оперативной памяти для вычислений, что затрудняет реализацию на ASIC. В 2013 году была предложена функция scrypt, которая стала первой широко используемой адаптивной хеш-функцией, применяемой в криптовалюте Litecoin. В 2016 году, после уязвимости в алгоритме Argon2, последний был выбран победителем конкурса Password Hashing Competition (PHC) и стал стандартом для адаптивного хеширования паролей. В 2020-х годах адаптивные хеш-функции стали активно применяться в системах аутентификации, блокчейн-технологиях и протоколах доказательства работы (Proof-of-Work, PoW).

Классификация

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

По типу адаптации

  • Параметрические — функции, в которых параметры (например, количество итераций, объём памяти) задаются пользователем или системой в виде входных данных. Пример: Argon2.
  • Динамические — функции, которые автоматически изменяют параметры в зависимости от текущей нагрузки или времени вычисления. Пример: Balloon Hashing.
  • Гибридные — комбинируют оба подхода, позволяя как ручную настройку, так и автоматическую оптимизацию.

По области применения

  • Функции для хеширования паролей — ориентированы на защиту от атак перебором (brute-force) и атак с использованием радужных таблиц. Примеры: bcrypt, scrypt, Argon2.
  • Функции для доказательства работы (PoW) — используются в криптовалютах для майнинга, требуют значительных вычислительных ресурсов и памяти. Примеры: Ethash (используется в Ethereum до перехода на Proof-of-Stake), RandomX (используется в Monero).
  • Функции для генерации ключей — применяются в протоколах шифрования для получения ключей из паролей. Пример: PBKDF2 (хотя он не является полностью адаптивным, но поддерживает настройку количества итераций).

По устойчивости к аппаратным атакам

  • Память-затратные (memory-hard) — требуют значительного объёма оперативной памяти для вычислений, что затрудняет реализацию на ASIC. Примеры: scrypt, Argon2.
  • Время-затратные (time-hard) — требуют большого количества вычислительных операций, но могут быть оптимизированы на ASIC. Пример: PBKDF2.
  • Комбинированные — сочетают оба подхода. Пример: Argon2id (вариант Argon2, устойчивый к атакам как на память, так и на время).

Устройство и характеристики

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

  • Количество итераций (time cost) — определяет, сколько раз выполняется базовая операция. Увеличение этого параметра повышает время вычисления.
  • Объём памяти (memory cost) — задаёт размер используемой оперативной памяти (в килобайтах или мегабайтах). Больший объём памяти затрудняет реализацию на ASIC.
  • Параллелизм (parallelism) — количество независимых потоков вычислений, которые могут выполняться одновременно. Позволяет оптимизировать функцию для многоядерных процессоров.
  • Размер блока (block size) — определяет, сколько данных обрабатывается за один проход. Влияет на скорость и устойчивость к коллизиям.

Пример работы: в функции Argon2 входные данные (пароль, соль, параметры) подаются на вход, после чего выполняется несколько проходов по памяти, где каждый проход включает чтение и запись блоков данных. Результатом является хеш фиксированной длины (например, 256 бит).

Применение

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

Хеширование паролей

Наиболее распространённое применение. В системах аутентификации (например, в операционных системах Linux, в базах данных веб-приложений) пароли хранятся в виде хешей. Адаптивные функции, такие как Argon2 или scrypt, позволяют настраивать сложность вычислений так, чтобы даже при утечке базы данных хешей злоумышленник не мог быстро подобрать пароли с помощью перебора. В 2023 году Национальный институт стандартов и технологий США (NIST) рекомендовал использование Argon2 для хеширования паролей в государственных системах.

Криптовалюты и блокчейн

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

  • Ethereum (до перехода на Proof-of-Stake в 2022 году) использовал алгоритм Ethash, который требовал большого объёма памяти (около 4 ГБ) для вычислений, что делало майнинг на ASIC менее эффективным.
  • Monero использует алгоритм RandomX, который адаптируется к архитектуре процессора, делая майнинг на ASIC практически невозможным.

Генерация ключей шифрования

В протоколах, таких как TLS (Transport Layer Security) и IPsec, адаптивные хеш-функции используются для получения ключей из паролей или мастер-ключей. Например, функция PBKDF2 (Password-Based Key Derivation Function 2) позволяет задавать количество итераций для увеличения времени вычисления ключа.

Системы защиты от спама и DDoS-атак

Адаптивные хеш-функции применяются в протоколах, таких как Hashcash, где клиент должен вычислить хеш с определённым количеством ведущих нулей (доказательство работы), чтобы отправить электронное письмо или выполнить запрос к серверу. Это делает массовую рассылку спама или DDoS-атаки экономически невыгодными.

Примеры адаптивных хеш-функций

НазваниеГод созданияТип адаптацииОсновное применениеПримечания
bcrypt1999Параметрическая (количество итераций)Хеширование паролейИспользует алгоритм Blowfish; устойчив к атакам на ASIC
scrypt2009Параметрическая (объём памяти, итерации)Хеширование паролей, криптовалютыИспользуется в Litecoin; память-затратная
Argon22015Параметрическая (память, итерации, параллелизм)Хеширование паролей, генерация ключейПобедитель PHC; рекомендован NIST
Ethash2014Динамическая (объём памяти)Майнинг EthereumТребует около 4 ГБ памяти; устарел после перехода Ethereum на PoS
RandomX2019Динамическая (адаптация к архитектуре CPU)Майнинг MoneroУстойчив к ASIC; использует случайные инструкции

Критика и ограничения

Несмотря на преимущества, адаптивные криптографические хеш-функции имеют ряд недостатков:

  • Сложность реализации — настройка параметров требует экспертных знаний; неправильный выбор параметров (например, слишком малый объём памяти) может снизить безопасность.
  • Производительность — увеличение сложности вычислений приводит к росту времени обработки, что может быть критично для высоконагруженных систем (например, веб-серверов с миллионами запросов аутентификации).
  • Уязвимости к атакам по времени — некоторые функции (например, ранние версии scrypt) были подвержены атакам, основанным на анализе времени выполнения, что позволяло злоумышленникам восстанавливать параметры.
  • Аппаратная оптимизация — несмотря на память-затратность, для некоторых функций (например, Ethash) были созданы ASIC-майнеры, что снизило их эффективность против специализированного оборудования.

В 2024 году исследователи из Университета Карнеги — Меллон обнаружили, что реализация Argon2 в некоторых библиотеках (например, в libsodium) может быть подвержена атаке с использованием кэш-памяти, что позволяет снизить эффективную стоимость памяти. Разработчики функций продолжают совершенствовать алгоритмы для устранения подобных уязвимостей.

Перспективы развития

С развитием квантовых вычислений и ростом производительности ASIC, адаптивные хеш-функции будут эволюционировать в сторону большей устойчивости к аппаратным атакам. В 2025 году ожидается появление новых стандартов, таких как Argon3 (рабочее название), который будет включать защиту от квантовых атак и адаптацию к гетерогенным вычислительным средам (CPU+GPU+FPGA). Также ведутся исследования в области «самоадаптивных» функций, которые автоматически подбирают параметры на основе анализа вычислительной среды.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →