9 / 8 / 9
Регистрация: 08.03.2010
Сообщений: 70
|
|
1 | |
скрытие информации30.03.2010, 18:51. Показов 2405. Ответов 15
Метки нет (Все метки)
Подскажите как реализовать скрытие информации в изображениях файлах формата jpeg? Может у кто имеет примеры?? Помогите чем можете!!! Буду благодарен за любую информацию!!!!
Добавлено через 44 минуты в принципе я знаю как это реализовать но не знаю как открыть изображение о расписать информацию о пикселях изображения.
0
|
30.03.2010, 18:51 | |
Ответы с готовыми решениями:
15
Скрытие кнопки Скрытие файлов через Дельфи Скрытие информации в изображении Скрытие лишней информации |
30.03.2010, 22:56 | 2 |
Стеганография в BMP
По результату обсуждения так и не выяснилось, как сие делать в jpeg'е Стеганография в BMP. Полное руководство
0
|
125 / 123 / 0
Регистрация: 30.03.2009
Сообщений: 766
|
|
30.03.2010, 23:35 | 3 |
HINT! однако никто не мешает сначала расшифровать фрагмент, потом добавить туда свой нижний бит, а потом зашифровать обратно
1
|
125 / 123 / 0
Регистрация: 30.03.2009
Сообщений: 766
|
|
31.03.2010, 01:34 | 5 |
смотрим описание алгоритма:
1. ДКП: пусть дано ч\б изображение задается матицей A=A'&(~n*E). информационный бит l =n*0,n*1, где n - целое число, определять наличие или отсутствие бита будем с помощью нормы |l*E|, где E - единичная матрица 8х8. рассмотрим ДКП от IMG = A+lE: R = DCT*(A+lE)*DCT(t) = DCT*A*DCT(t) + l*DCT*E*DCT(t) = DCT*A*DCT(t)+l*DCT*DCT(t). при декодитровании данного этапа DECODED = DCT(-1)*R*DCT(-1,t) = A+l*E, ничего не теряем. второй этап, квантование. Рассмотрим к примеру левый верхний пиксел. Пусть графическая информация заключена в числе IMG, а информация в числе INF. Тогда в отсутствие бита получим R = IMG, в присутствие оного - R = IMG+INF. нам нужно уметь различать состояния IMG и IMG+INF, то есть |Q/(IMG+INF)-Q/IMG|=|Q*INF/(IMG*(IMG+INF))|>=1. Отсюда можем получить необходимую величину параметра n для самого худшего случая IMG, встречающегося в картинке. вот как-то так, надо еще подумать, но видно, что посчитать это все реально вполне Дальнейшие этапы сжатия уже идут без потери качества так что рассматривать тут их не имеет смысла
1
|
31.03.2010, 09:39 | 6 |
Lolcht0, прежде, чем запускать ДКП, делается преобразование 4:4:4->4:1:1, на котором ужЕ получаются потери. Хотя на данном этапе проблема устраняется тем, что модифицируется только зелёный канал. Дальше даже мне, как НЕматематику понятно, что после ДКП всё преобразуется обратно в изначальны вид. Далее идёт отфильтровка высоких частот, которые при дальнейшем раскодировании повлияют на весь квадрат
Пока это расписывал, стукнула в голову идея. Информацию вклинивать нужно не в оригинальную картинку (т.е. не в цветовое представление), а в низкочастотные составляющие после ДКП (а то и после фильтровки). Правда я о jpeg'е имею лишь теоретическое представление, сам ручками никогда не работал, но подозреваю, что такой подход вполне может дать приемлимый результат
0
|
9 / 8 / 9
Регистрация: 08.03.2010
Сообщений: 70
|
|
31.03.2010, 09:45 [ТС] | 7 |
Слушай а можешь написать текст проги, а то я не совсем понял что ты имеешь в виду.
0
|
125 / 123 / 0
Регистрация: 30.03.2009
Сообщений: 766
|
|
31.03.2010, 13:39 | 9 |
Evg, нельзя вносить изменения в самые низкие частоты. Они соответствуют средней яркости блока из 8 пикселей и будут очень сильно заметны. Необходимо вносить изменения в наиболее высокие частоты, которые еще не теряются при кодировании. Тогда при просмотре, шумы, вносимые изменениями, будут по величине схожи с артефактами кодирования.
а про яркостный канал я также подумал, просто не хотелось еще усложнять алгоритм, поэтому я написал, что он ьбудет работать для ч/б картинок)))
0
|
31.03.2010, 20:21 | 10 |
Lolcht0, я в математике не силён, но звучит логично. Т.е. по сути надо после всех операций (включая фильтрацию) вносить изменения в самые низкие из оставшихся ненулевых частот. Только как определять, куда вносить, а куда не вносить, а главное, как при декодировании разбираться, куда внесли, а куда нет - видимо вопрос уже чисто технический
0
|
125 / 123 / 0
Регистрация: 30.03.2009
Сообщений: 766
|
|
31.03.2010, 22:09 | 11 |
вот! в том-то вся и проблема. Мы должны иметь некоторую априорную информацию о изображении.
Вот я когда предлагал То, тем самым, вводил эту информацию. в таком случае, мы владеем знанием о том, что в пикселе в случае передачи "0" |(A')&(n*E)|==0. а в случае передачи "1" |(A')&(n*E)|==С>0. Я не говорю насколько мой алгоритм хорош или плох (но скорее плох, т.к. я придумал его за полчаса), но тем не менее он должен работать Добавлено через 6 минут если рассуждать, как ты предлагаешь, то мы должны обладать информацией о значении "самых низких оставшихся частот" в оригинале изображения, например, фиксировать их значения искусственно причем так, чтобы фиксированное значение мог вычислить декодирующий.
0
|
31.03.2010, 22:35 | 12 |
Зачем фиксировать? Если мы знаем, что можно модифицировать только ненулевые значения частот (а точнее, заканчивая последней ненулевой составляющей при зигзагообразном проходе), то можно сказать, к примеру, что последние 8 составляющих можно модифицировать. Но при этом нужно наложить ограничение, чтобы было некое минимальное расстояние от низких частот (грубо говоря, чтобы не загадить одноцветный квадрат).
Я знаком с алгоритмом сжатия лишь "на пальцах", на практике сам никогда ничего не делал. А потому конкретно посоветовать уже не могу ничего - надо экспериментировать. Но по крайней мере подступились к вопросу хотя бы с теоретической стороны
0
|
125 / 123 / 0
Регистрация: 30.03.2009
Сообщений: 766
|
|
31.03.2010, 23:38 | 13 |
зачем знать, вот на пальцах. я загадал 2 числа. к одному из них прибавил 1, а к другому 0. получил 13 и 8. к кому я прибавил 1 а к какому 0?))
очевидно,
не зная, какие числа я загадал, ответить на это нельзя.
точно так же и тут, мы можем изменить картинку, но мы должны знать, что было вначале, чтобы выдрать сами изменения
0
|
01.04.2010, 00:17 | 14 |
Зачем? Мы всегда жертвуем младшим битом и храним в нём информацию, а не картинку. С bmp это всё хорошо работает, ибо без сжатия. С jpeg'ом всё то же самое, только надо найти байты, у которых можно пожертвовать младшим битом
0
|
125 / 123 / 0
Регистрация: 30.03.2009
Сообщений: 766
|
|
01.04.2010, 00:32 | 15 |
а, то есть мы ищем байты с высшими частотами и изменяем в них последний бит? да, наверное, это будет работать и неплохо)
0
|
01.04.2010, 11:48 | 16 |
Именно так. В случае bmp мы просто модифицируем все байты подряд. В случае с jpeg'ом, надо ещё разобраться, который из байтов в частотном представлении нужно модифицировать, а какие нет. И чтобы процесс этот был симметричен с раскодированием
0
|
01.04.2010, 11:48 | |
01.04.2010, 11:48 | |
Помогаю со студенческими работами здесь
16
Скрытие информации в картинке Jpeg Скрытие информации о полях в св-вах документа скрытие информации в аудио файлах формата WAV Ввод информации в структуру и поиск элемента по информации, находящейся в этом же элементе Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |