Как отобразить или просмотреть зашифрованные данные в зашифрованном виде? - PullRequest
5 голосов
/ 03 мая 2010

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

Unencrypted ECB Mode CBC Mode

В университете я разработал собственную реализацию DES ( вы можете найти ее здесь ), и мы должны продемонстрировать нашу реализацию в презентации.

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

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

Буду признателен за любую помощь,

Спасибо

Примечание: я понимаю, что катание вашей собственной библиотеки криптографии глупо, и DES считается сломанным, а режим ECB очень некорректен для любой полезной криптографии, это было чисто академическое упражнение для школы. Поэтому, пожалуйста, никаких лекций, я знаю упражнение.

Ответы [ 2 ]

3 голосов
/ 03 мая 2010

Просто отключите заголовки, прежде чем шифровать (сохранить их где-нибудь). Тогда зашифруй только остальное. Затем добавьте заголовки перед результатом.

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

3 голосов
/ 03 мая 2010

Если вы используете язык высокого уровня, такой как Java, python и т. Д., Вы можете просто загрузить изображение и прочитать данные пикселей в массив в памяти. Затем выполните шифрование этих необработанных байтов, затем сохраните изображение, когда закончите. Пусть все данные заголовка обрабатываются библиотеками любого языка, который вы используете. Другими словами, не рассматривайте файл как необработанную последовательность байтов. Надеюсь, это поможет.

...