Member eric67 Ответов: 0

AES шифрование сообщений и текст разница в длине


Привет ,
Я пытаюсь использовать класс AES в Visual C#
При кодировании сообщения мне пришло в голову, что попытка кодировать сообщение блока 16 байт с помощью AES дает зашифрованные блоки размером 2*16 байт ( например, мое сообщение было длиной 32 байта).
Он делает то же самое для сообщений блоков размером 2* 16 байт, где возвращаются зашифрованные блоки размером 3*16 байт.

Я использую капельницу и ключ размером 16 байт (128 бит).
Если я отправлю 15 байт, зашифрованное сообщение снова превратится в 16 байт ( 15-байтовое сообщение + заполнение PKCS, реализованное внутри класса)

Внутри документа спецификации AES четко не указано, добавляется ли символ для завершения сообщения , прежде чем реализовать заполнение , но я подозреваю , что это так , что объясняет, почему мое 16-байтовое сообщение на самом деле будет отложено с завершающим символом, а затем добавлено заполнение, чтобы сделать его 32-байтовым сообщением.

Я где-то читал (но не помню источника), что перед заполнением сообщения рекомендуется добавить 0X80 в конце сообщения.

Может ли кто-нибудь помочь мне прояснить, почему я наблюдаю описанное поведение ( 2 блока шифрования с одним блоком сообщений) ?

спасибо,
Эрик

Что я уже пробовал:

пожалуйста, смотрите выше описание этой проблемы.

George Swan

Разве дополнительный блок не связан с тем, что значение соли хранится вместе с хэшированным сообщением?

Member eric67

Привет Джордж,
не существует не какой-либо соли используется до сих пор. Я непосредственно ввожу ключ в 16 байт "вручную" для целей тестирования.

Я сам выяснил, почему зашифрованное сообщение на 1 блок длиннее, когда в нем вводится 16 байт . Это связано с режимом заполнения PKCS7, который требует, чтобы заполнение всегда добавляло по крайней мере 1 байт данных в конце сообщения, таким образом, если сообщение имеет длину 16 байт, то добавляется по крайней мере 1 байт заполнения ( 16 байт int htis case фактически для создания сообщения.Длина mod 16 == 0).

Это все объясняет.

Thnaks для вашего предложения в любом случае

0 Ответов