Стеганография изображений, способная выдержать сжатие jpeg

Я пытаюсь реализовать стеганографический алгоритм, в котором скрытое сообщение может выдержать сжатие jpeg.

Типичный сценарий следующий:

  1. Скрыть данные на изображении
  2. Сжать изображение с помощью jpeg
  3. Скрытые данные не уничтожаются при сжатии jpeg и могут быть восстановлены

Я пытался использовать разные описанные алгоритмы, но безуспешно. Например, я пытался использовать простой код повторения, но сжатие jpeg уничтожило скрытые данные. Также я пытался реализовать алгоритмы, описанные в следующих статьях: http://nas.takming.edu.tw/chkao/lncs2001.pdf http://www.securiteinfo.com/ebooks/palm/irvine-stega-jpg.pdf

Знаете ли вы о каком-либо алгоритме, который действительно может выдержать сжатие jpeg?


person user1563721    schedule 31.12.2013    source источник
comment
Насколько велико ваше сообщение и будет ли оно бесполезным, если часть его будет изменена? Стеганография JPEG обычно имеет дело с хранением/извлечением сообщения с потерями. Какую степень сжатия вы использовали?   -  person Reti43    schedule 01.01.2014
comment
Теперь меня не волнует мощность. Во-первых, я хотел бы увидеть пример или алгоритм, который мог бы выдержать сжатие или повторное сжатие JPEG, чтобы понять это. Можно ли использовать стеганографию, которая выдерживает любую степень сжатия? Вы знаете о чем-то?   -  person user1563721    schedule 01.01.2014


Ответы (4)


Вы можете скрыть данные в частотной области, JPEG сохраняет информацию, используя DCT (дискретное косинусное преобразование) для каждого блока пикселей 8x8, инвариантной при сжатии информацией являются самые высокие значения частоты, и они расположены в матрице, сжатие с потерями делается, когда младшие коэффициенты матрицы после квантования блока округляются до 0, эти нули располагаются в нижней правой части матрицы, поэтому сжатие работает, а информация теряется.

person user1158945    schedule 16.03.2015
comment
Вы можете скрыть данные в коэффициентах DCT, но мой опыт показывает, что если вы используете повторное сжатие изображения JPEG, вы потеряете скрытую информацию. Не могли бы вы подробнее описать, что вы имеете в виду и что бы вы изменили, чтобы избежать потери информации после повторного сжатия изображения JPEG, которое уже содержит какое-то скрытое сообщение? - person user1563721; 18.03.2015

Похоже, что довольно много приложений реализуют стеганографию в JPEG, так что это возможно:

http://www.jjtc.com/Steganography/toolmatrix.htm

Вот статья о соответствующем алгоритме (PM1), чтобы вы начали:

http://link.springer.com/article/10.1007%2Fs00500-008-0327-7#page-1

person Eran Boudjnah    schedule 31.12.2013
comment
Я знаю, что можно использовать коэффициент DCT в изображении JPEG перед квантованием для встраивания данных, но есть та же проблема. Скрытые данные должны сохраниться, если кто-то повторно сожмет изображение в формате JPEG. Знаете ли вы о реализации, которая могла бы выжить после рекомпрессии? - person user1563721; 01.01.2014
comment
Посмотрим, поможет ли это исследование: researchgate.net/publication/ - person Eran Boudjnah; 01.01.2014
comment
Я изучал предоставленные материалы и думаю, что мы не поняли друг друга. В статьях пишут о том, как пережить стегоанализ в сжатых JPEG-изображениях. Моя проблема в том, как пережить само сжатие. Возьмем следующий пример: 1. Выберите изображение. -> 2. Сожмите его с помощью JPEG. -> 3. Встроить секретные данные с алгоритмом PM1 (или MB1, MB2, PM1 с GA или чем-то подобным) в выбранное изображение JPEG, в результате чего получится изображение stegoJPEG. -› 4. Снова примените сжатие JPEG к stegoJPEG (например, с тем же качеством). -> 5. Ваши встроенные секретные данные уничтожаются повторным сжатием. - person user1563721; 03.01.2014
comment
Есть ли какой-нибудь алгоритм, который мог бы пережить 4-й шаг в приведенном выше примере? Что ваши секретные данные могут быть раскрыты после повторного сжатия изображения stegJPEG, которое их содержит. - person user1563721; 03.01.2014
comment
@user1563721 user1563721 ты нашел ответ на этот вопрос? - person Jonas; 17.10.2020

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

person M SH GOL    schedule 23.07.2016

То, что вы ищете, называется водяными знаками.

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

person user2347953    schedule 01.08.2018
comment
Не могли бы вы порекомендовать конкретный алгоритм? - person user1563721; 02.08.2018
comment
К сожалению, у меня нет личного опыта их использования, я просто знаю, как они называются. Я решил опубликовать это, потому что самое сложное в поиске чего-либо — это подобрать правильный поисковый запрос. Введите «jpeg wtrmarking» в Google и посмотрите, куда это вас приведет. Удачи! - person user2347953; 03.08.2018