Имя вроде AES-256-CFB1 несёт два числа, и они отвечают на разные вопросы. 256 — это длина ключа AES. 1 — это обратная связь CFB, то есть размер сегмента, свойство того, как режим продвигает своё состояние. Если прочитать 1 как длину ключа, имя выглядит как катастрофическая ошибка конфигурации, поэтому этот вопрос возвращается снова и снова.

Прежде чем судить имя, определите, какую из трёх величин вы видите: размер ключа, размер блока или размер сегмента. Только первая является параметром безопасности в обычном смысле.

Три числа, три величины

AES принимает ключи 128, 192 или 256 бит и имеет 128-битный блок, что бы вы ни выбрали. Размер блока принадлежит AES, а не режиму. Суффикс CFB — третья величина: сколько данных режим потребляет и возвращает за шаг. Документация OpenSSL по AES явно перечисляет эти размеры сдвига для вариантов CFB.

CFB1 возвращает по одному биту, CFB8 — один байт, CFB128 — целый блок. Все три внутри используют один и тот же 128-битный блочный шифр; меняется то, сколько бит каждого вычисленного блока используется за операцию. Поэтому суффикс меняет затраты и поведение буферизации, а не стойкость ключа.

NameKeyAES blockFeedback
AES-256-CFB1256 bits128 bits1 bit
AES-256-CFB8256 bits128 bits8 bits
AES-256-CFB128256 bits128 bits128 bits

Почему размер блока никогда не меняется

AES — блочный шифр с фиксированным 128-битным блоком, а режимы — конструкции, построенные вокруг него. Ни одна из них не уменьшает блок, чтобы соответствовать размеру сегмента. Реализация CFB1 всё равно вычисляет полный блок AES и берёт один бит результата. Остальные биты для этого шага отбрасываются, и именно здесь живут затраты на эффективность.

Значит, однобитная обратная связь не подразумевает однобитного ключа, и имя нельзя ранжировать по суффиксу. CFB128 не в четыре раза сильнее CFB32; он обрабатывает большие сегменты.

Что на самом деле меняет размер сегмента

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

На практике режим выбирает протокол, а не оператор. Канал данных VPN использует конструкцию, заданную его протоколом, с собственной защитой целостности, а список библиотеки лишь сообщает, какие имена существуют.

Как читать неквалифицированную метку CFB

Неквалифицированной метке CFB нужен контекст её реализации. В заголовках OpenSSL 1.0.2 EVP_aes_128_cfb — это макрос для EVP_aes_128_cfb128, с соответствующими псевдонимами для ключей 192 и 256 бит. Это соглашение об именовании API из одной ветки, а не утверждение, что каждая библиотека, формат файла или GUI раскрывает аббревиатуру одинаково. Проверьте заголовок или документацию той версии, которая перед вами.

Если старый профиль говорит CFB и партнёр это принимает, согласованные параметры где-то записаны: в журнале, дампе конфигурации, ответе API. Читайте их, а не выводите размер сегмента из строки отображения.

О чём имя режима не говорит

Имя описывает поведение шифрования и ничего больше. VPN по-прежнему нужны защита целостности, вывод ключей и аутентификация партнёра, а CFB не даёт ни одного из этого. Замена CFB8 на CFB1 тоже не косметическое изменение: поведение в линии отличается, и обе стороны должны поддерживать одну и ту же конструкцию. И имя в библиотеке не доказывает, что развёрнутый шлюз принимает его для своего канала данных.

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

Похожие статьи