Реализация встраивания цифрового водяного знака в звуковые файлы методом эхо-сигналов

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 14.11.2011
Размер файла 2,9 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

- телефон, установленный в легкодоступном месте;

- дымовые пожарные извещатели в количестве 10 штук (два дымоизвещателя на каждые 20м2 площади помещения).

Помещение лаборатории имеет один рабочий выход шириной 0,8м, что удовлетворяет требованиям для вынужденной эвакуации людей, т.к. расстояние от наиболее удаленного места до выхода из помещения не превышает 25м, а количество работающих в смене не более 10 человек, поэтому применение этого выхода является допустимым для эвакуации при пожаре. Дополнительного эвакуационного выхода не требуется. Схема эвакуации должна быть размещена на стене у выхода из помещения. На эвакуационных путях организовано как естественное, так и искусственное аварийное освещение. На рис.4.3 приведена схема эвакуации рабочих мест и оборудования, а так же схема эвакуации.

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

Рисунок 4.3 - Схема размещения рабочих мест и эвакуации при пожаре

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

5. ТЕХНИКО-ЭКОНОМИЧЕСКОЕ ОБОСНОВАНИЕ

5.1 Характеристика программного продукта и рынок сбыта

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

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

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

Ориентировочная емкость рынка сбыта нового ПП являет собой около 50 единиц ПП в первый год продаж.

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

5.2 Расчет трудоемкости разработки ПП

Результаты расчета трудоемкости разработки ПП представлены на таблице 5.1

Таблица 5.1 - Расчет трудоемкости разработки ПП и заработной платы исполнителей

Вид работы

Исполнитель

Затраты чел в день

Заработная плата грн\чел в день

Сумма заработной платы чел

Должность

Кол-во

1. разработка технического задания

инженер

1

2

100 грн

200 грн

Подбор и изучения литературных источников

инженер

1

1

100 грн

100 грн

3. Теоретическое обоснование выбора методического инструментария

инженер

1

1

100 грн

100 грн

4. Формулировка задачи

Начальник отдела

1

1

100 грн

100 грн

5.Алгоритмизация решения поставленной задачи

UML-программист

1

2

130 грн

260 грн

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

программист

2

2

150 грн

600 грн

7.Тестирование ПП

Инженер качества

1

1

150 грн

150 грн

8. Подготовка инструкции по использованию

инженер

1

1

100 грн

100 грн

Итого (ЗП)

1610 грн

5.3 Расчет единичных затрат на создание ПО

Расчет единичных затрат на создание ПО описаны в таблице 5.2.

Таблица 5.2 ? Расчет единичных затрат на создание ПО

№ з/п

Статья затрат

Сумма, грн.

1

Заработная плата

1610

2

Ежемесячные отчисления:

-

2.1

Единый социальный взнос 37%

595.7

2.2

Ежемесячная ставка плательщика налогов на единой системе налогообложения

84

3

Материальные затраты

200

4

Другие затраты в том числе:

60

4.1

Общехозяйственные затраты

750

4.3

Коммунальные платежи

350

4.4

Оплата услуг связи

40

4.5

Затраты на аутсорсинг

300

5

Маркетинговые расходы

700

6

Всего (Врозр)

3989.7

7

Затраты на разработку единицы ПО

79,74

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

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

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

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

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

Расходы на реализацию маркетинговых мероприятий (например, проведение маркетинговых мероприятий оценки уровня конкурентоспособности ПП, расчета территориальной емкости рынка, продвижение нового ПП и т.д.). На этапе разработки нового ПП эти расходы в общем виде могут быть рассчитаны в размере до 15% от прогнозируемого объема продаж ПП.

Расчет единовременных затрат на разработку единицы ПП (В) определяется по формуле:

(5.1)

где ? суммарные единичные затраты на производство ПО;

? насыщенность территориального рынка ПО.

В = 79,74(5.2)

5.4 Расчет затрат на тиражирование и отпускной цены одной копии ПО

Расчет затрат на тиражирование и отпускной цены одной копии ПО приведен на таблице 5.3

Таблица 5.3- Расчет затрат на тиражирование и отпускной цены одной копии ПО

з/п

Статья расходов

Значение, грн.

1

Размер заработной платы с начислениями

2205.7

2

Материальные затраты на тиражирование одной версии ПП

10

3

Аренда оборудования (стоимость машинного времени потраченного на тиражирование ПП)

2.5

4

Затраты на продвижение одной единицы ПП

100

5

Затраты на тиражирование одной копии ПП

2318.2

6

Затраты на разработку единицы ПП

79,74

7

Себестоимость одной копии

2398

8

Запланированая прибыль

1000

9

Размер ПДВ (соответственно к действующему законодательству Украины)

679,55

10

Отпускная цена одной копии ПП

4077.55

Расчет затрат на продвижение одной ПП приведен на таблице 5.4.

Таблица 5.4 - Затраты на продвижение ПП

Рекламное мероприятие

Стоимость, грн.

1. Программа скидок

500

2. Прямая реклама

1000

3. Реклама при помощи листовок

1000

Итого

2500

Затраты на продвижение единицы ПП

100

Конкурентоспособность ПП определяется не его «абсолютной ценностью» для потребителя, а сравнительной полезностью его характеристик (технических и экономических параметров) с соответствующими характеристиками ПП конкурента, но т.к. конкурентов нет, то показатель уровня конкурентоспособности = .1

5.5 Технические и экономические параметры ПП

Принятые в качестве технических и экономических показателей (параметров) ПП приведены в таблице 5.5.

Таблица 5.5 ? Технические и экономические параметры ПП

Параметр

Единица измерения

Объем необходимого дискового пространства для работы ПП

0,5 Мбайт

Сложность ПП:

- сложность интерфейса

Одно окно. 4 кнопки

- исполняемые функции

2

- объем использованных данных

-

- объем исполняемого кода

0.3 Мбайт

Доступность использования:

- по простоте запуска

3

- по мультимедийному обеспечению

3

Соответствующая документация

2

Справочная система

0

Цена программного продукта

4077.55 грн.

Термин использования ПП

?

Ценовые скидки

%

5.6 Анализ рисков

При анализе рисков вывода на рынок программного продукта целесообразно рассчитать показатель, который позволяет определить, насколько разработчик может снизить объем продаж, не понеся при этом потерь. Он определяется как отношение разности между ожидаемым объемом продаж и точкой безубыточности до ожидаемого объема продаж:

(5.3)

где - показатель риска разработчика ПО;

- Ожидаемый объем продаж;

- расчетная цена ПО;

- точка без избыточности.

Точка безубыточности () - это такой объем продаж, при котором валовая выручка (доход) от реализации покрывает общие совокупные постоянные затраты, и определяется по формуле:

(5.4)

где - постоянные затраты на разработку и реализацию ПП;

- расчетная цена ПП;

- изменяющиеся затраты на единицу ПП.

Таким образом точка безубыточности = 1.43. Но, т.к. мы не можем продать пол ПП, точка безубыточности составит 2ед.

Узнав точку безубыточности мы можем рассчитать показатель риска:

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

ВЫВОДЫ

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

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

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

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

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

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

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

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

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

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

эхо сигнал стеганографический защита файл

ПЕРЕЧЕНЬ ССЫЛОК

1. Bassia, P. Robust audio watermarking in the time domain / P. Bassia, I. Pitas, // Department of Informatics, University of Tressaloniki. - 956с.

2. Arnold, M. MP3 robust audio watermarking/ M. Arnold, S. Kanka // International Watermarking Workshop. - 1999. - 1275с

3. Boney, L. Digital watermarks for audio signals / L. Boney, A.H. Tewfic, A.K. Hamdy // Department of Electrical engineering, University of Minnesota.

4. Bender, W. Techniques for data hiding / W. Bender, B. Gruhl, N. Morimoto // IBM systems journal. - 1996. - Vol, 35. № 3. - 3с.

5. Калинцев, Ю.К. Разборчивость речи в цифровых вокодерах./ Ю.К. Калинцев - М.: Радио и связь, - 1991.- 320с.

6. Грибунин, В.Г. Стеганографическая защита речевых сигналов в каналах открытой телефонной связи / В.Г. Грибунин, И.Н. Оков, И.В. Туринцев // Сборник тезисов Российской НТК “Методы и технические средства обеспечения безопасности информации”, -СПб.:, ГТУ, 2001, с.83-84.

7. Конахович, Г.Ф. Компьютерная стеганография. Теория и практика. / Г.Ф. Конахович, А.Ю. Пузыренко // Киев, МК-Пресс, 2006г - 288с.

8. Максименко, С.Д. Общая психология: Учебное пособие. / С.Д. Максименко, В.О. Соловеенко - К.: МАУП, 2000. - 256с.

9. Шиффман, Х.Р. Ощущение и восприятие. / Х.Р. Шиффман // Изд. 5-е - СПб: Питер, 2003 - 928с.

10. Месси, Д.Л. Введение в современную криптологию. / Д.Л. Месси // ТИИЭР. - 1988. - №5. - С. 24-42.

11. Шеннон, К. Работы по теории информации и кибернетике. / К. Шеннон // М.: Издательство иностранной литературы, 1963.-829с.

12. Langelaar, G. Copy Protection for Multimedia Data based on Labeling Techniques / G. Langelaar, J. van der Lubbe, J. Biemond // 17th Symposium on Information Theory in the Benelux. 1996. - 389с.

13. Bas, P.A geometrical and frequential water-marking scheme using similarities / P. Bas, J.-M. Chassery, F. Davoine // In SPIE Conference on Security and Watermarking of Multimedia Contents. 1999. №3657. P. 264-272.

14. Chae J. A robust embedded data from wave-let coefficients/J.Chae,D. Mukherjee, B. Manjunath // Proceedings of SPIE, Electronic Imaging, Storage and Retrieval for Image and Video Database. 1998. Vol. 3312. P. 308-317.

15. Chu, C.-J. Luminance channel modulated watermarking of digital images / C.-J. Chu, A.W. Wiltz // Proceedings of the SPIE Wavelet Applications Conference. 1999. P. 437-445.

16. Вентцель, Е.С. Теория вероятностей и ее инженерные приложения. / Е.С. Вентцель, Л.А. Овчаров-М.: Наука. Гл. ред. физ.-мат. лит. 1988.- 480с.

17. Оков, И.Н. О требуемой пропускной способности каналов передачи аутентифицированных сообщений в безусловно стойких системах. / И.Н. Оков // Проблемы информационной безопасности. Компьютерные системы. 2000. № 3(7), с.78-64.

18. Чисcар, И. Теория информации: Теоремы кодирования для дискретных систем без памяти / И. Чисcар, Я. Кернер // Пер. с англ. - М.: Мир, 1985, -400 с.

19. Оков И.Н., Ковалев Р.М. Электронные водяные знаки как средство аутентификации передаваемых сообщений // Защита информации. Конфидент. 2001. № 3, с.80-85.

20. Кан, Д. Взломщики кодов./ Д. Кан - М.: Издательство ”Центрполиграф“, 2000. - 473 с.

21. Калинцев, Ю.К. Разборчивость речи в цифровых вокодерах /Ю.К. Калинцев, - М.: Радио и связь, 1991.- 320с.

22. Cox, I.J. Secure Spread Spectrum Watermarking for Multimedia / I.J. Cox, J. Killian, F.T. Leighton // IEEE Trans. Image Proc. 1997. Vol.6. № 12. P. 1673-1687.

23. Алферов, А.П. Основы криптографии. / А.П. Алферов, А.Ю. Зубов, А.С. Кузьмин - М.: Гелиус АРВ, 2001.- 480 с.

24. Chen, B. An Information-Theoretic Approach to the Design of Robust Digital Watermarking Systems / B. Chen, G.W. Wornell // Proceeding Int. Conf. on Acoustics, Speech and Signal Processing. 1999.

25. Attacks on digital watermarks: classification, estimation-based attacks, and benchmarks / S. Voloshynovkiy, S. Pereira, T. Pun and others // IEEE Communications Magazine. 2001. Vol. 39. № 8. P.118-126.

26. Wong, P.W. A Public Key Watermark for Image Verification and Authentication / P.W. Wong // Proc. Int. Conf. Im. Proc. 1998. Vol. I. P. 455-459.

27. Swanson, M.D. Multimedia Data-Embedding and Watermarking Strategies / M.D. Swanson, M. Kobayahi, A.H. Tewfik // Proceeding of IEEE. 1998. Vol. 86. №. 6. P. 1064-1087.

28. Wolgang, R.B. Perceptual Watermarking for Digital Images and Video / R.B. Wolgang, C.I. Podilchuk, E.J. Delp // Proceeding IEEE, Special Issue on Identification and Protection of Multimedia Information. 1999. Vol. 87. №. 7. P. 1088-1126.

29. ДСТУ 3008-95. Документация. Отчеты в сфере науки и техники. Структура и правила оформления. Киев, - 1995.

Приложение А.

листинг ПРОГРАММЫ

А.1 Часть файла Sound WatermarkDlg.h

// Sound WatermarkDlg.h : header file

//

#pragma once

#include <string>

// CSoundWatermarkDlg dialog

class CSoundWatermarkDlg : public CDialog

{

// Construction

public:

CSoundWatermarkDlg(CWnd* pParent = NULL);// standard constructor

// Dialog Data

enum { IDD = IDD_SOUNDWATERMARK_DIALOG };

protected:

virtual void DoDataExchange(CDataExchange* pDX);// DDX/DDV support

// Implementation

protected:

HICON m_hIcon;

CEdit wavFilePathEdit;

CEdit watermarkFilePathEdit;

// Generated message map functions

virtual BOOL OnInitDialog();

afx_msg void OnPaint();

afx_msg HCURSOR OnQueryDragIcon();

DECLARE_MESSAGE_MAP()

public:

afx_msg void OnAbout();

afx_msg void OnSettings();

afx_msg void OnDropFiles(HDROP hDropInfo);

afx_msg void OnClickedBrowseWav();

afx_msg void OnClickedBrowseWatermark();

afx_msg void OnClickedAddWatermark();

private:

afx_msg bool textFieldsIsEmpty();

std::string getPathToWavFile();

std::string getPathToWatermarkFile();};

А.2 Часть файла Sound WatermarkDlg.сpp

#include "Sound WatermarkDlg.h"

#include "SCoder/containers/wavcontainer.h"

#include "SCoder/coders/echocoder.h"

#include "SCoder/keys/echokey.h"

#define WAV_FILE_EXTENSION ".wav"

void CSoundWatermarkDlg::OnPaint()

{

if (IsIconic())

{

CPaintDC dc(this); // device context for painting

SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

// Center icon in client rectangle

int cxIcon = GetSystemMetrics(SM_CXICON);

int cyIcon = GetSystemMetrics(SM_CYICON);

CRect rect;

GetClientRect(&rect);

int x = (rect.Width() - cxIcon + 1) / 2;

int y = (rect.Height() - cyIcon + 1) / 2;

// Draw the icon

dc.DrawIcon(x, y, m_hIcon);

}

else

{

CDialog::OnPaint();

}

}

//////////////////////////////////////////////////////////////////////////

void CSoundWatermarkDlg::OnDropFiles(HDROP hDropInfo)

{

// get filename

char *fileName = new char[MAX_FNAME_LEN];

int fileNameLength = 0;

if(!(fileNameLength = DragQueryFile(hDropInfo, 0, fileName, MAX_FNAME_LEN)))

{

MessageBox("Could not retrieve file name. Try another file");

return;

}

// get mouse position

POINT point;

GetCursorPos(&point);

ScreenToClient(&point);

// set text to edit control relative to mouse position

CWnd *pointedWindow = ChildWindowFromPoint(point);

int windowID = pointedWindow->GetDlgCtrlID();

if (windowID == IDC_WAV_FILE_PATH_EDIT)

{

// check file extension

if (strcmp(strlwr(fileName+fileNameLength-4), WAV_FILE_EXTENSION))

{

MessageBox("File extension should be '.wav'");

return;

}

pointedWindow->SetWindowText(fileName);

}

else if (windowID == IDC_WATERMARK_FILE_PATH_EDIT)

{

pointedWindow->SetWindowText(fileName);

}

CDialog::OnDropFiles(hDropInfo);

}

//////////////////////////////////////////////////////////////////////////

void CSoundWatermarkDlg::OnClickedBrowseWav()

{

CFileDialog fd(true, 0, 0, 4|2, "Wave (*.wav) |*.wav|");

if (fd.DoModal()==IDOK)

wavFilePathEdit.SetWindowText(fd.m_ofn.lpstrFile);

}

void CSoundWatermarkDlg::OnClickedBrowseWatermark()

{

CFileDialog fd(true);

if (fd.DoModal()==IDOK)

watermarkFilePathEdit.SetWindowText(fd.m_ofn.lpstrFile);

}

//////////////////////////////////////////////////////////////////////////

void CSoundWatermarkDlg::OnClickedAddWatermark()

{

// check text fields

if (textFieldsIsEmpty())

{

MessageBox("Specify files first");

return;

}

// try to open wav file

std::string pathToWavFile = getPathToWavFile();

WAVContainer wavContainer;

if (!wavContainer.Open(pathToWavFile))

{

MessageBox("Wrong WAV file (should be PCM 16 or 32 bits)");

return;

}

EchoCoder coder;

// get watermark from file

std::string pathToWatermark = getPathToWatermarkFile();

std::string watermarkFile;

std::string line;

std::ifstream watermarkIfStream(pathToWatermark.c_str());

while(std::getline(watermarkIfStream,line))

watermarkFile += line;

// check if message will fit container

int containerCapacity = (BITS_PER_SECOND * ((float)wavContainer.Size() / (float)wavContainer.SampleRate())) / 8;

if (watermarkFile.size() > containerCapacity)

{

MessageBox("Container is too small to inject choosen watermark");

return;

}

// generate key from watermark file

EchoKey key("key", Key::STRING);

// inject watermark

coder.SetMessage(&wavContainer, watermarkFile.c_str(), &key);

wavContainer.Save(pathToWavFile);

}

//////////////////////////////////////////////////////////////////////////

afx_msg bool CSoundWatermarkDlg::textFieldsIsEmpty()

{

std::string pathToWavFile = getPathToWavFile();

char pathToWatermarkFile[MAX_FNAME_LEN];

watermarkFilePathEdit.GetWindowText(pathToWatermarkFile, MAX_FNAME_LEN);

if (pathToWavFile.length() == 0 || strlen(pathToWatermarkFile) == 0)

{

return true;

}

return false;

}

//////////////////////////////////////////////////////////////////////////

std::string CSoundWatermarkDlg::getPathToWavFile()

{

char pathToWavFile[MAX_FNAME_LEN];

wavFilePathEdit.GetWindowText(pathToWavFile, MAX_FNAME_LEN);

return std::string(pathToWavFile);

}

//////////////////////////////////////////////////////////////////////////

std::string CSoundWatermarkDlg::getPathToWatermarkFile()

{

char pathToWatermarkFile[MAX_FNAME_LEN];

watermarkFilePathEdit.GetWindowText(pathToWatermarkFile, MAX_FNAME_LEN);

return std::string(pathToWatermarkFile);

}

А.3 Часть файла echocoder.сpp

////////////////////////////////////////////////////////////////////////////////

void EchoCoder::SetMessage( WAVContainer* _container, const std::string& _message,

const Key* _key )

{

// Must be a echo key

if ( _key->IsEchoKey() )

{

m_FrameSize = _container->SampleRate() / BITS_PER_SECOND;

CalculateKey(_container);

// Hide message using echo algorithm

LSBSoundCoder::SetMessage(_container, _message);

}

}

////////////////////////////////////////////////////////////////////////////////

std::string EchoCoder::GetMessage( const WAVContainer* _container, const Key* _key )

{

// Must be a echo key

if ( _key->IsEchoKey() )

{

m_FrameSize = _container->SampleRate() / BITS_PER_SECOND;

CalculateKey(_container);

// Hide message using echo algorithm

return LSBSoundCoder::GetMessage(_container);

}

// Not a echo key

return "";

}

//////////////////////////////////////////////////////////////////////////

void EchoCoder::CalculateKey(const WAVContainer* _container)

{

int frameRate = _container->SampleRate();

m_EchoFirstOffset = frameRate/750;

m_EchoSecondOffset = frameRate/1500;

}

//////////////////////////////////////////////////////////////////////////

bool EchoCoder::SetBit( bool _bit )

{

int sizeOfShift = (_bit ? m_EchoFirstOffset : m_EchoSecondOffset);

short *samplesForShift = new short[sizeOfShift];

ZeroMemory(samplesForShift, sizeOfShift * sizeof(short));

for (int i=0; i<m_FrameSize; i++)

{

if (!JumpToNextSample())

{

// Bit has not been written

return false;

}

short currentSample = GetCurrSample();

// get shifted signal

int numberOfShiftedSample = i % sizeOfShift;

short shiftedSample = samplesForShift[numberOfShiftedSample];

// reduce amplitude (make signal trapezium like)

float overallReducing = 0.9;

float coefOfReducing = 1;

if (i <= 20) {

coefOfReducing = (float)i/20.0;

}

else if ((i + 20) > m_FrameSize)

{

coefOfReducing = ((float)(m_FrameSize - i))/20.0;

}

shiftedSample *= overallReducing * coefOfReducing;

// add two signals

int sampleToSetInt = (int)currentSample + (int)shiftedSample;

short sampleToSet = currentSample + shiftedSample;

if (sampleToSetInt > std::numeric_limits<short>::max())

{

sampleToSet = std::numeric_limits<short>::max();

}

else if (sampleToSetInt < std::numeric_limits<short>::min())

{

sampleToSet = std::numeric_limits<short>::min();

}

// set new signal

SetCurrSample(sampleToSet);

samplesForShift[numberOfShiftedSample] = currentSample;

}

delete samplesForShift;

// Bit has been written

return true;

}

////////////////////////////////////////////////////////////////////////////////

Размещено на Allbest.ru


Подобные документы

  • Анализ потенциальных уязвимостей материала, размещенного на сайте. Анализ потенциальных уязвимостей материала с использованием методов шифрования и стеганографии. Использование водяного знака для защиты изображений. Разработка php-скрипта для защиты.

    курсовая работа [4,2 M], добавлен 11.05.2014

  • Классическое, компьютерное и цифровое направления стенографии. Использование зарезервированных полей компьютерных форматов файлов. Алгоритмы встраивания скрытой информации. Стеганография и цифровые водяные знаки. Документация программного продукта.

    курсовая работа [37,7 K], добавлен 22.06.2011

  • Анализ информации как объекта защиты и изучение требований к защищенности информации. Исследование инженерно-технических мер защиты и разработка системы управления объектом защиты информации. Реализация защиты объекта средствами программы Packet Tracer.

    дипломная работа [1,2 M], добавлен 28.04.2012

  • Принципы информационной безопасности. Демаскирующие признаки сигналов, их классификация и разновидности: аналоговые и дискретные. Классификационные признаки технических каналов утечки информации. Способы защиты и обнаружения демаскирующих признаков.

    курсовая работа [483,9 K], добавлен 16.04.2014

  • Эффективность преобразования и кодирования сигналов, используемых в качестве переносчиков информации. Амплитудная модуляция. Генераторы сигналов низкой частоты. Построение графиков "пороговый сигнал-полоса канала связи" для идеального и реального каналов.

    курсовая работа [299,7 K], добавлен 23.01.2014

  • Изучение понятия и основных задач стеганографии - науки, изучающей способы и методы сокрытия информации. Характеристика метода замены наименее значащих битов для bmp файлов. Реализация метода замены НЗБ для bmp файлов на языке программирования Java.

    курсовая работа [149,2 K], добавлен 13.02.2013

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

    дипломная работа [1,5 M], добавлен 19.06.2015

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

    реферат [17,4 K], добавлен 16.05.2015

  • Обзор известных методов обеспечения безопасности Web-транзакций. Протокол SSL/TLS как эффективный метод обеспечения их защищенности. Анализ и моделирование существующих атак на протокол SSL/TLS. Особенности защиты сети "клиент-сервер" от такого рода атак.

    дипломная работа [2,6 M], добавлен 05.06.2011

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

    курсовая работа [114,2 K], добавлен 17.05.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.