Современные информационные технологии /3 Программное обеспечение

Старший преподаватель Ильницкий В.Г.

Костанайский государственный университет им.А.Байтурсынова

Пример использование одного из стеганографических методов скрытия информации

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

Стеганогра́фия (от греч. στεγανοσ — скрытый и греч. γραφω — пишу, буквально «тайнопись») — это наука о скрытой передаче информации путём сохранения в тайне самого факта передачи. В отличие от криптографии, которая скрывает содержимое секретного сообщения, стеганография скрывает само его существование.

К одному из наиболее известных методов стегонографии, используемых в вычислительной технике, относится метод, который прячет передоваемую информацию внутри файла носителя за счет замены менее значимых битов информации файла носителя на биты тайного сообщения. Такими файлами носителями служат графические или звуковые файлы. Искажения получаются столь незначительными, что не позволяют увидеть изменения невооруженным глазом. Факт передачи сообщения для большинства пользователей остается незамеченным. Давайте рассмотрим пример с графическим файлом носителем. Формат хранения графического изображения в файле с расширением *.BMP. Каждый байт представляет собой яркость цвета. Предлагается пример программы, которая позвалоляет скрыть информацию внутри такого файла, заменяя младший полубайт яркости точки на скрываемую информацию.

 

 

 

 

 


Рассмотрим код программы:

Var f: file of  byte;

          B1, B2, B3, i, n : Byte; 

          S : String;  //     -  шифруемое сообщение

Begin

      S :=  Edit1.Text;

      n :=  Length( S );

      OpenDialjg1.Execute;

      AssignFile( f, OpenDialog1.FileName); Reset( f );

      Seek( f, 100);  // -  Отступаем 100 байт, чтобы не испортить заголовок файла носителя

      Read( f, B1 );  Read( f, B2 );

      B3 := n;   // - Сначала в файл пишем длину сообщения

      B1 : = (B1 div 16)*16 + (B3 div 16);      B2 : = (B2 div 16)*16 + (B3 mod 16);

      Seek( f, 100);        Write( f, B1 );  Write( f, B2 );

      For i:=1 to n do

        begin          Seek( f, 100 + i*2);   Read( f, B1 );  Read( f, B2 );

          B3 := ord( S[ I ]);

          B1 : = (B1 div 16)*16 + (B3 div 16);B2 : = (B2 div 16)*16 + (B3 mod 16);

          Seek( f, 100 + i*2 );    Write( f, B1 );  Write( f, B2 );

        end;

      CloseFile( f );

End;

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

Var f: file of  byte;

          B1, B2, B3, i, n : Byte; 

          S : String;  //     -  шифруемое сообщение

Begin      S :=  ‘’;    

               OpenDialjg1.Execute;

           AssignFile( f, OpenDialog1.FileName); Reset( f );

      Seek( f, 100);  // -  Отступаем 100 байт, для заголовка файла носителя

      Read( f, B1 );  Read( f, B2 );

      n := (B1 mod 16)*16 + (B2 mod 16); // - считываем  длину сообщения

      For i:=1 to n do

        begin          Seek( f, 100 + i*2);     Read( f, B1 );  Read( f, B2 );

             B3 := (B1 mod 16)*16 + (B2 mod 16);

            S := S + chr( B3 );

        end;

      CloseFile( f );

End;

 

В заключении хотелось бы отметить, что не каждый файл может быть файлом носителем. Так, например, картинки в формате *.Jpg являются файлами изображения со сжатием информации и замена любого бита повлечет разрушение изображения на файле носителе, что станет сразу - же заметно.

 

Литература

1      Сатмаганбетова Ж. З. УМКД по дисциплине Информационная безопасность и защита информации. КГУ им.А.Байтурсынова,2010

2      Собейкис В. Г.  Азбука хакера 3. Компьютерная вирусология. Учебная литература. - М.:      Издатель Осипенко А.И, 2006. - 512 с.

3      Брюс Шнайер  Прикладная криптография. Учебная литература СПб.: БХВ-Петербург, 2003 -500с

4      С.К. Варлатая, М.В. Шаханова. Аппаратно-программные средства и методы защиты  информации. Учебное пособие. Владивосток Изд-во ДВГТУ, 2007