Имеются три файла с картинками в формате Bitmap Picture (.bmp). Структура bmp-файла приведена ниже.
Заголовок
|
Данные |
Два из трех имеющихся файлов зашифрованы. Известно, что для этого использовалась следующая процедура. Файл разбивался на равные блоки, размер которых совпадает с длиной ключа. Далее осуществлялась поразрядная операция сложения по модулю 2 (XOR) каждого блока с ключом.
На одной из картинок изображено текстовое сообщение. Требуется найти ключ и текстовое сообщение на картинке.
Комментарий. К задаче прилагается: два зашифрованных файла (picture11.enc,picture12.enc), один открытый файл (picture13.bmp), редактор файлов в шестнадцатеричном формате (HexEditor).
Способ 1
Анализируя файлы, можно заметить, что размер файлов одинаковый, а значит и размеры картинок одинаковые. Отсюда можно сделать предположение, что заголовки всех картинок будут одинаковыми.
Из условий задачи известно, что заголовок занимает первые 54 байта. Можно взять заголовок открытого файла и подменить на зашифрованных файлах. Картинки при этом откроются, но изображение будет искажено, хотя и читаемо.
а)
б)
Рис. Зашифрованные файлы с подмененным заголовком
На изображении а) четко прослеживается надпись «ШИФРОВАНИЕ».
Далее, для нахождения ключа шифрования необходимо выполнить операцию «Поразрядное исключающее ИЛИ» (XOR) между заголовками открытого файла и заголовками зашифрованного файла. Получится периодическая последовательность вида:
FA CE 8D BA 55 F5 FA CE 8D BA 55 F5 FA CE 8D BA 55 F5 …
Можно обнаружить периодичность последовательности и извлечь ключ: FA CE 8D BA 55 F5.
Способ 2
Анализируя заголовок открытого файла, можно увидеть, что некоторые поля нулевые.
Рис. Заголовок открытого файла
Отметив смещение нулевых байтов и сравнив соответствующие байты в зашифрованных файлах, можно увидеть периодичность в значениях.
Рис. Заголовок зашифрованного файла
Выделенный фрагмент: FA CE 8D BA 55 F5 FA CE 8D BA 55 F5 FA CE 8D BA 55 F5
Можно обнаружить периодичность последовательности и извлечь ключ: FA CE 8D BA 55 F5.
Необходимо написать программу, которая выполняет операцию «Поразрядное исключающее ИЛИ» (XOR) над всеми байтами файла с обнаруженным ключом. Результирующий файл сохраняется с расширением .BMP и открывается средствами просмотра изображения. Если программа написана правильно – на картинке будет слово ШИФРОВАНИЕ
Cлово – «ШИФРОВАНИЕ», ключ – FA CE 8D BA 55 F5