AES256 Сетевой трафик - Как заполнение влияет на размер? - PullRequest
1 голос
/ 29 августа 2011

Я отправляю двоичные данные по зашифрованному соединению AES256 (CBC), которое сжимается до его шифрования.Я использую OpenSSL для шифра AES.

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

Я пытаюсь не допустить, чтобы кто-то отправлял 248 бит данных, и они не читаются на стороне сервера во времени, и они видят отставание (это для видеоигр).

Я много гуглил и ничего не нашел по этому поводу;что заставляет поверить в то, что я могу уйти от того, как все это работает, или моя проблема уникальна (в чем я сомневаюсь).

То, к чему все это сводится, таково: Должен ли я беспокоиться о заполнении /разгрузка сетевого трафика или нет?

Ответы [ 2 ]

1 голос
/ 29 августа 2011

В режиме CBC вам нужно добавить все сообщения к границе следующего блока. Вам также нужно будет отправить IV с каждым сообщением. Эти издержки, очевидно, больше связаны с короткими сообщениями, чем с длинными сообщениями.

Режим CTR превращает блочный шифр в потоковый шифр. Он не требует заполнения, и IV заменяется на Nonce, который может быть (но не всегда) короче IV.

Если у вас много коротких сообщений, режим CTR может дать вам экономию. В качестве альтернативы можно объединить множество коротких сообщений в одно большее сообщение для шифрования.

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

1 голос
/ 29 августа 2011

У вас будет проблема с тем, что вы можете только дешифровать и дешифровать пакеты, размер которых кратен размеру блока. Как я понимаю ваш вопрос, вы хотели бы иметь соединение в реальном времени с пакетами, которые могут быть меньшего размера или другого размера (не кратного 128-битному). Думали ли вы использовать вместо этого потоковый шифр? Затем вы можете зашифровать пакеты произвольного размера. Вы также можете использовать AES в качестве потокового шифра, например, режим счетчика.

...