Mastodon Mastodon Mastodon Mastodon

Шифр

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

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

Как работают шифры

Шифр задаёт шаги зашифрования и расшифрования, а конкретный результат определяет ключ шифрования. Исторические шифры — шифр Цезаря или машина «Энигма» — основывались на подстановке и перестановке и сегодня взламываются тривиально. Современные шифры делятся на две основные группы:

  • Блочные шифры обрабатывают блоки фиксированного размера — AES использует 128-битные блоки и ключи длиной 128, 192 или 256 бит. Режим работы — CBC, CTR или GCM — определяет, как связываются блоки; GCM также обеспечивает аутентификацию данных.
  • Потоковые шифры генерируют ключевой поток, который побитово комбинируется с данными; ведущий современный пример — ChaCha20.

Оба вида симметричны: отправитель и получатель используют один и тот же ключ. Шифрами иногда называют и асимметричные алгоритмы, например RSA.

Наборы шифров

В TLS набор шифров (cipher suite) определяет сочетание обмена ключами, аутентификации, основного шифра и хеш-функции для соединения, например TLS_AES_128_GCM_SHA256 в TLS 1.3. Сервер и клиент согласуют набор, который поддерживают оба, поэтому слабые устаревшие наборы нужно отключать.

Почему шифры важны для безопасности

Шифры стареют. DES с 56-битным ключом был взломан перебором на машине EFF «Deep Crack» в 1998 году; из-за статистических смещений RC4 стандарт RFC 7465 (2015) запретил его в TLS, а атака Sweet32 (2016) показала, что 64-битные блочные шифры вроде 3DES небезопасны для длинных сессий. Проприетарные шифры отказывают ещё быстрее, ведь они не проходили публичной проверки.

Рекомендации

  • Использовать AES-GCM или ChaCha20-Poly1305 через проверенные библиотеки.
  • Отключить DES, 3DES, RC4 и экспортные наборы шифров.
  • Никогда не использовать nonce повторно с тем же ключом в GCM и потоковых шифрах.
Синонимы:
блочный шифр, потоковый шифр, алгоритм шифрования