AES — стандарт симметричного шифрования 128/256 бит | Глоссарий FREEHOSTING

AES

Advanced Encryption Standard
AES — AES (Advanced Encryption Standard) — симметричный блочный шифр с длиной ключа 128, 192 или 256 бит. Принят NIST в 2001 году как замена DES. Используется в TLS, дисковом шифровании, VPN и архивах.

Определение простыми словами

AES — это «сейф с одним ключом»: тот же ключ, которым данные зашифровали, нужен и для расшифровки. В отличие от RSA, асимметрии нет — поэтому AES быстро работает на больших объёмах и реализован аппаратно во всех современных процессорах через инструкции AES-NI.

Стандарт основан на алгоритме Rijndael и блоке размером 128 бит. Для длинных сообщений применяется один из режимов: CBC, CTR, GCM. На практике предпочитают AES-256-GCM — он совмещает шифрование и аутентификацию данных. На VPS с современными CPU AES работает аппаратно через инструкции AES-NI.

Сравнение режимов и алгоритмов

Алгоритм / режим Особенности Где используется
AES-128-GCM Быстрое шифрование с проверкой целостности, короткий ключ HTTPS, мобильные клиенты
AES-256-GCM Максимальный запас прочности, аппаратная поддержка Бэкапы, VPN, диски
AES-256-CBC Старый режим, требует отдельного HMAC, без AEAD Совместимость со старым ПО
ChaCha20-Poly1305 Софтверная альтернатива без AES-NI Мобильные устройства, OpenSSH

Кейсы использования

  • Шифрование канала в TLS 1.3 — после рукопожатия трафик идёт через AES-GCM.
  • Полнодисковое шифрование LUKS, BitLocker, FileVault — данные на дисках сервера и ноутбука хранятся в виде шифротекста.
  • VPN-туннели OpenVPN, WireGuard и IPsec используют AES для пакетов с пользовательским трафиком.
  • Шифрование архивов (7z, zip с AES-256) и баз паролей KeePass, Bitwarden.
  • Резервные копии Borg, restic, duplicity по умолчанию шифруют блоки через AES перед загрузкой в S3.

Негативный сценарий: AES сам по себе не защищает от утечки ключа. Если ключ лежит рядом с шифротекстом или передаётся по открытому каналу, шифр становится бесполезным. Поэтому AES почти всегда работает в паре с RSA или ECDH, которые безопасно доставляют сессионный ключ.

Технические детали

openssl enc -aes-256-cbc -salt -pbkdf2 -in data.tar -out data.tar.enc
openssl enc -d -aes-256-cbc -pbkdf2 -in data.tar.enc -out data.tar
openssl speed -evp aes-256-gcm
cryptsetup luksFormat --cipher aes-xts-plain64 --key-size 512 /dev/sdb1
cryptsetup luksOpen /dev/sdb1 secure
grep -m1 aes /proc/cpuinfo

Частые вопросы

AES-128 уже небезопасен?

Нет. Полный перебор 128-битного ключа недостижим даже теоретически на горизонте десятилетий. AES-256 берут как запас на случай прогресса в квантовых вычислениях и в задачах долговременного хранения данных.

Что лучше: AES или ChaCha20?

На сервере с инструкциями AES-NI быстрее AES-GCM. На мобильных устройствах без аппаратного AES — ChaCha20-Poly1305. Современный TLS 1.3 поддерживает оба варианта и выбирает по согласованию.

Зачем нужен режим GCM?

GCM (Galois/Counter Mode) одновременно шифрует данные и считает тег аутентичности. Это защищает не только от чтения, но и от подмены битов в шифротексте — атакующий не сможет незаметно изменить пакет.