- •Содержание
- •Глава 1. Обзорная часть стеганографических систем 4
- •Глава 2. Разработка программы стеганографических систем 30
- •Глава 3. Экономическое обоснование системы стеганография 60
- •Глава 1. Обзорная часть стеганографических систем
- •1.1. Проблема устойчивости стеганографических систем
- •1.2. Классификация методов сокрытия данных
- •Р ис.3. Классификация методов компьютерной стеганографии
- •Анализ методов сокрытия информации
- •Описание сегмента format chunk
- •1.3. Обзор аналогичных программных продуктов
- •Глава 2. Разработка программы стеганографических систем
- •2.1. Выбор средств разработки
- •Свойства класса wRiff
- •Свойства и методы класса WorkWav
- •Р ис.8. Алгоритм сокрытия информации в звуковых фалах
- •2.3. Разработка пользовательского интерфейса
- •2.4. Тестирование программы
- •Глава 3. Экономическое обоснование системы стеганография
- •3.1. Производственные затраты на разработку
- •3.2. Учет амортизации
- •Капитальные вложения на разработку
- •Релевантные затраты на разработку
- •Заключение
- •Список используемых источников
Свойства класса wRiff
Свойство |
Описание |
char[] headerRIFF |
Возвращает идентификатор «RIFF». |
int sizeRIFF |
Возвращает длину файла (в байтах) без заголовка. |
char[] headerWAVE |
Возвращает идентификатор формата «WAVE»'. |
char[] headerFMT |
Возвращает идентификатор «fmt» (начало format чанки). |
int sizeFMT |
Возвращает длину сегмента формата (format chunk size) без заголовка. |
Int16 FormatTag |
Возвращает индекс способа кодирования звука (format tag) 1 = PCM. |
Int16 Channels |
Возвращает число каналов. |
int SamplesPerSec |
Возвращает частоту семплирования в Гц. |
int AvgBytesPerSec |
Возвращает среднее число байт в секунду. |
Int16 BlockAlign |
Возвращает количество байт для одного семпла (отсчета) 1 = 8 бит, моно 2 = 8 бит, стерео или 16 бит, моно 4 = 16 бит, стерео. |
Int16 BitPerSample |
Возвращает количество бит для одного семпла. |
int sizeDATA |
Возвращает длину сегмента данных. |
byte[] DataChunk8 |
Возвращает массив данных, содержащихся в чанке Data, если количество бит для одного семпла равно 8. |
UInt16[] DataChunk16 |
Возвращает массив данных, содержащихся в чанке Data, если количество бит для одного семпла равно 16. |
Класс WorkWav содержит свойства и методы для работы с аудио файлами, а также содержит процедуры и функции для сокрытия информации в файлах контейнерах и извлечения скрытой информации. Данный класс предусматривает работу с алгоритмом симметричного шифрования Rijndael. Свойства и методы данного класса представлены на таблице 2.3.
Таблица 2.3
Свойства и методы класса WorkWav
Свойство/метод |
Описание |
List<wRiff> Riff |
Возвращает экземпляр класса wRiff, который содержит информацию об открываемом файле формата *.wav. |
List<string> NameFiles |
Возвращает список названий всех открытых файлов контейнеров. |
long razriad |
Возвращает значение текущего разряда в байте. Это необходимо, чтобы узнать, чему равен бит в текущей позиции байта. |
byte[] byteFile |
Служит для хранения файла, который необходимо сркрыть. |
long sizeFile |
Возвращает размер файла, который необходимо сокрыть. |
string andrew |
Константа,значение которой равно «andrew». Служит в качестве ключевого слова для подтверждения присутствия скрытой инфрмации внутри файлов Контейнеров. |
byte cletter |
Возвращает извлеченный байт из файлов контейнеров, затем конвертируется в символ, из которых составляется слово. |
int chbit |
Задает значение номера бита, в который будет происходит сокрытие. |
bool OpenWavFile(string wNameFile,int nF) |
Реализует процесс открытия файлов контейнеров в лист Riff. |
void OpenAnyFile(string aNameFile, LoadingDelegate deleg, int bt, int saveitem, int uShif, byte[] key, byte[] IV) |
Реализует алгоритм сокрытия информации методом LSB, а также метод симметричного шифрования. Если в настройках выбрано использовать шифрование, то файл, который необходимо сокрыть, сначала зашифровывается и лишь потом внедряется в файлы контейнеры. |
char loadKaretkaSlovo () |
Производит сокрытие секретного слова. |
byte loadKaretKey () |
Производит сокрытие ключа, который несет в себе информацию о том, сколько байтов при извлечении необходимо будет изъять из файлов контейнеров. |
byte loadKaretFile() |
Производит сокрытие одного байта в файлы контейнеры. |
void Stego8(byte kar, long tekbit, int tekmas) |
Реализует замену каждого n - го бита фалов контейнеров на бит файла, который необходимо сокрыть. Данная процедура работает только в том случае, если размер бит в семпле равно 8. |
void Stego16(byte kar, long tekbit, int tekmas) |
Реализует замену каждого n - го бита файлов контейнеров на бит файла, который необходимо сокрыть. Данная процедура работает только в том случае, если размер бит в семпле равно 16. |
public bool OpenStegoFile(int bt) |
Производит извлечение скрытого файла из файлов контейнеров. |
bool decodeslovo16(UInt16 kar) |
Производит извлечение секретного слова. |
void decodekey16 (UInt16 kar) |
Производит извлечение ключа, который несет в себе информацию о том, сколько байтов при извлечении необходимо будет изъять из файлов контейнеров. |
void decode16(UInt16 kar) |
Производит извлечение одного байта в файлы контейнеры. |
Продолжение
таблицы Таблица 2.3
2.2. Описание основных алгоритмов программы
Для реализации процесса сокрытия и извлечения информации в звуковых файлах, был изучен метод LSB (описание которого приведено в разделе 1.6), а так же структура wav - файла. На основании полученных знаний были составлены алгоритмы сокрытия и извлечения, которые в последствие воплотились в реализованной программе.
Алгоритм сокрытия информации представлен на рис.8.
