Автор работы: Пользователь скрыл имя, 08 Апреля 2011 в 21:25, курсовая работа
Актуальность проблемы информационной безопасности постоянно растет и стимулирует поиск новых методов защиты информации. Современные компьютерные технологии, прогресс в области глобальных компьютерных сетей и средств мультимедиа обеспечивает возможность разработки и реализации новых методов, предназначенных для обеспечения компьютерной информационной безопасности. Компьютерные технологии придали новый импульс развитию и совершенствованию нового направления в области защиты информации - компьютерной стеганографии.
Введение…………………………………………………………………………...3
Основная часть………………………………………………………….….6
1.Теоретическое обоснование……………………………………………..6
1.1 Основные положения стеганографии……………………….....6
1.2 Встраивание сообщений в незначащие элементы контейнера.14
1.3 Стеганографические протоколы……………………………....15
1.4 Практические вопросы встраивания данных………................17
1.5 Практические оценки стойкости стегосистем……………..…18
1.6 Скрытие данных в неподвижных изображениях……...……..19
1.6.1 Обзор алгоритмов встраивания информации в изображения………………………………………………………..20
II. Практическая часть……………………………………………………...23
1. Анализ технического задания………………………………………..23
Актуальность программного продукта………………………23
Назначение программного продукта……………………….....24
Принцип работы программного продукта………………..…..24
Сфера применения разработанного программного продукта.26
2.Обоснование выбора средств разработки……………………………..26
3.Модульная структура программы……………………………………..28
4.Разработка форм входных и выходных данных………………………29
4.1Входные данные……………………………………………...…29
4.2Выходные данные………………………………………………29
5.Теститрование программного продукта………………………………29
5.1Тестирование выполнения основных функций программы…….29
6.Разработка сопроводительных документов…………………………...30
6.1Описание руководства программиста………………………..…...30
6.2Описание руководства пользователя……………………………..30
ЗАКЛЮЧЕНИЕ……………………………………………………..…….32
СПИСОК ЛИТЕРАТУРЫ………………………………………………..34
Pixels[X, Y+1]:= RGB(RedArr[3], GreenArr[3], BlueArr[3]);
j:= j+1;
end;
4: begin
BlueArr[4]:= BlueArr[4]+1;
Pixels[X+1, Y+1]:= RGB(RedArr[4], GreenArr[4], BlueArr[4]);
j:= j+1;
end;
5: begin
BlueArr[5]:= BlueArr[5]+1;
Pixels[X+1, Y]:= RGB(RedArr[5], GreenArr[5], BlueArr[5]);
j:= j+1;
end;
6: begin
BlueArr[6]:= BlueArr[6]+1;
Pixels[X+1, Y-1]:= RGB(RedArr[6], GreenArr[6], BlueArr[6]);
j:= j+1;
end;
7: begin
BlueArr[7]:= BlueArr[7]+1;
Pixels[X, Y-1]:= RGB(RedArr[7], GreenArr[7], BlueArr[7]);
j:= j+1;
end;
8: begin
BlueArr[8]:= BlueArr[8]+1;
Pixels[X-1, Y-1]:= RGB(RedArr[8], GreenArr[8], BlueArr[8]);
j:= j+1;
end;
end;
b:= b+1;
end;
r:= r div 9;
g:= g div 9;
b:= b div 9;
//закончили размытие точки
Image1.Canvas.Pixels[x, y]:= RGB(r, g, b); //в каждый пиксель помещаем три символа текста
i:= i+3;
Until i = length(Str)+1;
end;
end;
Image1.Repaint;
end;
procedure TfrmStenograf.N39Click(Sender: TObject); //вытащить информацию из рисунка
Type TColoreArr= array[1..8] of byte;
Var a: TColor;
RedArr, GreenArr, BlueArr: TColoreArr;
r, g, b: Integer;
j: byte;
i: LongWord;
Str: String;
begin
X:= GetStart(Edit1.Text);
Y:= 2;
Str:= '';
a:= Image1.Canvas.Pixels[X, Y];
i:= GetRValue(a)*65536 + GetGValue(a)*255 + GetBValue(a); //считываем длину текста
repeat
X:= 2 + (106*X+1230) mod (Image1.Width-3); //генератор псевдослучайной последовательности
Y:= Y + 3;
with Image1.Canvas do begin
// устраним размытие точки
a:= Pixels[X-1, Y];
RedArr[1]:= GetRValue(a);
GreenArr[1]:= GetGValue(a);
BlueArr[1]:= GetBValue(a);
a:= Pixels[X-1, Y+1];
RedArr[2]:= GetRValue(a);
GreenArr[2]:= GetGValue(a);
BlueArr[2]:= GetBValue(a);
a:= Pixels[X, Y+1];
RedArr[3]:= GetRValue(a);
GreenArr[3]:= GetGValue(a);
BlueArr[3]:= GetBValue(a);
a:= Pixels[X+1, Y+1];
RedArr[4]:= GetRValue(a);
GreenArr[4]:= GetGValue(a);
BlueArr[4]:= GetBValue(a);
a:= Pixels[X+1, Y];
RedArr[5]:= GetRValue(a);
GreenArr[5]:= GetGValue(a);
BlueArr[5]:= GetBValue(a);
a:= Pixels[X+1, Y-1];
RedArr[6]:= GetRValue(a);
GreenArr[6]:= GetGValue(a);
BlueArr[6]:= GetBValue(a);
a:= Pixels[X, Y-1];
RedArr[7]:= GetRValue(a);
GreenArr[7]:= GetGValue(a);
BlueArr[7]:= GetBValue(a);
a:= Pixels[X-1, Y-1];
RedArr[8]:= GetRValue(a);
GreenArr[8]:= GetGValue(a);
BlueArr[8]:= GetBValue(a);
r:= 0; //читаем информацию из соседних пикселей
g:= 0;
b:= 0;
for j:= 1 to 8 do begin
r:= (r + RedArr[j]);
g:= (g + GreenArr[j]);
b:= (b + BlueArr[j]);
end;
end;
//устранили размытость
a:= Image1.Canvas.Pixels[X, Y]; //читаем информацию из пикселя
r:= 9*GetRValue(a) - r;
g:= 9*GetGValue(a) - g;
b:= 9*GetBValue(a) - b;
Str:= Str + chr(r);
Str:= Str + chr(g);
Str:= Str + chr(b);
i:= i-3;
Until i = 0;
Memo1.Text:= Str;
end;
procedure TfrmStenograf.N1Click(Sender: TObject);
begin
N20.Click;
end;
procedure TfrmStenograf.N2Click(Sender: TObject);
begin
N21.Click;
end;
procedure TfrmStenograf.N6Click(Sender: TObject);
begin
N25.Click;
end;
procedure TfrmStenograf.N7Click(Sender: TObject);
begin
N26.Click;
end;
procedure TfrmStenograf.N8Click(Sender: TObject);
begin
N27.Click;
end;
procedure TfrmStenograf.N11Click(Sender: TObject);
begin
N30.Click;
end;
procedure TfrmStenograf.N12Click(Sender: TObject);
begin
N32.Click;
end;
procedure TfrmStenograf.N13Click(Sender: TObject);
begin
N33.Click;
end;
procedure TfrmStenograf.N15Click(Sender: TObject);
begin
N38.Click;
end;
procedure TfrmStenograf.N16Click(Sender: TObject);
begin
N39.Click;
end;
procedure
TfrmStenograf.Timer1Timer(
begin
StatusBar1.Panels[0].Text:= 'Символов набрано: ' + IntToStr(length(Memo1.Text));
StatusBar1.Panels[1].Text:= 'Символов максимум: ' + IntToStr(Memo1.MaxLength);
StatusBar1.Panels[2].Text:= 'Рабочий файл: ' + OpenPictureDialog1.FileName;
end;
end.
ПРИОЖЕНИЕ
Б
Рисунок
1. – форма 1 «Стегонаграфия»
Рисунок 2. - форма 1 «Стегонаграфия»
Информация о работе Скрытие конфиденциальной информации при помощи стеганографии