Дипломному проекту на тему: «Разработка методов встраивания информации в пространственную область изображения»




Скачать 0.97 Mb.
Название Дипломному проекту на тему: «Разработка методов встраивания информации в пространственную область изображения»
страница 9/10
Дата публикации 21.06.2014
Размер 0.97 Mb.
Тип Диплом
literature-edu.ru > Информатика > Диплом
1   2   3   4   5   6   7   8   9   10

ЗАКЛЮЧЕНИЕ


В результате выполнения дипломного проектирования были решены следующие задачи:

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

Разработан программный продукт на Delphi 7.0, для скрытой передачи информации в пространственной области изображения.

СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ


  1. Артёхин Б.В. Стеганография // Журнал "Защита информации. Конфидент", 1996. - №4. - С.47-50.

  2. Швидченко И.В. Анализ криптостеганографических алгоритмов // Проблемы управления и информатики, 2007. - № 4. - С. 149-155.

  3. Барсуков B.C., Романцов А.П. Компьютерная стеганография: вчера, сегодня, завтра. Технологии информационной безопасности XXI века. Материалы Internet-ресурса «Специальная техника» (http://st.ess.ru/).

  4. Генне О.В. Основные положения стеганографии // Журнал "Защита информа­ции. Конфидент", 2000. - №3.

  5. Грибунин В.Г., Оков И.Н., Туринцев И.В. Цифровая стеганография. М.: Солон-Пресс, 2002. - 272 с.

  6. Конахович Г.Ф., Пузыренко А.Ю. Компьютерная стеганография Теория и практика - К: МК-Пресс, 2006. - 288 с.

  7. Грибунин В.Г. Критерии оценки надёжности паролей. - М.: РУСКАРД, 2003. (http://www.ruscard.org/).

  8. Игнатов В.А. Теория информации и передачи сигналов. - М.: Радио и связь, 1991. - 280с.

  9. Кустов В.Н., Федчук А.А. Методы встраивания скрытых сообщений // Журнал "Защита информации. Конфидент", 2000. - №3. - С.34.

  10. Аграновский А.В., Девянин П.Н., Хади Р.А., Черемушкин А.В. Основы компьютерной стеганографии. - М.: Радио и связь, 2003. - 152 с.

  11. Барсуков B.C. Стеганографические технологии защиты документов, авторских прав и информации // Обзор специальной техники, 2000. - №2. - С.31 - 40.

  12. Перепелицын Е.Г. Нестандартные методы математической статистики и их приложение к технической диагностике и анализу изображений. - Москва: Омега-Л, 2006. - 312 с.

  13. Васильев А.В. Технико-экономическое обоснование дипломных проектов (работ). - СПб: ГЭТУ, 2002.

  14. Гражданский Кодекс Российской Федерации от 18.12.2006 г. № 230-ФЗ. Ч. 4 // Российская газета №289 от 22.12.2006 г.

  15. Мамиофа И. Э. Программа для ЭВМ как объект авторского права// Информатика и право: Сб. науч. тр./ Под ред. Б. Н. Наумова. Л.: Наука, 1988. - С. 11 - 20.

  16. Правила составления, подачи и рассмотрения заявки на официальную регистрацию программы для электронных вычислительных машин и заявки на официальную регистрацию баз данных: Утв. приказом Роспатента от 25.02.2003 г. № 25// Российская газета №63 от 03.04.2003 г.

Приложение 1


Листинг модуля “Main” программы на Delphi 7.0
{*************************************************************** }

{ Модуль Main }

{ Copyright (c) 2010 Сафиуллин Ф.Н. }

{ }

{ Разработчик: Сафиуллин Ф.Н. }

{ Модифицирован: 28 января 2010 г. }

{ }

{*************************************************************** }
unit Main;
interface
uses

Windows, Classes, Messages, SysUtils, Variants, Graphics, Controls, Math,Forms,

Dialogs, StdCtrls, ExtDlgs, ExtCtrls, Mask, ComCtrls, StrUtils,// модули Delphi

StegoFunc; // модуль основных функция и процедур стеганографии
type

TForm1 = class(TForm)

Button_OpenImg: TButton;

Button_Write: TButton;

Button_SaveImg: TButton;

Button_Read: TButton;

OpenPictureDialog_Img: TOpenPictureDialog;

SaveDialog_Img: TSaveDialog;

Image_Write: TImage;

Image_Read: TImage;

Memo_Txt: TMemo;

Password: TEdit;

Label_Img: TLabel;

Label_Txt: TLabel;

Label_Password: TLabel;

Label3: TLabel;

Label2: TLabel;

Label4: TLabel;

Label5: TLabel;

Bevel1: TBevel;

Bevel2: TBevel;

CheckBox_Marker: TCheckBox;

Label_Time: TLabel;

ProgressBar: TProgressBar;

Label6: TLabel;

Edit_R: TEdit;

Label7: TLabel;

Label8: TLabel;

Edit_G: TEdit;

Label9: TLabel;

Edit_B: TEdit;

Label10: TLabel;

procedure Button_OpenImgClick(Sender: TObject);

procedure Button_WriteClick(Sender: TObject);

procedure Button_SaveImgClick(Sender: TObject);

procedure Button_ReadClick(Sender: TObject);

procedure Memo_TxtChange(Sender: TObject);

procedure CheckBox_MarkerClick(Sender: TObject);

procedure Edit_KeyPress(Sender: TObject; var Key: Char);

procedure Edit_Change(Sender: TObject);

private

{ Private declarations }

public

InfoCont: Integer; // Переменная для хранения значения объема информации

end;
var

Form1: TForm1;
implementation
{$R *.dfm}
//************************************************************

// Процедура - обработчик нажатия кнопки "Открыть изображение"

procedure TForm1.Button_OpenImgClick(Sender: TObject);

var

FileName : String;

Pixels: Integer;

begin

If OpenPictureDialog_Img.Execute then

begin
// Открываем изображение для встраивания в него информации

FileName := OpenPictureDialog_Img.FileName;
// Выводим изображение на форму

image_Write.Picture.Bitmap.Create;

image_Write.Picture.Bitmap.LoadFromFile(FileName);

image_Read.Picture := nil;
// Вычислим количество пикселей в изображении

Pixels := image_Write.Picture.Bitmap.Width

* image_Write.Picture.Bitmap.Height;
// Выводим информацию об объеме изображения

Label_Img.Caption := 'Объем изображения: '

+ IntToStr((Pixels * (StrToInt(Edit_R.Text)

+ StrToInt(Edit_G.Text) + StrToInt(Edit_B.Text)))

div 8) + ' байт';

end

else

exit;

end;
//************************************************************

// Процедура - обработчик нажатия кнопки "Встроить информацию в изображение"

procedure TForm1.Button_WriteClick(Sender: TObject);

var

StartTime : TDateTime;

Indx, Indy, NewVal, i, j, ImgHeight, ImgWidth: Integer;

B, G, R, B_byte, G_byte, R_byte, iMod, iDiv: byte;

Mv, Mvb, Marker: String;

KeyMatrix: TIntegerArray;

IndMatrix: TStringArray;

error, MarkerCheck: boolean;

Bmp: TBitmap;

List: String;

begin
// Изображение из формы в переменную Bmp

Bmp := TBitmap.Create;

Bmp.Assign(image_Write.Picture.Bitmap);
// Читаем информацию с формы в переменную List

List := Memo_Txt.Text;
// Проверка заполнена ли текстовая информация

if List = '' then

begin

MessageDlg('Не указана текстовая информация!', mtWarning, [mbOk] , 0);

exit;

end;
// Проверка выбрано ли изображение

if Bmp.Empty then

begin

MessageDlg('Не выбрано изображение!', mtWarning, [mbOk] , 0);

exit;

end;
// Учитываем время начала встраивания

StartTime := Time;

Label_Time.Caption := 'Время встраивания: ';
// Формирование последовательности бит встраиваемой информации

for i:=1 to Length(List) do

begin

iDiv:=Ord(List[i]);

for j:=1 to 8 do

begin

iMod := iDiv mod 2;

iDiv := iDiv div 2;

Mv := IntToStr(iMod) + Mv;

end;

Mvb := Mvb + Mv;

Mv := '';

end;
// Определяем переменные

ProgressBar.Min := 1;

ProgressBar.Max := Length(Mvb);

MarkerCheck := CheckBox_Marker.Checked;

Marker := '';

ImgHeight := bmp.Height;

ImgWidth := bmp.Width;

error := false;

B_byte := 0;

G_byte := 0;

R_byte := 0;
// Формирование основного ключа для вычисления координат x и y

KeyMatrix := FormingKey(Password.Text,Marker);
// Добавление маркера окончания, если он используется

if MarkerCheck then Mvb := Mvb + Marker;
// Производим встраивание информации

for i:=1 to Length(Mvb) do

begin
// Отображение на форме состояние процесса

ProgressBar.Position := i;
// Проверим, нужно ли генерировать новую точку для встраивания

if (i = 1) or ((B_byte = StrToInt(Edit_B.Text))

and (G_byte = StrToInt(Edit_G.Text))

and (R_byte = StrToInt(Edit_R.Text))) then

begin

// Определяем координаты X и Y для первой точки

GenerateIndXIndY(IndX,IndY,ImgHeight,ImgWidth,KeyMatrix,IndMatrix,i,error);
if error then exit;
B_byte := 0;

G_byte := 0;

R_byte := 0;

end;
// Читаем цветовые значение RGB точки

R := Byte(Bmp.Canvas.Pixels[(Indx-1), (Indy-1)] shr 0);

G := Byte(Bmp.Canvas.Pixels[(Indx-1), (Indy-1)] shr 8);

B := Byte(Bmp.Canvas.Pixels[(Indx-1), (Indy-1)] shr 16);
// Встраиваем бит информации в цветовую область точки

If B_byte < StrToInt(Edit_B.Text) then

begin

WriteLSB(B,8-B_byte,Mvb[i]);

Inc(B_byte);

end

else If G_byte < StrToInt(Edit_G.Text) then

begin

WriteLSB(G,8-G_byte,Mvb[i]);

Inc(G_byte);

end

else If R_byte < StrToInt(Edit_R.Text) then

begin

WriteLSB(R,8-R_byte,Mvb[i]);

Inc(R_byte);

end;
// Формируем точку RGB

NewVal := 0;

NewVal := NewVal shl 8;

NewVal := NewVal or B;

NewVal := NewVal shl 8;

NewVal := NewVal or G;

NewVal := NewVal shl 8;

NewVal := NewVal or R;
// Записываем новые цветовые значения RGB в точку

Bmp.Canvas.Pixels[(Indx-1), (Indy-1)] := NewVal;

end;
// Выводим итоговое изображение на форму

image_Read.Picture.Bitmap := Bmp;
Label_Time.Caption := 'Время встраивания: ' + TimeToStr(Time - StartTime);
MessageDlg('Встраивание успешно завершено.', mtInformation, [mbOk] , 0);
// Обнуление переменных

List:= '';

Bmp.Free;
end;
//************************************************************

// Процедура - обработчик нажатия кнопки "Посмотреть встроенную информацию"

procedure TForm1.Button_ReadClick(Sender: TObject);

var

Indx, Indy, i, j, ImgHeight, ImgWidth, Size: Integer;

B, G, R, B_byte, G_byte , R_byte, Val: byte;

List, Mv, Mvb, Marker: String;

KeyMatrix: TIntegerArray;

IndMatrix: TStringArray;

error, MarkerCheck: boolean;

Bmp: TBitmap;

begin
// Изображение из формы в переменную

Bmp := image_Read.Picture.Bitmap;
// Проверка выбрано ли изображение

if Bmp.Empty then

begin

MessageDlg('Не выбрано изображение!', mtWarning, [mbOk] , 0);

exit;

end;
// Определяем переменные

MarkerCheck := CheckBox_Marker.Checked;

Marker := '';

ImgHeight := bmp.Height;

ImgWidth := bmp.Width;

error := false;

B_byte := 0;

G_byte := 0;

R_byte := 0;
// Формирование основного ключа для вычисления координат x и y

KeyMatrix := FormingKey(Password.Text,Marker);
// Если используется маркер окончания информации

if MarkerCheck then

Size := ImgHeight * ImgWidth

else

Size := InfoCont*8;
// Производим извлечение информации

for i:=1 to Size do

begin
// Проверим, нужно ли генерировать новую точку для встраивания

if (i = 1) or ((B_byte = StrToInt(Edit_B.Text))

and (G_byte = StrToInt(Edit_G.Text))

and (R_byte = StrToInt(Edit_R.Text))) then

begin

// Определяем координаты X и Y для первой точки

GenerateIndXIndY(IndX,IndY,ImgHeight,ImgWidth,KeyMatrix,IndMatrix,i,error);
if error then exit;
B_byte := 0;

G_byte:= 0;

R_byte := 0;

end;
// Читаем цветовые значение RGB точки

R := Byte(Bmp.Canvas.Pixels[(Indx-1), (Indy-1)] shr 0);

G := Byte(Bmp.Canvas.Pixels[(Indx-1), (Indy-1)] shr 8);

B := Byte(Bmp.Canvas.Pixels[(Indx-1), (Indy-1)] shr 16);
// Читаем бит информации из цветовой области точки

If B_byte < StrToInt(Edit_B.Text) then

begin

ReadLSB(B,8-B_byte,Mvb);

Inc(B_byte);

end

else If G_byte < StrToInt(Edit_G.Text) then

begin

ReadLSB(G,8-G_byte,Mvb);

Inc(G_byte);

end

else If R_byte < StrToInt(Edit_R.Text) then

begin

ReadLSB(R,8-R_byte,Mvb);

Inc(R_byte);

end;
// Проверка метки, если найдена завершаем цикл

if MarkerCheck and (AnsiRightStr(Mvb, 32) = Marker) then break;
end;
// Производим преобразование последовательности бит в сообщение

List := '';

i := 1;
// Если используется маркер окончания информации

if MarkerCheck then

Size := Length(Mvb)-32

else

Size := Length(Mvb);
while i <= Size do

begin

Mv := copy(Mvb,i,8);

Val := 0;

for j:=8 downto 1 do

begin

Val := Val + StrToInt(Mv[j])*Round(Power(2,8-j));

end;
List := List + Chr(Val);
i:=i+8;

end;
// Выводим сообщение на экран

ShowMessage(List);
end;
//************************************************************

// Процедура - обработчик нажатия кнопки "Сохранить изображение"

procedure TForm1.Button_SaveImgClick(Sender: TObject);

var

Bmp: TBitmap;

begin
// Изображение из формы в переменную

Bmp := image_Read.Picture.Bitmap;
// Проверка выбрано ли изображение

if Bmp = nil then

begin

MessageDlg('Не выбрано изображение!', mtWarning, [mbOk] , 0);

exit;

end;
// Открываем стандартную форму сохранения изображения

If SaveDialog_Img.Execute then

begin

// Сохраняем изображение

Caption := SaveDialog_Img.FileName;

Bmp.SaveToFile(Caption);

end

else

exit;

end;
//************************************************************

// Процедура - событие при изменении полея 'Memo_Txt'

procedure TForm1.Memo_TxtChange(Sender: TObject);

begin
// Вычисляем объем информации

if CheckBox_Marker.Checked then

InfoCont := Length(Memo_Txt.Text) + 4

else

InfoCont := Length(Memo_Txt.Text);
Label_Txt.Caption := 'Объем информации: ' + IntToStr(InfoCont) + ' байт';
end;
//************************************************************

// Процедура - событие при изменении поля 'CheckBox_Marker'

procedure TForm1.CheckBox_MarkerClick(Sender: TObject);

begin
// Вычисляем объем информации

if CheckBox_Marker.Checked then

InfoCont := Length(Memo_Txt.Text) + 4

else

InfoCont := Length(Memo_Txt.Text);
Label_Txt.Caption := 'Объем информации: ' + IntToStr(InfoCont) + ' байт';
end;
//************************************************************

// Процедура - событие при вводе количества бит в области

procedure TForm1.Edit_KeyPress(Sender: TObject; var Key: Char);

begin

// Ограничение по вводу числа от 0 до 8

if Not (Key in ['0'..'8', #8])then Key:=#0;

end;
//************************************************************

// Процедура - событие при окончаниии вводе количества бит в области

procedure TForm1.Edit_Change(Sender: TObject);

var

Pixels : Integer;

begin

// Если поля не заполнены им присваевается ноль

if Edit_R.Text = '' then Edit_R.Text := '0';

if Edit_G.Text = '' then Edit_G.Text := '0';

if Edit_B.Text = '' then Edit_B.Text := '0';
// Вычислим количество пикселей в изображении

Pixels := image_Write.Picture.Bitmap.Width

* image_Write.Picture.Bitmap.Height;
// Выводим информацию об объеме изображения

Label_Img.Caption := 'Объем изображения: '

+ IntToStr((Pixels * (StrToInt(Edit_R.Text)

+ StrToInt(Edit_G.Text) + StrToInt(Edit_B.Text)))

div 8) + ' байт';

end;

end.

1   2   3   4   5   6   7   8   9   10

Похожие:

Дипломному проекту на тему: «Разработка методов встраивания информации в пространственную область изображения» icon Дипломному проекту на тему: «Разработка методов встраивания информации...
Санкт-Петербургский государственный электротехнический университет “лэти” им. В. И. Ульянова (Ленина)” (СПбгэту)
Дипломному проекту на тему: «Разработка методов встраивания информации в пространственную область изображения» icon Анализ стойкости метода коха-жао стеганографического встраивания...
Аннотация: Рассмотрен метод стеганографического встраивания информации Коха-Жао. В статье проведен анализ стойкости данного метода...
Дипломному проекту на тему: «Разработка методов встраивания информации в пространственную область изображения» icon Пояснительная записка к дипломному проекту на тему индивидуальный жилой дом в г. Тюмени
Исходные данные к проекту -задание на проектирование,рабочие чертежи марки ас,ГП. Материалы инженерно-геологических изысканий
Дипломному проекту на тему: «Разработка методов встраивания информации в пространственную область изображения» icon Пояснительная записка к дипломному проекту на тему: «Разработка автоматизированной...
Тема дипломного проекта (работы) Разработка автоматизированной системы печати ценников на витрины автосалона на базе ms access
Дипломному проекту на тему: «Разработка методов встраивания информации в пространственную область изображения» icon Пояснительная записка к дипломному проекту на тему: «Разработка автоматизированной...
Тема дипломного проекта (работы) Разработка автоматизированной системы инвентаризации комплектующих для сборки компьютеров на базе...
Дипломному проекту на тему: «Разработка методов встраивания информации в пространственную область изображения» icon Инструкция пользователя. 23
Разработка методов информационного поиска на основе методов интеллектуального анализа данных. 8
Дипломному проекту на тему: «Разработка методов встраивания информации в пространственную область изображения» icon Пояснительная записка к дипломному проекту включает в себя: страниц...
Тема дипломного проекта «Проект программно-методического комплекса автоматизации обработки данных и решения задач с использованием...
Дипломному проекту на тему: «Разработка методов встраивания информации в пространственную область изображения» icon Пояснительная записка к дипломному проекту включает в себя: 104108...
Тема дипломного проекта «Проект программно-методического комплекса автоматизации обработки данных и решения задач с использованием...
Дипломному проекту на тему: «Разработка методов встраивания информации в пространственную область изображения» icon Реферат Пояснительная записка к дипломному проекту включает в себя:...
Тема дипломного проекта «Проект программно-методического комплекса для оптимизации распределения заданий по формированию твердых...
Дипломному проекту на тему: «Разработка методов встраивания информации в пространственную область изображения» icon Пояснительная записка к курсовому проекту на тему микропроцессорная...

Литература


При копировании материала укажите ссылку © 2015
контакты
literature-edu.ru
Поиск на сайте

Главная страница  Литература  Доклады  Рефераты  Курсовая работа  Лекции