Как вы можете скрыть информацию в JPG или GIF-фотографии? - PullRequest
22 голосов
/ 01 августа 2009

Как я могу записать некоторую информацию в файл фотографии, такой как jpg или gif, не разрушая изображение? и, конечно же, не показывать это на фотографии, поскольку вся идея заключается в том, чтобы отправлять информацию в файле фотографии, которую никто не обнаружил (для обеспечения безопасности / конфиденциальности в некоторой степени)!

Ответы [ 8 ]

45 голосов
/ 01 августа 2009

Вы можете объединить GIF и ZIP (информацию, которую вы хотите скрыть) в один файл. GIF-файлы читаются с начала файла, а почтовые индексы - с конца файла.

Чтобы создать такой файл в Linux:

$ cat file1.gif >> outfile.gif
$ cat file2.zip >> outfile.gif

Полученный файл должен иметь размер file1.gif и file2.zip вместе и должен открываться любым средством просмотра gif и обработчиком zip-файла.

27 голосов
/ 15 февраля 2010

Я уверен, что есть много способов. Вот один из них:

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

Итак, чтобы взять простой пример, предположим, что у вас было GIF-изображение в оттенках серого, где палитра расположена в порядке от белого до черного с плавным диапазоном серого между ними. Я не уверен, сколько вы знаете о графических форматах файлов, но в GIF у вас есть один байт на пиксель, при этом каждое возможное значение байта отображается на определенный цвет. Таким образом, в этом случае мы могли бы сказать, что паллета № 0 = RGB (0,0,0), паллета № 1 = RGB (1,1,1), ... палитра # 255 = RGB (255,255,255).

Тогда вы делаете обычную, настоящую фотографию. Разбейте ваше секретное сообщение на отдельные биты. Установите последний бит каждого номера индекса палитры в последовательные биты вашего сообщения.

Например, предположим, что первые восемь пикселей исходной фотографии, скажем, 01 00 C9 FF FF C8 42 43. Ваше сообщение начинается с буквы «C», код ascii 0110 0111. Таким образом, вы меняете последний бит первый байт на 0, меняя байт с 01 на 00. Вы меняете последний бит второго байта на 1, меняя байт с 00 на 01. Вы меняете последний бит третьего байта на 1. Это уже 1, так что это не имеет значения. И т.д. Вы получите кодированные 8 байтов 00 01 C9 FE FF C9 43 43.

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

Конечно, ничто не говорит о том, что вы должны использовать 1 бит на байт для секретного сообщения. В зависимости от степени ухудшения качества, которое, по вашему мнению, вы можете избежать, вы можете использовать 2 бита на байт или просто изменить 1 бит на каждый другой байт и т. Д.

Конечно, ту же технику можно использовать с цветными фотографиями: изменить последний бит в каждом из компонентов RGB для кодирования 3 бит на пиксель и т. Д.

10 голосов
/ 21 августа 2012

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

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

О стеганографических средах

Стеганография в изображениях

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

Стеганография в аудио

В аудиофайлах наиболее известным методом сокрытия информации является метод кодирования с низким уровнем битов. Метод кодирования младших битов несколько похож на метод младших битов, используемый в файлах изображений. Секретная информация прилагается в конце файла. Одна из проблем, связанных с низким битовым кодированием, заключается в том, что это может быть заметно человеческому уху. Если кто-то пытается скрыть информацию, это может быть рискованно, так как ее легко обнаружить. Метод расширенного спектра является еще одним методом, который использовался для сокрытия информации в аудиофайлах. Что этот метод делает, это добавляет случайный шум к аудио трансляции. Этот метод позволяет распространять информацию по частотному спектру и оставаться скрытым под случайным шумом. Последний метод, который можно увидеть в аудиостеганографии - это скрытие эхо-данных. Этот метод стремится скрыть информацию, используя эхо, которое естественно возникает в звуковых файлах. Затем к этому эхо можно добавить дополнительный звук, при этом дополнительный звук является скрытым сообщением. Это достаточный способ скрыть информацию, тем более что в некоторых случаях он даже улучшает звучание исходного аудиофайла.

Стеганография в видео

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

Стеганография в документах

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

Вы также можете обратиться к этому проекту с открытым исходным кодом

Эта статья может быть очень полезна.

3 голосов
/ 01 августа 2009

Вы можете хранить некоторую информацию в метаданных изображения. Фактически, именно так цифровые камеры отмечают фотографии, которые они делают (модель камеры, дата и время, координаты GPS и т. Д.).

Этот формат данных называется EXIF ​​ (формат файла сменного изображения). Есть много примеров, как использовать его в языках программирования. Вот пример на Java.

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

2 голосов
/ 14 марта 2012

Если вы хотите спрятать данные (текст, другое изображение и т. Д.) В файле JPEG, вы можете просто добавить их в конец файла. При просмотре изображения вы увидите только исходное изображение, а добавленные вами данные будут игнорироваться.

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

1 голос
/ 16 марта 2017

сжатые данные в файлах GIF находятся в чанках переменного размера. каждый кусок начинается с байта длины. Обычно эти порции представляют собой 255 байтов данных (а длина байта говорит 255), за исключением двух последних порций (последний равен 0)

Но вы могли бы перекодировать GIF с кусками, размер которых прописывает сообщение например, использование символов для текста ASCII или байтов 1 2 3 4, представляющих 00 01 10 11 двоичных данных,

Байт-частотный анализ на GIF выявил бы меньше, чем ожидалось, 255 байт. и размер будет больше, чем оригинал, но изображение будет выглядеть точно так же.

1 голос
/ 29 января 2015

В Windows вы можете использовать простую команду, чтобы скрыть архив в изображении: copy / b cat.jpg + Documents.rar cat_new.jpg. А затем используйте, например, winrar для извлечения данных из образа как из архива.
Но лучше использовать стеганографию.
простая программа для Linux и Windows: http://linux01.gwdg.de/~alatham/stego.html
используя эту программу, вы будете использовать парольную фразу, без нее никто даже не узнает, что вы скрыли некоторые данные в картинке))

0 голосов
/ 02 апреля 2014

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

https://www.youtube.com/watch?v=ox9ArqXtaWw&list=PLqEKOAKK4IbSTfDJZE_lH-DiOjOzZUczx&index=2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...