Симметричное шифрование — вид шифрования, при котором один и тот же секретный ключ используется и для зашифрования, и для расшифрования данных, поэтому отправитель и получатель должны заранее договориться об этом ключе.
Как работает симметричное шифрование
Симметричный алгоритм принимает открытый текст и секретный ключ шифрования и выдаёт шифртекст, который превратить обратно в открытый текст может только владелец того же ключа. Выделяют два основных семейства:
- Блочные шифры шифруют блоки данных фиксированного размера. Главный пример — стандарт AES; его предшественник DES с 56-битным ключом был публично взломан полным перебором в 1998 году с помощью машины EFF Deep Crack.
- Потоковые шифры комбинируют данные с псевдослучайной гаммой. Сегодня широко применяется ChaCha20, а RC4 оказался слабым и был запрещён в TLS документом RFC 7465.
Блочные шифры используются в режимах работы, например GCM, которые обеспечивают аутентифицированное шифрование: они не только скрывают содержимое, но и выявляют его подмену.
Почему это важно
Симметричные алгоритмы быстрые и часто ускоряются аппаратно, поэтому защищают практически все объёмные данные: TLS-сессии, VPN-туннели, трафик Wi-Fi, полнодисковое шифрование и зашифрованные резервные копии. Их слабое место — распределение ключей: обеим сторонам нужен один ключ, и его не должен узнать посторонний. На практике задачу решает криптография с открытым ключом, с помощью которой согласуют или защищают симметричный сеансовый ключ (гибридное шифрование).
Злоумышленники пользуются той же технологией: программа-вымогатель WannaCry (2017) шифровала файлы алгоритмом AES, а ключи AES защищала с помощью RSA, поэтому без закрытого ключа преступников жертвы не могли восстановить данные.
Рекомендации
- Использовать современные аутентифицированные алгоритмы — AES-GCM или ChaCha20-Poly1305 — из проверенных библиотек.
- Никогда не использовать nonce повторно с тем же ключом и не прописывать ключи в исходном коде.
- Выбирать 256-битные ключи для долгосрочной защиты, в том числе от будущих квантовых атак.
- Хранить ключи в аппаратных модулях безопасности (HSM), TPM или специализированных сервисах управления ключами.