Шифрование блочным симметричным шифром данных, размер которых меньше размера блока


Можно конечно просто дополнить блок данных до размера блока, но тут возникает проблема определения реальной длинны блока после расшифрования. Какие будут мысли?

Комментарии
— serzh (08/12/2006 19:19, исправлен 08/12/2006 19:20)   
Добавлять в канец данных спец. символ, после которого дополнить блок нулями. При расшифровке откидывать всё, что идёт после символа.
— face (08/12/2006 19:27)   
проблема в том, что данные могут быть произвольные и содержать любую последовательно байт.
— face (08/12/2006 19:30)   
похоже без передачи размера блока блока данных не обойтись
— serzh (08/12/2006 19:43, исправлен 08/12/2006 19:45)   
В конец каждого блока добавляеш спец. символ завершения блока данных и, если он не является завершающим, добавляеш нули. При расшифровке из полученой строки, удаляеш все нули С КОНЦА включая спец. символ завершения блока данных. Если дальше и будет такой же символ, как и спец. то он уже ни на что не повлияет. Через длину блока можно, но это будет занимать больше времени на обработку.
— ygrek (08/12/2006 22:29)   
Сделаю ударение что, добавлять надо в конец каждого блока (который может быть коротким).
Пример.
Пусть блок имеет вид ДАННЫЕ_СПЕЦСИМВОЛ_000000 и причём равен длине блока шифрования. Добавляем к нему спецсимвол (первый символ ещё одного блока) и заполняем остаток нулями. Т.е. в общем случае имеем более одного блока шифртекста на один недоблок открытого текста.
— ygrek (08/12/2006 22:41)   
Если у вас сообщение длины более одного блока то можно использовать метод похищения шифртекста. При этом гарантируется что у вас будет ровно столько же блоков шифртекста сколько было блоков открытого текста.
— face (09/12/2006 11:21)   
метод похищения шифртекста

в чем заключается метод?
— SATtva (09/12/2006 11:47)   
http://en.wikipedia.org/wiki/Ciphertext_stealing
Гость (10/12/2006 18:38)   
Добавлять в канец данных спец. символ, после которого дополнить блок нулями. При расшифровке откидывать всё, что идёт после символа.


Представьте себе, что вы получили четыре блока вида СПЕЦСИМВОЛ_000000
Это два блока с двумя заверающими или три с одним? ;)
— unknown (12/12/2006 22:35, исправлен 06/02/2007 14:13)   
Самый простой для понимания (но не всегда подходящий для реализации) режим дополнения:

http://en.wikipedia.org/wiki/Residual_block_termination

Похожее обсуждение у нас было здесь:
/Форум/Криптография/РежимыШифрования[link1]

Ссылки
[link1] http://www.pgpru.com/forum/kriptografija/rezhimyshifrovanija