Шифр — алгоритм, который превращает читаемые данные (открытый текст) в нечитаемый шифртекст и обратно, используя для управления преобразованием секретный ключ.
Как работают шифры
Шифр задаёт шаги зашифрования и расшифрования, а конкретный результат определяет ключ шифрования. Исторические шифры — шифр Цезаря или машина «Энигма» — основывались на подстановке и перестановке и сегодня взламываются тривиально. Современные шифры делятся на две основные группы:
- Блочные шифры обрабатывают блоки фиксированного размера — 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 и потоковых шифрах.





