Один ключ для замка и для отпирания
Симметричное шифрование означает, что для зашифровки и расшифровки используется один и тот же секретный ключ. AES, Advanced Encryption Standard, самый распространённый шифр этого типа. Его выбрали как стандарт по результатам открытого конкурса, а разработали бельгийские криптографы, и алгоритм известен как Rijndael.
Алгоритм публичен, и это не недостаток: надёжность обеспечивается не секретностью устройства шифра, а секретностью ключа. Открытость позволяет специалистам всего мира десятилетиями искать слабости, и практических взломов полного AES при правильном использовании не известно.
Для сравнения: асимметричные шифры используют пару ключей и намного медленнее, поэтому для передачи больших объёмов данных не подходят. Симметричный AES шифрует гигабиты в секунду на обычном процессоре, что и делает его основой защищённых соединений.
Блоки и длина ключа
AES работает с блоками данных по 128 бит и делает над ними серию раундов перестановок и замен, зависящую от ключа. Ключ может быть длиной 128, 192 или 256 бит, число раундов растёт вместе с длиной. Увеличение длины ключа экспоненциально увеличивает число вариантов для перебора.
Для практических целей 128 бит уже считаются надёжными, а 256 дают дополнительный запас, в том числе на случай появления квантовых компьютеров. Выбор часто определяется политикой организации и небольшой разницей в скорости, а не реальной угрозой перебора.
Режимы работы: не менее важны, чем шифр
Сам по себе AES шифрует один блок. Чтобы обрабатывать длинные данные, применяются режимы. Простейший ECB зашифровывает одинаковые блоки одинаково, и в результате узор исходных данных проступает в зашифрованных, поэтому его не используют. Режим CBC цепляет блоки друг за другом. Режим GCM сочетает шифрование с проверкой целостности и считается современным выбором.
Ошибки в режиме или повторное использование одинакового значения (nonce) могут свести защиту на нет даже при идеальном шифре. Значит, безопасность определяет вся конструкция, а не название алгоритма.
Простой пример: если зашифровать картинку режимом ECB, контуры изображения остаются различимыми, хотя цвета изменились. В GCM, где каждому блоку соответствует свой уникальный счётчик, этого не происходит, и результат неотличим от случайного шума.
Где вы сталкиваетесь с AES
Практически везде. В защищённых веб-соединениях TLS после рукопожатия данные шифруются симметричным шифром, часто AES-GCM. В домашнем Wi-Fi с защитой WPA2 и WPA3 используется AES. Шифрование дисков на компьютерах и телефонах, защищённые архивы, мессенджеры, менеджеры паролей строятся на нём же. Во многих процессорах есть аппаратные инструкции ускорения AES, поэтому шифрование почти не замедляет работу.
В настройках роутера вы встретите пункт «шифрование: AES»: его и нужно выбирать, а устаревшие варианты вроде TKIP отключать.
Как обменяться ключом и откуда взять его
Главная сложность симметричных шифров: как безопасно передать ключ второй стороне. Поэтому в сетевых протоколах сначала применяется асимметричная криптография или обмен ключами, а потом уже быстрый симметричный шифр для основного потока данных. Такая схема сочетает удобство и скорость.
Ключ должен быть случайным и достаточно длинным. Ключ из простого пароля слабее: перебирать придётся не все возможные значения, а только популярные пароли. Поэтому из паролей ключи получают специальными медленными функциями.
Заблуждения: AES
AES не «непробиваем» при любом использовании: слабый пароль, утечка ключа, ошибки реализации приводят к взлому куда раньше, чем перебор. Само шифрование не скрывает факт передачи данных. И не стоит доверять рекламным словам вроде «военное шифрование»: значение имеют режим, ключ и корректная реализация.
Важно понимать и практическую сторону: для домашнего пользователя главные риски лежат не в самом шифре. Это слабый пароль, повторяющийся на разных сервисах, устаревшая прошивка роутера, отключённая защита Wi-Fi и вредоносные программы. Поэтому вместо споров о длине ключа лучше сменить пароль, включить WPA3 или WPA2 с AES и обновить устройства. Так вы получаете больше защиты, чем от любого выбора между 128 и 256 битами.