Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
nagaew / записка1 / записка1.doc
Скачиваний:
24
Добавлен:
15.06.2014
Размер:
146.43 Кб
Скачать

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

к курсовой работе по дисциплине

“Технология программирования”

выполнил:ст.гр.В-531

Нагаев А.А.

проверила:

Шафеева О.П.

Омск-2005

Техническое задание

на курсовое проектирование

Студенту гр. В – 531 ОмГту Нагаеву Андрею Александровичу

Тема проектирования:

Стеганография. Формат файла-контейнера - *.mp3.

Цель проектирования:

Разработка программного обеспечения для скрытия информации в файле *.mp3.

Система должна выполнять следующие основные функции:

  • Запись любых данных в файл *.mp3.

  • Извлечение данных из файла *.mp3.

  • Шифрование данных перед записью.

  • контроль за искажением mp3-файла.

Данная цель определяет следующие задачи:

1. Осуществить выбор инструментальных программных средств

для разработки программного обеспечения.

2. Изучить спецификацию mp3 файла.

3. Разработать и отладить программу.

Оглавление

Введение

1. Формат mp3-файла

2.1.Выбор инструментальной среды разработки ПО

3.1.Разработка алгоритма основной программы

3.2. Модуль MPEGaudio.

3.3. Модули ID3v1, ID3v2

4.1. Подпрограмма MPEG frame header data

4.2. Подпрограмма GetFrameLength

4.3. Подпрограмма FindFrame

4.4. Подпрограмма ReadTag

4.5. Подпрограмма GetTagVersion

Заключение

Приложение

Введение

Стеганография - очень близкая к криптографии, но все-таки независимая отрасль computer science. Ее задача - сокрытие конфиденциальной информации от посторонних глаз в самых обычных почтовых отправлениях, файлах, картинках и т.п. Сам этот термин переводится как "тайнопись".

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

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

Практически все существующие стегоалгоритмы можно разбить на 4 основные категории:

1) преобразования текста;

2) метод незначащих бит;

3) использование неотображаемых областей форматов файлов;

4) незначимое преобразование форматов файлов.

Какие же есть средства обнаружения стеганограмм?

Изменения младших бит несложно обнаружить в очень темных и очень ярких областях картинок. Более тонкий способ - анализ спектра младших бит - как статически на некоторой области файла, так и динамически по его ходу. Подобные программы сравнивают вычисленные показания с прогнозируемыми теорией вероятности для настоящих шумов квантования в целом и для данной картинки (а значит и для данного сканера) в частности. Например, если на вход алгоритма в качестве стеганограммы подан обычный ASCII-текст сообщения, то на анализаторе спектра сразу поднимутся значения амплитуд на частотах кратных 8 по сравнению с "нормальным" пустым контейнером. Если же стегоинформация распределена не по всему файлу, а только по некоторой его части, то спектр амплитуд младших бит заполненной и незаполненной частей будет более или менее отличаться - это еще один, более тонкий, но тоже реализуемый автоматический анализ файла на стегоначинку.

Отсюда два правила для стегоалгоритмов. Во-первых, лучше подавать на вход "смешивателя" данные с хорошей статистической распределенностью. Для этого используется либо кодирование, либо полноценное шифрование (ведь результат любых стойких криптопреобразований тоже имеет очень хорошие случайные характеристики, да и отсутствие ключа у третьей стороны не даст ей возможность даже свидетельствовать о самом факте наличия стего). В качестве кодера для первого способа можно применять наложение по "исключающему ИЛИ" (XOR) исходной стеганограммы с потоком, порождаемым генератором псевдослучайных чисел приемлемой разрядности. Естественно, начальное заполнение ГПСЧ должно быть известно принимающей стороне. Кстати, сообщения можно сжимать, так мы убиваем двух зайцев: объем стего уменьшается, а его "случайность" повышается.

Второе правило: стегосообщение лучше распределять равномерно по всей длине контейнера. Если в контейнере слишком много "свободных" бит - можно модифицировать не все подряд, а только каждый второй или третий. С точки зрения маскировки спектральных составляющих - лучше всего вообще динамически генерировать длины подобных "прыжков", например, с помощью того же ГПСЧ - "модифицируем бит, пропускаем 1, модифицируем бит, пропускаем 4 и т.д.".