Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.01.20;
Скачать: [xml.tar.bz2];

Вниз

Стеганография   Найти похожие ветки 

 
Rander   (2004-01-08 23:15) [0]

Господа проблема такова - нужно внедрять в изображения собственные данные. Может у кого-то есть какие-либо наработки в этой области? Очень и очень надо. Нужен хотя бы код занимающейся сменой наименьшего бита в bmp картинке, а обо всем остальном даже не мечтаю.


 
Ig   (2004-01-09 00:55) [1]

У меня есть прога(и не одна) которая это делает, но и"ссс"ходников к ней нет :(
З.Ы.
>код занимающейся сменой наименьшего бита в bmp картинке
А метод народного тыка непройдет?


 
TUser   (2004-01-09 07:34) [2]

algolist.manual.ru
+ архив по форумум (недавно был тут аналогичный вопрос).


 
Rander   (2004-01-09 12:10) [3]

Ig Не пройдет 8-(
И нужен исходник

TUser
Спасибо.
Я как раз и пытаюсь тех людей найти


 
Ega23   (2004-01-09 12:18) [4]

TIFF для этого дела идеально подходит. Хоть музыку вовнутрь вшивай.


 
Rander   (2004-01-09 13:10) [5]

Ega23
Мне все равно bmp, jpg, tiff
Есть неделя!!! Времени по истечение которой я должен представить програмку встраивающую водяной знак.
Нужно для диплома, поскольку мне резко сказали, что все что сделано раньше не пойдет 8-((

Таким образом есть несколько проблем:
1. Преобразовать изображение в битовую форму - т.е. каждой точке сопоставить битовое число - так что изменяя скажем младший байт можно сохранить данные.

2. Готовый алгоритм занимающийся встраиванием данных.
Есть на с - но я просто не успею его переделать.

И куча прочих мелочей, которыми не хочу Вам пудрить мозги.

А посему просьба к людям сталкивавшимся с подобной проблематикой - любые материалы, исходники и прочее будут не просто полезны, они будут сверх необходимы.
Если есть возможность помогите!


 
Ega23   (2004-01-09 13:14) [6]


> Rander (09.01.04 13:10) [5]

Объясни проблему по-подробнее:
Тебе нужно на некоторое изображение наложить полу-прозрачное с водяными знаками? Или что?


 
Rander   (2004-01-09 13:55) [7]

Ega23 ©
Спасибо что откликнулся.

Ситуация такова надо вложить в изображение скрытые данные. К которым мог бы получить доступ только авторизованный пользователь. Он вводит пароль а ему в ответ - эта картинка сделана таким-то.

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


 
han_malign   (2004-01-09 14:06) [8]

> Ega23 © (09.01.04 13:14) [6]
> Тебе нужно на некоторое изображение наложить полу-прозрачное с водяными знаками? Или что?
- или что - в теме написано - Стеганография

> Rander (09.01.04 13:10) [5]
> изменяя скажем младший байт
- если RGB(32/24/16 бит BMP) или CMYK(TIFF) - пройдет, причем можно три/четыре бита(по каждому каналу), а вот ежели палитра(64/256 цветов, в частности, GIF) - изображение накроется - нужно палитру затачивать(если в тупую - 128 цветная картинка, с 256 цветной палитрой - по два цвета, одинакового цвета(во тавтология) на бит).

С JPG, PNG отдельный случай, т.к. сжатие с потерей качества, и как внести однозначно востонавливаемый дополнительный сигнал, я лично, не знаю - надо с косинус-преобразованием разбираться("высокочастотную составляющую", то есть, данные в младших битах - порежет однозначно)...


 
Rander   (2004-01-09 14:14) [9]

han_malign
Вот как раз с этим я и вожусь.
Литературы море, но все теоретическое.
А времени банально нет.

Есть ли готовый код, который в один из рассмотренных тобой вариантов (без сжатия, ну его пока) осуществляет непосредственно внедрение?

Как вычислить контрольные суммы, зашифровать - это я придумаю, а вот как их после внедрить???


 
han_malign   (2004-01-09 15:11) [10]

только что слепил, на 24бит BMP (\WINDOWS\Web\Wallpaper\Bliss.bmp) работает(изменение младшего бита):

procedure TForm1.Button1Click(Sender: TObject);
var bmp: TBitmap;
x,y,bw,i,j: integer;
_s: string;
b: byte;
pc: PChar;
begin
if(OpenDialog1.Execute)then begin
bmp:=TBitmap.Create;
bmp.LoadFromFile(OpenDialog1.FileName);
if(not (bmp.PixelFormat in[pfDevice,pf15bit..pf32bit]))then ShowMessage("Формат не поддерживается")
else begin
_s:=Edit1.Text+#0;
y:=0;
i:=1;j:=8;b:=0;
while((y<bmp.Height)and(i<=Length(_s)))do begin
x:=0;
while((x<bmp.Width)and(i<=Length(_s)))do begin
if(j=8)then b:=byte(_s[i]);

if(b and 1=0)then Bmp.Canvas.Pixels[x,y]:= Bmp.Canvas.Pixels[x,y] and not 1
else Bmp.Canvas.Pixels[x,y]:= Bmp.Canvas.Pixels[x,y] or 1;
b:=b shr 1;
dec(j);

if(j=0)then begin
inc(i);
j:=8;
end;
inc(x);
end;
inc(y);
end;
bmp.SaveToFile("fff.bmp");
end;
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var bmp: TBitmap;
x,y,bw,i,j: integer;
_s: string;
b: byte;
pc: PChar;
begin
if(OpenDialog1.Execute)then begin
bmp:=TBitmap.Create;
bmp.LoadFromFile(OpenDialog1.FileName);
if(not (bmp.PixelFormat in[pfDevice,pf15bit..pf32bit]))then ShowMessage("Формат не поддерживается")
else begin
_s:="";
y:=0;
i:=1;j:=0;b:=$FF;
while((y<bmp.Height)and((j<>0) or (b<>0)))do begin
x:=0;
while((x<bmp.Width)and((j<>0) or (b<>0)))do begin
if(j=0)then begin
j:=8;
b:=0;
end;
b:=b shr 1;
if(Bmp.Canvas.Pixels[x,y]and 1<>0)then b:=b or $80;
dec(j);

if(j=0)then begin
_s:=_s+Char(b)
end;
inc(x);
end;
inc(y);
end;
Edit1.Text:=_s;
end;
end;
end;


 
Ega23   (2004-01-09 15:13) [11]

Есть убогая система классов, которая расшифровывает TIFF и из него bmp делает. Обратно - не помню, вроде не закладывал. Писалось по-быстрому, нужно было узнать как раз то, что ты спрашиваешь - есть ли в изображении какая-нибудь "скрытая информация". Могу поделиться исходниками + статьи по формату Tiff.


 
Rander   (2004-01-09 15:20) [12]

han_malign
Огромное спасибо!!!
Этот кусок мне очень поможет, по крайней мере становится ясно как все работает.

Ega23
Если можешь залей куда нибудь или вот мой адрес
rander[собака]bk[точка]ru
Спасибо.


 
Ega23   (2004-01-09 15:38) [13]

Лови.


 
Yura   (2004-01-09 16:25) [14]

Ega23
Очень интересный вопрос - есть ли в изображении какая-нибудь "скрытая информация". А со мной не мог бы поделиться своей разработкой?
Если да - то вышли по адресу asdf_yura[собака]mail.ru


 
han_malign   (2004-01-09 16:56) [15]

> Очень интересный вопрос - есть ли в изображении какая-нибудь "скрытая информация".
Если полноцветное "реальное"(с плавными переходами цветов) изображение:
- для RGB, CMYK строишь БПФ по каждому цветовому каналу, по строкам/столбцам - наличие высокочастотной шумовой составляющей показывает присутвие постороннего сигнала(или плохое качаство картинки :)) ). Таким образом любая зашифрованная информация удаляется из картинок протым Blur, в фотошопе, практически без потери качества :)).
Для палитры - еще проще - если слишком много дублируемых(или слишком близких) цветов - что-то здесь не так(хотя фактически хватит только одного, если его достаточно много на изображении)...


 
Ega23   (2004-01-09 17:07) [16]


> Yura (09.01.04 16:25) [14]

Лови


 
Rander   (2004-01-09 18:15) [17]

Ega23
Получил спасибо!
Буду разбираться 8-)



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.01.20;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.015 c
1-63109
Novic
2004-01-08 12:46
2004.01.20
Блокировать папку


3-63009
new
2003-12-23 08:42
2004.01.20
dataset


3-62995
Sanich
2003-12-23 15:28
2004.01.20
Помогите с фильрацией по дате


3-63028
SergP
2003-12-22 03:44
2004.01.20
Можно ли менять поля в TADOQuery? И что при этом произойдет?


1-63096
Goida
2004-01-08 14:58
2004.01.20
Работа с Office через ADO





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский