Хеш-функции, шифры и рекомендуемые длины ключей

Справочная таблица криптографических алгоритмов: размер выхода и стойкость хеш-функций MD5, SHA-1, SHA-256, SHA-512, SHA-3, BLAKE2, ГОСТ Р 34.11-2012; параметры блочных и потоковых шифров (AES, DES, 3DES, ChaCha20, Кузнечик, Магма); сопоставимая стойкость ключей RSA, Диффи — Хеллмана, эллиптических кривых и симметричных шифров; функции хеширования паролей и режимы шифрования.

Рекламный блок «после калькулятора» (ads/after-calc.html)

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

Хеш-функции

АлгоритмДлина хеша, битСтойкость к коллизиямСтатус
MD5128взломана (коллизии за секунды)только для контрольных сумм от случайных ошибок
SHA-1160взломана (практическая коллизия в 2017 г.)не использовать для подписи и сертификатов
SHA-224224112 битдопустима
SHA-256256128 битосновной стандарт (TLS, биткоин, подписи)
SHA-384, SHA-512384, 512192, 256 битнадёжны; SHA-512 быстрее SHA-256 на 64-битных процессорах
SHA3-256, SHA3-512256, 512128, 256 битнадёжны, другая конструкция (губка Keccak)
BLAKE2b, BLAKE2s, BLAKE3до 512, до 256, 256до 256 битнадёжны и очень быстры
ГОСТ Р 34.11-2012 «Стрибог»256, 512128, 256 битроссийский стандарт

Стойкость к коллизиям вдвое меньше длины хеша из-за «парадокса дней рождения»: чтобы найти два сообщения с одинаковым n-битным хешем, достаточно перебрать около 2n/2 вариантов. Стойкость к поиску прообраза (подбору сообщения под заданный хеш) — полная, 2n. Посчитать хеши строки или файла можно в хеш-калькуляторе.

Рекламный блок «внутри статьи» (ads/in-article.html)

Симметричные шифры

ШифрТипБлок, битКлюч, битСтатус
DESблочный6456взломан полным перебором, не использовать
3DES (TDEA)блочный64168 (стойкость 112)выводится из употребления: малый блок
AESблочный128128, 192, 256основной мировой стандарт, аппаратное ускорение в процессорах
Кузнечик (ГОСТ Р 34.12-2015)блочный128256российский стандарт
Магма (ГОСТ 28147-89, ГОСТ Р 34.12-2015)блочный64256российский стандарт, малый блок
ChaCha20потоковый—256надёжен, быстр без аппаратного ускорения (TLS, WireGuard)
RC4потоковый—40–2048смещения в выходе, запрещён в TLS

Шифр с 64-битным блоком нельзя использовать для шифрования больших объёмов данных одним ключом: после примерно 2³² блоков (32 ГБ) появляются повторы, позволяющие извлечь информацию. Блочный шифр всегда применяют в каком-либо режиме: современные рекомендации — режимы с аутентификацией GCM, CCM или связка ChaCha20-Poly1305. Режим ECB (каждый блок шифруется отдельно) не скрывает повторяющиеся фрагменты и для данных непригоден.

Сопоставимая стойкость ключей

Асимметричным алгоритмам для той же стойкости нужны гораздо более длинные ключи. Ориентировочное соответствие (по рекомендациям NIST SP 800-57):

Стойкость, битСимметричный шифрRSA, Диффи — Хеллман (модуль)Эллиптические кривыеХеш
802TDEA1024160SHA-1 (только прообраз)
1123DES2048224SHA-224
128AES-1283072256 (P-256, Curve25519)SHA-256
192AES-1927680384SHA-384
256AES-25615360512 (P-521)SHA-512

Ключи RSA длиной 1024 бита считаются недостаточными; минимум для новых систем — 2048 бит, для долгосрочной защиты — 3072 и больше. Как устроены RSA и обмен ключами Диффи — Хеллмана, можно посмотреть по шагам на учебных числах в калькуляторах RSA и Диффи — Хеллмана.

Квантовые компьютеры

Алгоритм Шора на достаточно мощном квантовом компьютере взламывает RSA, Диффи — Хеллмана и эллиптические кривые за полиномиальное время, поэтому для них разрабатываются постквантовые замены (ML-KEM, ML-DSA, SLH-DSA, стандартизированные NIST в 2024 году). Алгоритм Гровера лишь вдвое уменьшает стойкость симметричных шифров и хешей в битах, поэтому AES-256 и SHA-384/512 считаются устойчивыми и в квантовую эпоху.

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

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

ФункцияОсобенности
Argon2idпобедитель конкурса Password Hashing Competition (2015), настраиваемые время и объём памяти — рекомендуемый выбор
scryptтребует много памяти, что затрудняет перебор на видеокартах и ASIC
bcryptпроверенная временем, параметр стоимости (cost) 10–12 и выше; длина пароля ограничена 72 байтами
PBKDF2многократное применение HMAC; требует сотен тысяч итераций, плохо защищает от перебора на GPU

Время перебора паролей разной длины и состава оценивает калькулятор проверки стойкости пароля.

Рекламный блок «внизу страницы» (ads/bottom.html)