Mastodon Mastodon Mastodon Mastodon

Симметричное шифрование

Обновлено: · CyberSecureFox Editorial Team

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

Как работает симметричное шифрование

Симметричный алгоритм принимает открытый текст и секретный ключ шифрования и выдаёт шифртекст, который превратить обратно в открытый текст может только владелец того же ключа. Выделяют два основных семейства:

  • Блочные шифры шифруют блоки данных фиксированного размера. Главный пример — стандарт 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 или специализированных сервисах управления ключами.
Синонимы:
симметричная криптография, шифрование с симметричным ключом, symmetric encryption