Рейтинг:1

Можно ли рассчитать длину открытого текста зашифрованного RC5-32 зашифрованного текста?

флаг sz

Вычислить зашифрованный RC5 размер любых данных так же просто, как округлить длину открытого текста до ближайшего числа, кратного 8. Мне интересно, можно ли это сделать в другом направлении, чтобы получить длину исходных данных открытого текста. зашифрованный текст.Очевидно, что эта информация не раскрывается до тех пор, пока не произойдет расшифровка, но можно ли ее отследить/вычислить? в течение процесс расшифровки?

я работаю с это реализация расшифровки RC-5 (декомпилированный двоичный файл C++, повторно реализованный на C#), который расшифровывает данные группами по 4 байта и копирует результат в выходной буфер. Проблема в том, что после окончания дешифрованных данных в выходном буфере остается много мусора, поэтому сложно определить, где на самом деле заканчиваются данные. Это легко, если открытый текст представляет собой строку с нулем в конце, но я ищу более общее решение, которое может работать с произвольными двоичными данными.

Рейтинг:2
флаг my

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

RC5 — блочный шифр; то, о чем вы спрашиваете, касается режима блочного шифрования (и того, какое дополнение использует эта реализация); недостаточно информации для ответа на ваш конкретный вопрос; однако у меня есть предположение.

«Блочный шифр» — это обратимое преобразование из n-битной строки битов (в данном случае $n=64$) в n-битную битовую строку. Что делает «режим блочного шифра», так это то, что «блочный шифр» и использует его для выполнения более общей полезной операции, например, для шифрования открытого текста произвольной длины.

Теперь, взглянув на код, может показаться, что код использует «режим ECB» для шифрования строки (что, как правило, является плохим выбором — конечно, это не ваша проблема). В «режиме ECB» сам режим может обрабатывать только открытые тексты, длина которых кратна длине блока (в данном случае 16 байтов). Поскольку мы обычно хотим обрабатывать открытые тексты произвольной длины, мы добавляем «заполнение», то есть некоторые дополнительные элементы в конце, чтобы сделать длину кратной 16 байтам (с которыми затем может работать режим).

Это заполнение разработано таким образом, чтобы упростить удаление заполнения во время расшифровки, однако есть несколько возможностей, и код дешифрования, который вы предоставили, не говорит нам, какой из них используется. В наиболее распространенном режиме самый последний байт используется для обозначения количества добавленных байтов заполнения - вы можете проверить, так ли это в ваших примерах.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.