Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
финальный Диплом222.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1 Mб
Скачать

Свойства класса 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.