PGP Tool

Сравнение · 4 мин. чтения

Argon2id vs PBKDF2 — сравнение одним взглядом

Бок о бок: скорость, стоимость памяти, устойчивость к атакам, поддержка библиотек и что выбрать для нового кода.

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

Бок о бок

  • Год стандартизации: PBKDF2 — 2000. Argon2id — 2015, RFC 9106 в 2021.
  • Параметр затрат: PBKDF2 — только процессорное время. Argon2id — процессорное время и ОЗУ (memory-hard).
  • Ускорение GPU/ASIC относительно CPU: PBKDF2 — 100×–1000×. Argon2id — близко к 1×.
  • Поддержка стандартными библиотеками: PBKDF2 — повсеместная. Argon2id — широкая, но не повсеместная.
  • Стандарт OpenPGP: PBKDF2 — да (S2K). Argon2id — да, начиная с RFC 9580 в 2024.
  • Рекомендуемое использование: PBKDF2 — устаревший. Argon2id — всё новое.

Оба при настройках по умолчанию

PBKDF2-HMAC-SHA256 с 600 000 итерациями: ~250 мс на CPU; ~500 нс на попытку на GPU.

Argon2id с m=65536 KiB, t=3, p=1: ~250 мс на CPU; ~10 мс на попытку на GPU.

Те же затраты для защитника. 5 000 000× затраты для атакующего. В этом и весь смысл перехода.

Когда всё же оставить PBKDF2

  • Чтение устаревшего шифртекста, зашифрованного с PBKDF2.
  • Среды без поддержки WASM.
  • Существующие FIPS-140-3 развёртывания, где Argon2id ещё не сертифицирован.

Во всех остальных случаях побеждает Argon2id. Это приложение использует Argon2id по умолчанию.