20945

Створення програми приховання повідомлення у графічному файлі за допомогою стеганографічних перетворень

Лабораторная работа

Информатика, кибернетика и программирование

h include iostream include string using namespace std int mainint argc char argv[] { HANDLE hFile hFileMess hFileCont; BYTE pdbFileByte pdbMessByte; const BYTE dbKeySize = 8; BYTE dbKey[dbKeySize]={4160824202832}; BYTE dbKey[dbKeySize]={12730546}; BYTE dbKey[dbKeySize]={01234567}; DWORD dwMessSizedwFileSizedwRealFiledwRealMess; DWORD dwOffsetPictdwPictSize; hFile = CreateFileargv[1]GENERIC_READFILE_SHARE_READNULLOPEN_EXISTING0NULL; dwFileSize = GetFileSizehFileNULL; pdbFileByte = new...

Украинкский

2013-08-01

69.4 KB

2 чел.

Міністерство освіти, науки, молоді та спорту України

Національний технічний Університет “ХПІ”

“ХАРКІВСКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ”

Кафедра “ Обчислювальна техніка та програмування ”

Лабораторна робота №8

по курсу “Захист інформації у комп’ютерних системах та мережах”

 

                                                                                                Виконав:

                                                                                                      ст. гр КІТ 39

 Родін С.І

                                                                                                 Перевірив:

Межерицький С.Г

Харків 2012

Варіант №15

Ціль роботи

Створення програми приховання повідомлення у графічному файлі за допомогою стеганографічних перетворень.

Постановка задачі

Необхідно розробити і налагодити дві програми:

 Програма приховання повідомлення у графічному файлі.

 Програма витягу скритого повідомлення з файлу.

Індивідуальне завдання:Метод квантування ображення

Програма приховання повідомлення.

#include "stdafx.h"

#include "SteganoMessage.h"

#include <iostream>

#include <string>

using namespace std

int main(int argc, char* argv[])

{

HANDLE hFile, hFileMess, hFileCont;

BYTE *pdbFileByte, *pdbMessByte;

 

 const BYTE dbKeySize = 8;

//BYTE dbKey[dbKeySize]={4,16,0,8,24,20,28,32};

BYTE dbKey[dbKeySize]={1,2,7,3,0,5,4,6};

//BYTE dbKey[dbKeySize]={0,1,2,3,4,5,6,7};

 DWORD dwMessSize,dwFileSize,dwRealFile,dwRealMess;

 DWORD *dwOffsetPict,*dwPictSize;

 hFile = CreateFile(argv[1],GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,0,NULL);

dwFileSize = GetFileSize(hFile,NULL);

pdbFileByte = new BYTE[dwFileSize];

ReadFile(hFile,pdbFileByte,dwFileSize,&dwRealFile,NULL);

 

 dwOffsetPict =(DWORD*) &pdbFileByte[10];

 dwPictSize = (DWORD*) &pdbFileByte[34];

SteganoMessage sm;

 int  bBitsCount = 7;

do

{

 cout<<"Bits: ";

 cin>>bBitsCount;

 } while( bBitsCount > 8 );

sm.SetCode(bBitsCount);

sm.SetContainer(&pdbFileByte[*dwOffsetPict],*dwPictSize);  

sm.SetKey(dbKey,dbKeySize);

 

if(argc >= 3)

{

 hFileMess = CreateFile(argv[2],GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,0,NULL);

 

 char cFileContName[256];

 strcpy(cFileContName,argv[1]);

 sprintf(&cFileContName[strlen(argv[1])-4],"_bits%d.bmp\0",bBitsCount);

 hFileCont = CreateFile(cFileContName,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,0,NULL);

 BYTE dbFileNameLength = strlen(argv[2]);  

 for(int i = dbFileNameLength; (i>0) && (argv[2][i]!=0x5C);i--);  

 i++;

 dbFileNameLength-=(i-1);

 DWORD dwMessFileSize = GetFileSize(hFileMess,NULL);

 dwMessSize = dwMessFileSize + 4 + dbFileNameLength;

 pdbMessByte = new BYTE[dwMessSize];  

 DWORD dwTempSize = dwMessSize - 4;

 strcpy((char*)&pdbMessByte[4],&argv[2][i]);

 for(i=0;i<4;i++)

 {

  pdbMessByte[i] = (BYTE) dwTempSize;

  dwTempSize >>= 8;

 }    

 ReadFile(hFileMess,&pdbMessByte[4+dbFileNameLength],dwMessFileSize,&dwRealMess,NULL);  

 sm.SetMessage(pdbMessByte,dwMessSize);

 if(sm.CheckSize())

 {

  cout<<"Start coding"<<endl;

  sm.Encipher();  

 }

 else

 {

  cout<<"Message is too large"<<endl;

  cin.get();

 }

 

 WriteFile(hFileCont,pdbFileByte,dwFileSize,&dwRealFile,NULL);

 CloseHandle(hFileCont);

}

else

{  

 sm.Decode(&pdbMessByte,&dwMessSize);  

 for(int i = 0;(i<dwMessSize) && (pdbMessByte[i]!=0x00);i++);

 i++;

 hFileMess = CreateFile((char*)pdbMessByte,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,0,NULL);

 WriteFile(hFileMess,&pdbMessByte[i],dwMessSize-i,&dwRealMess,NULL);  

}

CloseHandle(hFile);

CloseHandle(hFileMess);  

delete pdbMessByte;

delete pdbFileByte;

return 0;

}

//c:\test.bmp c:\text.txt

//c:\res.bmp

Програма витягу скритого повідомлення з файлу

#include "stdafx.h"

#include "Stegano.h"

#include <iostream>

using namespace std;

//////////////////////////////////////////////////////////////////////

// Construction/Destruction

//////////////////////////////////////////////////////////////////////

Stegano::Stegano()

{

m_pdbBits = NULL;

}

Stegano::~Stegano()

{

if (m_pdbBits)

 delete m_pdbBits;

}

void Stegano::SetCode(BYTE dbBit)

{

m_dbBit = dbBit;

m_dbSize = 8/dbBit;

if(8 % dbBit)

 m_dbSize++;

m_pdbBits = new BYTE[m_dbSize];

m_dbMask = (0xFF>>m_dbBit)<<m_dbBit;

}

void Stegano::Coding(BYTE dbByte2Code)

{   

for(BYTE i = 0,j=0; i<8;i+=m_dbBit,j++)

{

 m_pdbBits[j] = dbByte2Code;

 m_pdbBits[j] <<= (8 - m_dbBit);

 m_pdbBits[j] >>= (8 - m_dbBit);

 dbByte2Code >>= m_dbBit;   

}

}

bool Stegano::Decoding(BYTE dbByte2Decode, BYTE* dbMess)

{

 

static BYTE i = 0;

BYTE dbShift = m_dbBit;

if(m_dbBit>(8-i))

 dbShift = 8-i;

dbByte2Decode <<= (8 - dbShift);

*dbMess >>= dbShift;

*dbMess+=dbByte2Decode;

i+=dbShift;

if(i==8)

{

 i = 0;

 return true;

}

return false;

}

BYTE Stegano::GetBitsSize()

{

return m_dbSize;

}

BYTE Stegano::GetMask()

{

return m_dbMask;

}

Рисунок 2 – витяг с файлу

Алгоритм

Рисунок 3 – Блок схема

Висновки: cтворив програму приховання повідомлення у графічному файлі за допомогою стеганографічних перетворень.


 

А также другие работы, которые могут Вас заинтересовать

46124. Технология развития общей, мелкой моторики рук у детей с нарушениями речи 16 KB
  Коррекция особенностей моторного развития детей направлена на нормализацию мышечного тонуса исправление неправильных поз развитие статической выносливости равновесия упорядоченного темпа движений синхронного взаимодействия между движениями и речью запоминание серии двигательных актов воспитание быстроты реакции на словесные инструкции развитие тонких двигательных координаций необходимых для полноценного становления навыков письма. Этому служат следующие упражнения: сжимать резиновую грушу или теннисный мячик; разгибать и...
46125. Методика развития артикуляционной моторики у детей с речевыми нарушениями 16.5 KB
  Особо можно выделить кончик языка ибоковые края передней и средней частей языка так как от их работы зависит качество звуков. В артикуляционную гимнастику входят упражнения в ходе которых вырабатываются следующие положения кончика языка: опущен за нижние зубы Почистим зубы поднят вверх к альвеолам Маляр Грибок Гармошка. После того как каждое положение будет отработано дается упражнение на переключение с одного положения языка на другое Качели. Средняя часть спинки языка наиболее ограничена в...
46126. Технология формирования интонационной стороны речи у детей. Развитие дыхательной и голосовой функций 19.5 KB
  ВОССТАНОВЛЕНИЕ ГОЛОСА У ДЕТЕЙ Восстановление голосовой функции у детей осуществляется комплексно совместными усилиями медицины и специализированной области логопедии фонопедии. Однако начальным звеном всегда является психотерапевтическая беседа основная цель которой убедить ребенка в возможности восстановления голоса установить с ним контакт включить его в активную работу разъяснив цели и задачи коррекции. Собственно голосовые упражнения состоят из вызывания голоса закрепления голоса и автоматизации процесса голосоведения....
46127. Характеристика этапов и содержания работы по формированию правильного произношения у детей(не выделяют точное колличество этапов,поэтому это не носит принципиального характера. 23.5 KB
  Логопед в ходе выполнения ребенком задания проверяет правильно ли он выбрал позу для произношения нужного звука. Поскольку это не всегда приводит к положительным результатам логопеду следует в таких случаях отвлечь внимание от звука переключив на другой объект. По мере овладения движением необходимым для реализации звука логопед переходит к отработке движений обязательных для других звуков. Этап формирования первичных произносительных умений и навыков Цель данного этапа заключается в том чтобы сформировать у ребенка первоначальные...
46128. Организация и содержание совместной работы логопеда и воспитателя (учителя) детского сада (школы) для детей с нарушениями речи 21 KB
  Организация и содержание совместной работы логопеда и воспитателя учителя детского сада школы для детей с нарушениями речи. Взаимодействие логопеда и воспитателя В задачу воспитателя входит выявление степени отставания детей в усвоении программного материала по всем видам учебной и игровой деятельности. Это необходимо для устранения пробелов в развитии детей и создания условий для успешного обучения в среде нормально развивающихся сверстников. С этой целью в первые две недели воспитатели определяют возможности детей в изобразительной...
46129. Индивидуальные логопедические занятия с детьми дошкольного возраста как эффективная форма коррекционной работы 22.5 KB
  Не менее важным является развитие фонематического слуха и фонематического восприятия. Активизация мыслительной деятельности детей развитие внимания и памяти необходимые условия для успешного и разностороннего обучения дошкольников. развитие памяти внимания мышления воображения обязательная составляющая индивидуального логопедического занятия. Целенаправленная работа по развитию мелкой моторики пальцев рук ускоряет созревание речевых областей истимулирует развитие речи ребенка позволяет быстрее исправить дефектное звукопроизношение.
46130. Фронтальные логопедические занятия в условиях дошкольного образовательного учреждения компенсирующего вида (с логопедическими группами) 21 KB
  Обучение на занятиях основная форма коррекционновоспитательной работы с детьми имеющая важное значение для формирования коммуникативной функции речи и общей готовности к школе. Дети с нарушениями речи нередко характеризуются нарушением внимания пониженной познавательной активностью замкнутостью недостаточно сформированной игровой деятельностью и другими особенностями психического развития. На групповых занятиях логопед формирует умение войти в общий темп работы следовать общим инструкциям оценивать достижения партнера...
46131. Сигматизм. Определение, этиология, виды. Логопедические технологии устранения сигматизма у детей 40 KB
  Кончик языка упирается в нижние резцы передняя часть спинки языка выгнута. При таком укладе образуется узкий проход круглая щель между кончиком языка и передними верхними зубами. Вдоль языка по его средней линии образуется желобок. Для звука характерна сложная язычная артикуляция: он начинается со смычного элемента как при т при этом кончик языка опущен и касается нижних зубов.
46132. Вивчення властивостей альгінату натрію з метою використання його у технології десертної продукції молодіжного кафе "Граціо" 2.03 MB
  Створення такого підприємства харчування як кафе це крок вперед на шляху до гідного дозвілля молоді а отже і добробуту майбутньої нації 1. ОБГРУНТУВАННЯ ПРОЕКТУ КАФЕ 1. Маркетингове обґрунтування проекту кафе що проектується 1. Характеристика маркетингового середовища кафе що проектується Науково розроблена концепція аналізу та обліку вимог покупців вимог конкретного сегменту ринку розробка відповідно до виявлених вимог нового товару система організації його продажу включаючи заходи стимулювання та реклами а також система...