Стеганография в XLS

Содержание

 

Введение………………………………………………………………………………………….2

Задание на курсовую работу…………………………………………………………………….3

  1. Теоретическая часть…………………………………………………………………...4
    1. Стеганография………………………………………………………………..…...4
    2. Основные методы стеганографии……………………………………………….6
  2. Практическая часть…………………………………………………………………...10
    1. Описание выбранного формата файла………………………………………….10
    2. Описание выбранного метода скрытия данных………………………………..10
    3. Описание программы………………………………………………………...…..10
    4. Анализ результатов работы программы………………………………………...12

Заключение…………………………………………………………………………………….14

Список использованной литературы…………………………………………………………15

Приложение 1 – диск с исходным кодом программы

Приложение 2 – изображения и  схемы

 

 

 

 

 

 

 

 

 

 

 

Введение

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

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

Разработкой таких мер защиты занимаются криптография и стеганография. Криптография - наука о методах преобразования (шифрования) информации с целью  ее защиты от незаконных пользователей. Стеганография - набор средств и  методов скрытия факта передачи сообщения. Шифр - способ, метод преобразования информации с целью ее защиты от незаконных пользователей. Основное отличие  криптографии от стеганографии можно  сформулировать следующим образом: стеганография скрывает сам факт передачи сообщения, а криптография считает, что сообщение (в шифрованном  виде) доступно незаконному пользователю, но он не может извлечь из этого  сообщения защищаемую информацию.

 

 

 

 

 

 

 

 

Задание на курсовую работу

  1. Познакомиться с теорией стеганографических методов.
  2. Выяснить и описать формат файла, предназначенного для скрытия данных, - .xls(xlsx).
  3. Предложить метод скрытия данных в файле соответствующего формата.
  4. Реализовать программу для ЭВМ, выполняющую скрытие и раскрытие данных выбранным методом.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.Теоретическая часть.

1.1. Стеганография.

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

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

До недавнего времени для  описания модели стеганографической системы  использовалась предложенная 1983 году Симмонсом так называемая «проблема  заключенных». Она состоит в том, что два индивидуума (Алиса и  Боб) хотят обмениваться секретными сообщениями без вмешательства  охранника (Вилли), контролирующего  коммуникационный канал. При этом имеется  ряд допущений, которые делают эту  проблему более или менее решаемой. Первое допущение облегчает решение  проблемы и состоит в том, что  участники информационного обмена могут разделять секретное сообщение (например, используя кодовую клавишу) перед заключением. Другое допущение, наоборот, затрудняет решение проблемы, так как охранник имеет право  не только читать сообщения, но и модифицировать (изменять) их.

Позднее, на конференции Information Hiding: First Information Workshop в 1996 году было предложено использовать единую терминологию и  обговорены основные термины.

Стеганографическая система или  стегосистема – совокупность средств  и методов, которые используются для формирования скрытого канала передачи информации.

При построении стегосистемы должны учитываться следующие положения:

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

• если противник каким-то образом узнает о факте существования скрытого сообщения, это не должно позволить ему извлечь подобные сообщения в других данных до тех пор, пока ключ хранится в тайне;

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

Обобщенная модель стегосистемы представлена на рис. 1(Прил. 2).

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

В общем же случае целесообразно  использовать слово «сообщение», так  как сообщением может быть как  текст или изображение, так и, например, аудиоданные. Далее для  обозначения скрываемой информации, будем использовать именно термин сообщение.

Контейнер – любая информация, предназначенная для сокрытия тайных сообщений.

Пустой контейнер – контейнер  без встроенного сообщения; заполненный  контейнер или стего – контейнер, содержащий встроенную информацию.

Встроенное (скрытое) сообщение –  сообщение, встраиваемое в контейнер.

Стеганографический канал или  просто стегоканал – канал передачи стего.

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

По аналогии с криптографией, по типу стегоключа стегосистемы можно  подразделить на два типа:

• с секретным ключом;

• с открытым ключом.

В стегосистеме с секретным ключом используется один ключ, который должен быть определен либо до начала обмена секретными сообщениями, либо передан  по защищенному каналу.

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

1.2. Основные методы стеганографии.

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

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

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

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

Для методов компьютерной стеганографии  можно ввести определенную классификацию (рис. 2, Прил.2).

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

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

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

В методах конструирующей стеганографии  контейнер генерируется самой стегосистемой. Здесь может быть несколько вариантов  реализации. Так, например, шум контейнера может моделироваться скрываемым сообщением. Это реализуется с помощью  процедур, которые не только кодируют скрываемое сообщение под шум, но и сохраняют модель первоначального  шума. В предельном случае по модели шума может строиться целое сообщение. Примерами могут служить метод, который реализован в программе MandelSteg, где в качестве контейнера для встраивания сообщения генерируется фрактал Мандельброта, или же аппарат  функций имитации (mumic function).

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

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

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

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

По используемым принципам стеганометоды можно разбить на два класса: цифровые методы и структурные методы. Если цифровые методы стеганографии, используя избыточность информационной среды, в основном, манипулируют с цифровым представлением элементов среды, куда внедряются скрываемые данные (например, в пиксели, в различные коэффициенты косинус-синусных преобразований, преобразований Фурье, Уолша-Радемахера или Лапласа), то структурные методы стеганографии для сокрытия данных используют семантически значимые структурные элементы информационной среды.

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

В особую группу можно также выделить методы, которые используют специальные  свойства форматов представления файлов:

• зарезервированные для расширения поля компьютерных форматов файлов, которые обычно заполняются нулями и не учитываются программой;

• специальное форматирование данных (смещение слов, предложений, абзацев или выбор определенных позиций букв);

• использование незадействованных мест на магнитных носителях;

• удаление идентифицирующих заголовков для файла.

В основном, для таких методов  характерны низкая степень скрытности, низкая пропускная способность и  слабая производительность.

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

По типу информационной среды выделяются стеганографические методы для текстовой среды, для аудио среды, а также для изображений (стоп-кадров) и видео среды.

 

 

 

 

 

 

 

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

2.1. Описание выбранного формата файла.

Файл XLS - электронная таблица, созданная  в Microsoft Excel - самом популярном приложении для работы с таблицами. Данные в  документе хранятся в ячейках, каждая из которых имеет определенный адрес (колонки нумеруются английскими  буквами, строки - цифрами; например: A1 - левая верхняя ячейка).

Каждая ячейка может содержать  как фиксированные данные, так  и формулы, часто связанные с  данными в других ячейках. Как  и в документе Microsoft Word (.DOC), формат XLS позволяет пользователю изменять представление текста: его шрифт, цвет, начертание, выравнивание (в ячейке) и другие параметры. Кроме того, документ может содержать изображения, а  также диаграммы, построенные на основе данных в определенных ячейках.

Формат XLS долгое время был основным в Microsoft Excel, но начиная с версии 2007 приложение по умолчанию создает  новые документы в формате (.XLSX).

2.2. Описание  выбранного метода скрытия данных.

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

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

Цвет фона ячейки, как и любой другой цвет, имеет три составляющие:R(red), G(green) и B(blue). Суть метода в том, что по закону потока информации младшие биты каждой цветовой составляющей меняются(или не меняются).

Данный метод  довольно прост в программной  реализации, но является малонадежным.

2.3.Описание программы.

Представленная  программа разработана в среде  Delphi и получила название ShadowXLS.

Интерфейс можно  увидеть на рис. 3(Прил. 2).

Кнопка «Выбрать файл-контейнер» под заголовком «Сокрытие файла» позволяет пользователю выбрать XLS файл для последующего сокрытия в нем информации.

Кнопка «Выбрать скрываемый файл» предназначена  для выбора файла, который будет  скрыт в файле-контейнере.

Кнопка «Скрыть  файл» последовательно запускает  процедуру crypt (Прил. 2). Для записи 1 байта скрытой информации требуется 2 ячейки. В каждую записывается по 4 бита информации. Младший бит цветовой составляющей меняется(или остается таким же) в соответствии с битовой последовательностью байта сообщения. Очередность смены битов:

1 бит=седьмой  бит R-составляющей первой ячейки;

2 бит=восьмой бит R-составляющей первой ячейки;

3 бит=восьмой бит G-составляющей первой ячейки;

4 бит=восьмой бит B-составляющей первой ячейки;

5 бит=седьмой бит R-составляющей второй ячейки;

6 бит=восьмой бит R-составляющей второй ячейки;

7 бит=восьмой бит G-составляющей второй ячейки;

8 бит=восьмой бит B-составляющей второй ячейки;

В итоге получаем байт, записанный в 2 ячейки.

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

Кнопка «Выбрать файл-контейнер» под заголовком «Извлечение файла» позволяет пользователю выбрать XLS файл для последующего извлечения из него скрытой информации.

Кнопка «Извлечь файл» запускает процедуру decrypt (Прил. 2). С первых двух строк считывается информация о файле. Если выбранный файл XLS не является файлом-контейнером, то программа выдаст ошибку из-за невозможности считать информацию о файле с заданного места. Считывая младшие биты цветовых составляющих, процедура decrypt восстанавливает сообщение. Пользователю предлагается сохранить полученный файл(тип файла определится автоматически), далее все используемые биты цветовых составляющих принимают значение ‘1’ , для того, чтобы файл XLS потерял свои свойства файла-контейнера.

Нажатие на подпись «by Victor Prime aka knocky» позволит перезапустить программу для выбора другой операции.

2.4.Анализ результатов работы программы.

При использовании  описанного метода появляется проблема изменения размера файла-контейнера при сокрытии в нем файла. Ниже приведена статистика изменения размера:

Файл-контейнер-9300 байт;

Изменение при  сокрытии в нем файла:

8 байт - 9390(90);

16 байт - 9540(240);

32 байта - 9600(300);

256 байт –  11100(1800);

512 байт –  12600(3300);

1024 байт – 15900(6300);

Следовательно, этот метод оправдывает себя только при размере скрываемого файла  существенно меньшего файла-контейнера. На рис.4 (Прил. 2) представлены изображения  таблицы до и после кодирования. Видимых на глаз изменений не наблюдается.

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

Программа не является универсальной и в идеале под каждый документ XLS требует определенных изменений.

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 Заключение

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Список использованной литературы:

  1. Конахович Г. Ф., Пузыренко А. Ю. Компьютерная стеганография. Теория и практика. — К.: МК-Пресс, 2006.
  2. Беляев А. Стеганограмма: скрытие информации // Программист, 2002, №1.
  3. Журнал «Мир ПК», 2004, №11. Текстовая стеганография.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Приложение 2(изображения и схемы).

 

                                                                 рис. 1

                                                                     рис. 2

                                                                   рис. 3

до

после

рис. 4