Стеганография с использованием компьютерной графики

VI Международный конкурс научно-исследовательских и творческих работ учащихся
Старт в науке

Стеганография с использованием компьютерной графики

Агалакова  А.Ю. 1
1Государственное образовательное учреждение «Коми республиканский лицей при Сыктывкарском государственном университете»
Дуркин  О.Л. 1
1Государственное образовательное учреждение «Коми республиканский лицей при Сыктывкарском государственном университете»
Автор работы награжден дипломом победителя III степени
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Введение

Мы с вами живем в веке цифровых технологий, когда передача разного рода информации стала обыденной вещью, и никого этим не удивишь, разве только, что содержимым пересылаемого сообщения. В наше время безопасность и анонимность в сети Интернет подвергается большой опасности, поскольку все больше и больше людей стремятся узнать наши с вами секреты и выложить их на всеобщее обозрение. И у них это весьма неплохо получается, поскольку не все пользователи персональных компьютеров обладают достаточным количеством знаний, чтобы предотвратить кражу или потерю информации, хранящейся на их портативном устройстве. Именно поэтому такой раздел криптографии как стеганография играет немалую роль в нашей с вами жизни. Кто из нас ни пытался придумать свой собственный шифр, свой особенный язык, который никто кроме тебя и твоих друзей не понимал? Кто ни разу не пробовал изменять слова, чтобы получалась какая-то несуразица, которая имела смысл только для определенной группы людей?Сейчас, спустя несколько лет, а то и несколько десятков лет такие вещи становятся не только детской забавой, но и довольно-таки сложной и трудоемкой работой, которая заключается в попытках спрятать то самое заветное и сокровенное, то, чем вы не готовы делиться со всеми людьми, кроме самых близких и людей, которым вы доверяете. Именно поэтому некоторые пользователи стремятся спрятать, закодировать информацию, чтобы никто не смог ее заполучить и использовать в своих корыстных целях.

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

Цель достигается посредством решения следующих задач:

Изучить методы стеганографии

Изучить строение графических файлов

Разработать алгоритмы записи и считывания сообщения в/из графического файла

Реализовать алгоритмы на языке PascalABC.NET

Проанализировать работу

История

Термин «стеганография» был впервые введен в 1499 году аббатом бенедиктинского аббатства Спонхайма Иоганном Тритемием, когда он написал свой трактат «Стеганография», зашифрованным под магическую книгу. На первый взгляд книга посвящена магии и использованию духов для общения на больших расстояниях. Однако ключ к дешифровке книги показывает, что речь в ней идёт о криптографии. Но это не первый раз, когда люди пытались скрыть или зашифровать информацию. Еще сам Геродот, живший в пятом веке до нашей эры, описал два способа сокрытия информации. Первый заключался в том, чтобы нанести текст на деревянную табличку, а после покрыть ее воском, чтобы первичного текста не было видно и о его существовании было трудно догадаться. После получения такого сообщения человек, знающий о спрятанном сообщении мог с легкостью его прочитать, после того как сдерет ненужный слой воска. А второй способ действительно требовал особого внимания, поскольку он не только занимал больше времени, чем первый, но и имел экстравагантный и странный подход. Потому что сначала нужно было обрить рабу голову, и после этого нужно было писать на ней какое-нибудь сообщение, и только после того, как его волосы отрастут, можно было отправлять сообщение адресату.Только у второго способа есть большой минус – таким образом нельзя было отправлять важные сообщения, потому что к моменту получения она могла легко потерять свою актуальность.

Применение

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

Всего существуют два направления ее использования:

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

И противозаконное, то есть использование различных методов кодирования для скрытой передачи информации в целях оповещения и/или обучения террористических групп о готовящемся теракте и/или различным техникам совершения терактов. Это направление также может быть использовано различными спецслужбами для скрытной передачи данных агентам, находящимся под прикрытием за границей. Так в 2010 году Служба внешней разведки Российской Федерации использовала специальное программное обеспечение, чтобы передать скрытую информацию в изображениях для связи с агентами без дипломатического прикрытия за рубежом.

К первому направлению стеганографии можно отнести

Скрытое хранение информации. То есть важен сам факт сокрытия информации, а не ее передача.

Защита исключительного (авторского) права, или использование информации, вписанной в файл, в качестве основного или дополнительного средства для защиты лицензионного права.

Защита подлинности документов. Это чем-то схожая технология с предыдущим пунктом, только здесь она используется для подтверждения подлинности. Если такая защита отсутствует, то изучаемый объект является подделкой.

Неотчуждаемость информации. То есть существует ряд документов, для которых важна целостность. Ее можно осуществить резервированием данных. Но что делать, если есть необходимость иметь документы в таком виде, чтобы невозможно было одну информацию отделить от другой? В качестве примера можно привести медицинские снимки. Многие авторы для надежности предлагают вовнутрь снимков вкраплять информацию об имени, фамилии и иных данных пациента.

Ко второму же направлению относятся такие пункты, как

Незаметная передача информации. В отличие от криптографических, стеганография может применяться как метод незаметной передачи информации.

Индивидуальный отпечаток в СЭДО (системе электронного документооборота). То есть использование индивидуального отпечатка внутри документов при работе с ними пользователем. Для этого должны быть написаны специальные приложения и/или драйверы, которые установлены и работают в системе. Таким образом, можно будет опознать, кто работал с документом, а кто нет.

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

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

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

Стеганографическое отвлечение. Данный метод используется для отвлечения внимания противника, то есть заставить его декодировать так называемую «пустышку». Этот метод можно использовать только в том случае, если генерация стегоконтейнеров на порядок дешевле, чем их кодировка.

Стеганографическое отслеживание. Это нечто схожее с пунктом №2, только цель заключается в том, чтобы поймать злоумышленника, который распространяет секретную информацию.[1,2,3]

Практическая часть

Начать работу было решено с изучения материалов на тему стеганографии. Было проанализировано несколько источников информации, чтобы получить лучшее представление, как о методах стеганографии, так и о стеганографии в целом, поскольку раньше таких вопрос поставлено не было. Были задействованы как электронные источники информации, так и бумажные – книги. После прочтения специальной литературы о стеганографии, нужно было получить представление о разных графических форматах, чтобы определиться с объектом будущей работы. Таким объектом стало изображение формата BMP. [4,5,6]

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

Ниже приведена таблица, показывающая назначение полей структуры BMP файла.

Таблица 1 - Строение BMP-изображения.

Смещение

Длина поля

Описание поля

Заголовок файла

0

2

Код 4D42h - Буквы 'BM'

2

4

Размер файла в байтах

6

2

0 (Резервное поле)

8

2

0 (Резервное поле)

10

4

Смещение, с которого начинается само изображение (растр).

Заголовок BITMAP (Информация об изображении)

14

4

Размер заголовка BITMAP (в байтах) равно 40

18

4

Ширина изображения в пикселях

22

4

Высота изображения в пикселях

26

2

Число плоскостей, должно быть 1

28

2

Бит/пиксел: 1, 4, 8 или 24

30

4

Тип сжатия

34

4

0 или размер сжатого изображения в байтах.

38

4

Горизонтальное разрешение, пиксел/м

42

4

Вертикальное разрешение, пиксел/м

46

4

Количество используемых цветов

50

4

Количество "важных" цветов.

Палитра

54

4*N

Палитра

Заголовок файла. Он состоит из 14 байтов, и в нем содержится информация о его размере и смещении, с которого начинается само изображение. Изменение этих служебных байтов приведет к потере изображения.

Заголовок Bitmap. Он состоит из 40 байтов, и в нем также содержится информация о ширине и высоте изображения, количества битов на один пиксель, тип сжатия и количество используемых цветов. Изменения этих байтов также может привести к полной потере изображения.

Палитра начинается с 54 байта. На первый взгляд это самая простая часть, поскольку на кодирование одного пикселя отводится 3 байта информации. Но все не так просто, как кажется.

Элемент палитры представляет собой четырёхбайтовую запись (структуру). В этой структуре хранятся составляющие R-красного, G-зеленого и B-синего цветов. Один байт зарезервирован. Палитра может и не использоваться, например в TrueColor.

Изображение сохраняется построчно снизу вверх. Для хранения каждой строки выделяется кратное 4 количество байт. В незначащих байтах хранится «мусор».Старшему биту или тетраде соответствует самый левый пиксел. При хранении изображения TrueColor каждому пикселу соответствуют три последовательные байта, хранящие составляющие цвета B, G, R; (не R, G, B).

После того, как мы разобралисьсо строением изображения, перед нами возник еще более трудный вопрос – как «прочитать» изображение и понять, что находится внутри. Через пару дней код был написан, и мы были удивлены тем, что в конце строки появляются пустые байты, которых быть недолжно. Мы долго не могли понять, почему появляются пустые байты, но через некоторое время мы поняли, что для каждой строки отводится кратное четырем количество байтов, и если изображение имело формат 10х10, то в конце каждой строки остаются 2 пустых байта, то есть 10*3=30 и следующее кратное четырем число – 32, отсюда «пустышки» и берутся.Не стоит забывать, что таких байтов может быть от 0 до 3, поскольку это остаток от деления на 4. Так как данный формат не использует никакого сжатия, то его разрешение не имеет значения, поэтому можно использовать нестандартные разрешения и на это никто не обратит внимания.

Сразу после этого перед нами встала еще одна задача – как определить нужные нам байты, пригодные для хранения информацию. Мы сразу же принялись за решение этой проблемы, и решение не заставило нас ждать. Нужная нам формула была выведена путем простого подсчета длины строки и использования знаний о строении BMP-изображения. Таким образом, мы вывели формулу, позволяющую нам безошибочно определять присутствие байтов, доступных для хранения информации. А если таких байтов нет, то мы выводим сообщение о непригодности файла для дальнейшего использования. Следующий алгоритм был очень прост, нам нужно было закодировать некоторое сообщение в BMP-изображение, эта задача была сразу же достигнута, после получения нужной нам формулы. Позже мы воспользовались этой формулой для того, чтобы раскодировать сообщение, находящееся в изображении. [7]

Так же мы решили, что лучшим вариантом будет создание нового изображения, содержащее текст, а не перезаписывать имеющееся, поскольку изображения могут быть слишком большими, что может вызвать ошибку в рабочей среде PascalABC.NET. Таким образом, исходное изображение не несло каких-либо изменений, и найти отличия между двумя изображениями не представлялось возможным. Так как исходное изображение не изменялось, то никто из пользователей ПК не сможет догадаться о каком-либо вмешательстве посторонних лиц.

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

При достижении предыдущих целей, было принято решение о создании дружелюбного интерфейса для пользователей.Во время поиска подходящего нам языка программирования, выбор пал на Lazarus, поскольку он имеет похожий синтаксис с PascalABC.Netи возможность создания форм и их компилирования. Код обеих программ, реализованных на Pascal, был перенесен в данную среду разработки и объединён в одно приложение, которое было способно, как кодировать введенный текст в изображение, так и декодировать и выводить его в специальные поля. [8,9]

Как только созданное приложение стало работать безошибочно, правильно обрабатывая входное изображение, нами было принято решение об изменении кода программы, с целью сделать ее более функциональной, а именно добавить в нее возможность кодирования не только в созданные нами изображения, содержащие пустые байты, но и в любое изображение формата BMP, путем изменения цветовой палитры. Было решено начать наше побочное исследование с изменения 50% палитры и понижать эту планку на 5% после каждого неудачного запуска. Как и было прогнозировано, изображение полностью потеряло свой «презентабельный» вид при изменении половины его палитры. После этого было проведено еще несколько тестов, которые показывают, насколько искажается изображение при изменении его палитры. Как только мы дошли до 10% от палитры изображения, мы решили остановиться, поскольку полученный результат нас полностью устраивал. На первый взгляд это может показаться весьма малым количеством, но для русского алфавита в стандартное изображение 1280х1024 может вместиться 131072 символа, что в свою очередь может составлять до 655360 бит или же 80 Кб. Если при этом пренебречь качеством используемого изображения, то есть преднамеренно сжать его, к примеру, из 1600х1200 в 1280х1024, то в полученное изображение можно будет закодировать текст более чем в 80Кб, поскольку представленное изображение будет с относительно низким качеством, и пиксели с закодированным текстом могут быть приняты за дефекты, полученные при сжатии. Кроме того, далее станетвозможным использовать изображения с различным форматом, поскольку изменяется непосредственно цветовая палитра изображения, практически без использования служебных байт, что в свою очередь позволит кодировать текст в большем количестве, без заметной потери качества изображения.

Заключение

В ходе проделанной нами работы цель была полностью достигнута, посредством выполнения всех поставленные задачи. Мы проанализировали большое количество различных источников информации по данной теме. Изучили различные методы стеганографии, рассмотрели всевозможные сферы применения и реализовали полученные знания на практике. В результате практической части работы была написана программа, реализующая один из методов. Кроме того, были получены некоторые побочные задачи, которые позволили нам улучшить программу и сделать ее не только более дружелюбной для простого пользователя, но и с болееширокими возможностями. В результате исследования были также выявлены недостатки изучаемого нами метода, а именно,низкая популярность формата BMP и ограниченность по объему сообщения. Например, чтобы записать сообщение длиной 255 символов нам понадобился файл размером в несколько мегабайт. В связи с этим наиболее перспективным форматом для записи скрытых сообщений будет MP3. Главным преимуществом этого формата является его повсеместная распространенность. И именно поэтому передача скрытой информации в файле MP3 не вызовет не малейших подозрений. Дальнейшая работа будет направлена на изучение структуры этого популярного аудио формата и написание программы для записи сообщений в MP3, незначительно влияя на качество звука или не влияя вообще.

Стеганография – один из самых увлекательных и эффективных методов сокрытия данных, которые использовались за всю историю человечества. Методы, способны разоблачить хитрые тактики злоумышленников, несовершенны, но радует то, что такие методы существуют. Есть очень много причин, по которым следует использовать стеганографию (подписи, пароли, «ключи»), но главная причина – это легкость в обращении и сложность при обнаружении. Главное помнить, что чем больше вы знаете о методах стеганографии, тем меньше вы имеете шансыпотерять свои личные и персональные данные и тем сложнее становится для вас попасть впросак, пользуясь всеми современными цифровыми устройствами и средствами поиска информации.

Литература

«Data Hiding in Multimedia - Theory and Applications» M. Meerwald

Электронный ресурс "Компьютерная стеганография – защита информации или инструмент преступления?" [сайт] URL http://www.crime-research.org/library/Steganos.htm (дата обращения 25.09.2018)

Электронныйресурс "What is Steganography?" [сайт] URL https://www.clear.rice.edu/elec301/Projects01/stegano.. (дата обращения 05.10.2018)

Википедия "Стеганография" [сайт] URL: http://ru.wikipedia.org/wiki/Стеганография (дата обращения 05.10.2018)

«Некоторые математические модели стеганографии и их статистический анализ» К. Пономарев

Электронный ресурс "Стеганоргафия" [сайт] URL http://habrahabr.ru/post/114597/ (дата обращения 7.10.2018)

Книга «Криптография без секретов» С. Баричева

Электронный ресурс "Принципы построения компьютерной стеганографии" [сайт] URL http://www.des-crypto.ru/stegano/princ/ (дата обращения 15.10.2018)

Книга «Цифровая стеганография» В. Грибунина

Просмотров работы: 276