DES шифрует файл размером менее 64 байт - PullRequest
0 голосов
/ 31 октября 2018

Я хочу создать программу шифрования для исследований с использованием алгоритма DES. Если мои данные превышают 64 байта, я могу использовать режим CBC или EBC для их шифрования. Но что, если размер моего файла данных меньше 64 байт? Должен ли я добавить пробелы в конце файла, чтобы заполнить его и получить 64 байта? Что такое хороший подход?

1 Ответ

0 голосов
/ 31 октября 2018

Размер блока DES составляет 64 бит, или 8 байтов. Если ваше сообщение меньше 8 байт, вам нужно дополнить его. общая схема состоит в заполнении блока путем многократного добавления длины отступа. Например, если ваше сообщение составляет 3 байта, и вам нужно заполнить 8-байтовый блок, вам нужно 5 байтов заполнения. Добавьте значение 5, 5 раз, к сообщению:

// Message ABC + 5 bytes of padding
0x41 0x42 0x43 + 0x05 0x05 0x05 0x05 0x05

Это означает, что вам нужен хотя бы один байт заполнения, поэтому, если ваше сообщение является полным блоком, вам нужно добавить целый дополнительный блок только для заполнения. Чтобы удалить заполнение, посмотрите на значение последнего байта, N , и убедитесь, что последние N байтов простого текста имеют то же значение.

...