№
|
Задержка
для «0» бита, с
|
Задержка
для «1» бита, с
|
1
|
0,0012
|
0,008
|
2
|
0,012
|
0,08
|
3
|
0,003
|
0,005
|
Для исследования влияния времени задержки
эхо-сигнала на эффективность стеганографической защиты информации, метод
встраивания был реализован в среде Math CAD. Данная среда была выбрана в силу
простоты использования.
В реализованный, описанный в [7], алгоритм, были
внесены изменения в соответствии с выбранными значениями задержки.
Далее были проведены исследования, результаты
которых весьма ожидаем. Так, параметры под номером 1, которые максимально
близки к рекомендуемым авторами работы [7], как и ожидалось, едва различимы
натренированным ухом.
Параметры 2 оказались совсем неприемлемыми для
использования не зависимо от качества использованного контейнера.
А вот параметры 3 показали, что возможно
использование контейнера, сходного по качествам с использованным под номером 1
(динамичная электронная музыка). При использовании таких параметров задержки,
вероятность правильного извлечения достигла 92% (на 1000 испытаний - 923
успешных).
Можно заметить, что на текущий момент
использование контейнера, сходного по качествам с использованным под номером 1,
вызовет наименьшие подозрения, и желание проверить этот контейнер на наличие
скрытой информации. Однако не всегда защита аудиофайла цифровым водяным знаком
нужна именно для такого типа файлов.
.2 Исследование влияния амплитуды эхо-сигнала на
эффективность
стеганографической защиты информации
Для исследования влияния амплитуды были
использованы те же аудио файлы, что и для исследования влияния времени задержки
(табл. 2.1), а значения амплитуды были взяты такие: 30%, 50%, 80%, 100%.
Заметим так же, что рекомендованное значение
амплитуды накладываемого эхо-сигнала - 80% для сигнала с меньшей задержкой и
30%, для сигнала с большей задержкой.
Для наглядности, влияние значения амплитуды
эхо-сигнала на конечный сигнал были сделаны снимки графиков, полученных в среде
Math CAD (рис 2.1 и 2.2).
Рисунок 2.1 - Сравнение результатов встраивания
в звуковой файл без применения уменьшения амплитуды сигнала наложения. Вверху
полученный сигнал, внизу - исходный
Однозначно использования 100% значений амплитуды
для эхо-сигналов приведет к значительному, заметному ССЧ изменению аудио файла.
Также стоит заметить, что изменение значения амплитуды вплоть до 30% не особо
влияет на значения АКФ значений Кепстра, а следовательно, не влияет на качество
извлечения. В связи с этим можно использовать значения равные 50% или даже 30%,
не боясь потерять вероятность корректного извлечения битов данных.
Рисунок 2.2 - Сравнение результатов встраивания
в звуковой файл с применением уменьшения амплитуды сигнала наложения до 30%.
Вверху полученный сигнал, внизу - исходный
.3 Обоснование параметров формирования
эхо-сигнала для
эффективной стеганографической защиты информации
Используя результаты исследований влияния
значений задержки и амплитуды эхо-сигнала, резонно было бы выбрать именно
полученные в ходе этих исследований данные.
Однако эти данные не претендуют на идеальность и
возможно, требуется более плотное изучение этих характеристик. В любом случае
эти исследования показали, что для схожих типов контейнеров, необходимо
подобрать определенные значения характеристик для увеличения эффективности
стеганографической защиты информации.
Положившись на результаты исследований, было
принято взять значения задержек эхо-сигналов, равные 0,0012 и 0,0008. Данные
значения снижают эффективность алгоритма извлечения, уменьшая вероятность
правильного извлечения бита, однако подходит практически для всех типов
контейнеров. Значение амплитуды было выбрано равное 30%, в связи с тем, что оно
помогает увеличить вероятность того, что факт наличия скрытой информации не
будет раскрыт.
Как видно на рисунке 2.3, извлечение, даже при
уменьшении амплитуды до 30% вполне реально.
Рисунок 2.3 - Сравнение результатов АКФ Кепстра
до и после встраивание единичного бита при значении амплитуды равной 30%.
Проведенные исследования не претендуют на
идеальность и правдивость, т.к. оценивались одним человеком. Тем не менее,
использование полученных рекомендаций однозначно поможет достичь определенной
высокой эффективности использования метода встраивания информации в аудио
файлы, используя преобразования эхо-сигналами.
3. РАЗРАБОТКА ПРОГРАММНОЙ РЕАЛИЗАЦИИ МЕТОДА
СТЕГАНОГРАФИЧЕСКОЙ ЗАЩИТЫ ИНФОРМАЦИИ АУДИО
ФАЙЛОВ С ИСПОЛЬЗОВАНИЕМ ЭХО-СИГНАЛОВ
.1 Разработка алгоритмов встраивания и
извлечения цифрового
водяного знака в аудио файл
Для встраивания и извлечения цифрового водяного
знака в аудио файл необходимо разработать два алгоритма, которые возможно будет
реализовать на языке программирования С++.
Начнем с алгоритма встраивания:
Перевести встраиваемое сообщение в двоичный код;
Сверить вместительность контейнера и размер
встраиваемого сообщения. В случае если сообщение не помещается в контейнер,
завершить выполнение с ошибкой;
В зависимости от частоты дискретизации,
разделить контейнер на равные части, для того, чтобы обеспечить пропускаемую
способность 16 бит в секунду;
Взять первую часть контейнера;
Создать эхо-сигнал путем смещения оригинального
сигнала на значение задержки соответствующее текущему биту;
Уменьшить амплитуду эхо-сигнала до 30%. Так же
требуется создать спадающий и возрастающий фронты в конце и начале эхо-сигнала
соответственно для предотвращения появления резких переходов, слышных ССЧ;
Наложить эхо-сигнал на оригинальный сигнал;
Выполнить пункты 5 - 7, для всех бит
встраиваемого сообщения.
Так же этот алгоритм можно увидеть ниже на
рисунке 3.1.
Рисунок 3.1 - Алгоритм встраивания эхо-сигнала
Алгоритм извлечения (по сути, является
алгоритмом проверки ЦВЗ):
Перевести проверяемое сообщение в двоичный код;
Сверить вместительность контейнера и размер
проверяемого сообщения. В случае если сообщение не помещается в контейнер,
завершить выполнение с ошибкой;
В зависимости от частоты дискретизации,
разделить контейнер на равные части, для того, чтобы обеспечить пропускаемую
способность 16 бит в секунду;
Взять первую часть контейнера;
Посчитать АКФ Кепстра для текущего фрагмента
контейнера;
Сравнить значения АКФ Кепстра соответствующие
времени равному значению смещения эхо-сигналов. Если значение на уровне
смещения равного «1» больше, чем «0», то встраивался бит 1;
Повторить шаги 5 - 7 для всех бит проверяемого
сообщения.
Далее, если все биты совпали (возможен вариант
проверять процент совпадения, т.к. метод эхо-сигналов обладает не 100%
вероятностью правильного извлечения бит), делаем вывод о том, что аудио файл
защищен. Алгоритм так же представлен на рисунке 3.2.
Рисунок 3.2 - Алгоритм извлечения встраиваемого
сообщения и проверка ЦВЗ
.2 Описание интерфейса разработанной программной
реализации
метода стеганографической защиты информации
Для реализации метода стеганографической защиты
информации аудио файлов с использованием эхо-сигналов был выбран язык
программирования С++. Среда программирования - Microsoft Visual Studio 2008.
Для упрощения создания интерфейса было решено использовать библиотеку
разработки MFC, предоставленную корпорацией Microsoft для разработки под ОС
Windows. Интерфейс программы изображен на рисунках 3.3 - 3.4.
Рисунок 3.3 - Интерфейс программы Sound
Watermark.
Рисунок 3.4 - Окно «О программе»
Для того чтобы встроить ЦВЗ в аудио файл
необходимо:
Выбрать аудиофайл для встраивания путем ввода
пути вручную, выбора файла через окно выбора файла, которое появится при
нажатии на кнопку Browse;
Выбрать файл ЦВЗ (на данный момент
поддерживаются только текстовые файлы txt);
Нажать на кнопку Add watermark.
При успешном встраивании пользователь увидит
сообщение, изображенное на рисунке 3.5.
Рисунок 3.5 - ЦВЗ успешно внедрен в аудио файл
Для того чтобы проверить звуковой файл на
наличие ЦВЗ необходимо:
Выбрать аудиофайл для проверки;
Выбрать файл ЦВЗ;
Нажать на кнопку Verify watermark.
При успешном извлечении пользователь увидит
сообщение, изображенное на рисунке 3.6
Рисунок 3.6 - Успешно извлеченный ЦВЗ
соответствует эталонному
Для упрощения использования программы были
добавлены такие возможности:
ограничение на использование входных файлов.
Невозможно использовать файлы отличные от формата WAV (PCM16 или PCM32). При
использовании отличных от этого формата файлов пользователь увидит окно с
ошибкой (Рис 3.7). Так же при нажатии на кнопку browse для выбора звукового
файла, выбор будет ограничен только файлами типа wav (рис. 3.8);
Рисунок 3.7 - Ошибка о неверном формате файла
контейнера.
Рисунок 3.8 - Окно выбора аудио файла с
ограничением на тип файла.
возможность просто перетащить файл в поле ввода
пути (Drag&Drop);
при попытке встроить или проверить водяной знак
без выбора файлов появится ошибка (рис. 3.9).
Рисунок 3.9 - Ошибка о пустых полях ввода пути к
файлам
.3 Практические рекомендации по использованию и
улучшению
программной реализации
В целом программа имеет завершенный вид, однако
есть множество путей для ее развития.
Существует возможность значительно расширить
границы применение этой программы путем реализации алгоритма встраивания ЦВЗ
для более распространенного формата MP3. Существует множество open source
библиотек, которые позволяют получить из MP3 файла по сути то же, что возможно
получить из WAV файла и без библиотек - значения амплитуд. Получив которые, не
составит никакого труда реализовать алгоритм встраивания ЦВЗ в звуковые файлы
MP3 формата.
Так же необходимо переработать механизм
встраивания для добавления возможности использования любых файлов, а не только
текстовых файлов.
Дополнительно к доработке программной реализации
можно доработать алгоритм встраивания для того, чтобы улучшить вероятность
правильного извлечения битов встроенного сообщения. Достичь этого можно путем
реализации алгоритма изменения пропускной способности файла в зависимости от
качества используемого контейнера.
На сегодняшний день, наличие такого программного
комплекса позволит улучшить положение дел на фронте борьбы с пиратством среди
аудио файлов.
Программа реализована и готова к использованию.
Возможность ее доработки и выпуска дополнительных версий дает хорошую почву для
коммерческого использования.
4. БЕЗОПАСНОСТЬ ЖИЗНИ И ДЕЯТЕЛЬНОСТИ ЧЕЛОВЕКА
.1 Анализ условий труда
Рассматривается отдел по разработке программного
обеспечения, в котором размещается команда из 10 программистов, один из которых
также является их руководителем и ответственным. На каждом рабочем месте
установлена IBM/PC-совместимая ПЭВМ (на базе AMD Athlon XP 1600). Все
оборудование подключено в электрическую сеть трехфазную четырехпроводную
напряжением 380/220В с глухозаземленной нейтралью переменного тока частотой
50Гц. Имеется один телефон. Помещение имеет размеры 12х8х3,5м, размещается на
втором этаже пятиэтажного кирпичного здания. Площадь помещения 96м2, его объём
336м3. На каждого сотрудника приходится 9,6м2 площади помещения и 33,6м3
объёма, что соответствует санитарно-техническим нормам и требованиям НПАОП
0.00-1.28-10, так как более чем необходимые 6 м2 и 20 м3 соответственно.
Выделим и подробно рассмотрим систему
Человек-Машина-Среда (рисунок 4.1) для анализа и выявления опасных и вредных
производственных факторов (ОВПФ). Подсистемами системы являются «Человек»,
«Машина», «Среда». В качестве подсистемы «Человек» рассмотрим программистов.
Подсистемы «Машина» являются ПЭВМ. Составляющими элементами подсистемы «Среда»
является производственная среда в помещении. Также в систему вводится элемент
«Предмет труда», под которым будем понимать разрабатываемый программный
продукт.
Элемент «Человек» условно разделим на
функциональные части:
Ч1 - человек, управляющий компьютером;
Ч2 - человек, рассматриваемый с точки зрения
непосредственного влияния на среду;
Ч3 - человек, отражающий психофизиологическое
состояние, формируемое под влиянием внешних воздействий.
Элемент «Машина» условно делим на три элемента:
М1 - машина, исполняющая основную
технологическую функцию;
М2 - машина, исполняющая функции аварийной
защиты;
М3 - машина, исполняющая функции управления внешней
средой.
Рисунок 4.1 - Структура системы Ч-М-С
) Ч1-М1 - влияние «Человека» на управление
«Машины».
) М1-ПТ - влияние «Машины» на «Предмет Труда».
) Ч1-ПТ, ПТ-Ч1 - влияние «Человека» на «Предмет
Труда» и наоборот.
) Ч2-ОС - влияние «Человека» как биологического
объекта на «Среду».
) ОС-Ч3 - влияние «Среды» на состояние организма
«Человека».
) ПТ-Ч3 - влияние состояния «Предмета Труда» на
психофизиологическое состояние «Человека».
) М1-ОС, М3-ОС - влияние «Машины» на «Среду».
) Ч1-Ч2 - влияние интенсивности работы
«Человека» на его интенсивность обмена веществ.
) Ч1-Ч3, Ч3-Ч1 - влияние интенсивности труда на
психофизиологическое состояние «Человека» и наоборот.
) Ч3-Ч2 - влияние психофизиологических процессов
на интенсивность биологических процессов в организме «Человека».
) Ч1-М2 - контроль «Человеком» безопасной работы
машины.
) Ч1-М3 - контроль «Человека» влияния машины на
«Среду».
) ПТ-М2, М2-ПТ - влияние функций аварийной
защиты на «Предмет Труда» и наоборот.
) М1-М2, М2-М1 - влияние состояния функций
аварийной защиты на оборудования.
) ОС-М1 - влияние «Среды» на работу машины.
Исходя из анализа этой системы, согласно ГОСТ
12.0.003-74 можно выделить следующие ОВПФ, присутствующие на рабочем месте:
физические факторы:
повышенный уровень ионизирующих излучений;
аномальный микроклимат, т.е. повышенная или
пониженная влажность воздуха; повышенная подвижность воздуха; повышенная или
пониженная температура воздуха;
повышенная напряженность электромагнитного поля;
повышенный уровень звукового давления;
отсутствие или недостаток естественного
освещения;
недостаточная освещенность рабочего места;
повышенное значение напряжения в электрической
цепи, замыкание которой может пройти через тело человека.
химические факторы: отсутствуют;
биологические факторы: отсутствуют;
психофизиологические факторы:
статические перегрузки;
эмоциональное и интеллектуальное напряжение;
перенапряжения зрительных анализаторов.
Следующим этапом проведем оценку условий труда
на данном рабочем месте. В таблице 4.1 приведена оценка факторов
производственной среды и трудового процесса.
При выявлении опасных и вредных факторов
производственной среды был выявлен доминирующий фактор - повышенное значение
напряжения в электрической цепи, замыкание которой может произойти через тело
человека. Остальные факторы по гигиенической классификации условий труда
позволяют отнести рабочее место к 3 классу I степени.
Таблица 4.1 - Оценка факторов производственной
среды и трудового процесса
Факторы
производственной среды и трудового процесса
|
Значение
фактора (ПДК, ПДУ)
|
3
класс - опасные и вредные условия, характер труда
|
Продолжительность
действия фактора, в % за смену
|
|
Норма
|
Факт
|
1
ст
|
2
ст
|
3
ст
|
|
1.Вредные
химические вещества а) 1 класс опасности
|
|
отсут
|
|
|
|
|
б)
2 класс опасности
|
|
отсут
|
|
|
|
|
в)
3-4 класс опасности
|
|
отсут
|
|
|
|
|
1
Шум, дБ
|
£50
|
45
|
|
|
|
88
|
2
Неионизирующие излучения, В/м а) промышленной частоты
|
25
|
22
|
|
|
|
|
б)
радиочастотного диапазона
|
<2,5
|
2
|
|
|
|
88
|
в)
Рентгеновское излучение (мкР/ч)
|
<100
|
30
|
|
|
|
88
|
4
Микроклимат: -температура воздуха, °С
|
23-25
|
24
|
|
|
|
88
|
-скорость
движения воздуха (м\с)
|
£
0.1
|
0,05
|
|
|
|
88
|
-
относительная влажность
|
40
- 60 %
|
60%
|
|
|
|
88
|
5
Освещение - естественное, %
|
≥2
|
2
|
|
|
|
40
|
-
искуственное, лк
|
300-500
|
380
|
|
|
|
48
|
6
Тяжесть труда - мелкие стереотипные движения кистей и пальцев рук (количество
за смену)
|
≤40000
|
40000
|
|
|
|
88
|
-
рабочая поза (пребывание в наклонном положении в течении смены), %
|
25%
более 30°
|
свободная
|
|
|
|
|
-
наклоны корпуса (раз за смену)
|
51-100
|
отсут
|
|
|
|
|
7
Напряженность труда а) внимание: - продолжительность сосредоточения, в % от
продолжительности смены
|
51-75
|
70
|
|
|
|
88
|
-
плотность сигналов в среднем за час
|
176-300
|
100
|
|
|
|
88
|
б)
напряженность анализаторов: - зрения(категория работ)
|
точная
|
высокой
точности
|
+
|
|
|
88
|
в)
эмоциональное и интеллектуальное напряжение
|
Работа
с возможностью корректировки графика
|
Работа
с возможностью корректировки графика
|
|
|
|
88
|
8
Сменность
|
2-3
сменная
|
односменн
|
|
|
|
|
Общее
количество факторов
|
х
|
х
|
1
|
0
|
0
|
х
|
.2 Техника безопасности
В помещении используется трехфазная
четырехпроводная сеть с глухозаземленной нейтралью, напряжением 220/380 В, ток
переменный частотой 50 Гц.
По степени опасности поражения электрическим
током согласно НПАОП 40.1-1.21-98, помещение производства относится к классу
помещений без повышенной опасности, так как исключена возможность
одновременного прикосновения человека к корпусам электрооборудования и
заземленным металлическим конструкциям зданий и сооружений, имеющих связь с
землей.
Для создания безопасных условий труда проводится
вводный, первичный на рабочем месте, повторный, целевой и внеплановый
инструктажи с обязательной регистрацией в журналах регистрации, согласно НПАОП
0.00-4.12-05.
Согласно НПАОП 40.1-1.32-01, в помещении
проведено зануление, т.к. зануление основная мера защиты от поражения
электрическим током в электроустановках напряжением до 1000 В с
глухозаземленной нейтралью в случае прикосновения человека к металлическим
корпусам электрооборудования и металлическим конструкциям, оказавшимся под
напряжением вследствие повреждения изоляции или короткого замыкания сети или
электроустановок.
Зануление - это намеренное соединение
металлических нетоковедущих частей с нулевым проводом питающей сети (рис. 4.1).
Время отключения поврежденного участка сети не более 0,2 с.
Рисунок 4.2 - Схема зануления
В помещении, где одновременно используется более
5 персональный ЭВМ, на заметном и доступном месте устанавливается аварийный
резервный выключатель, который может полностью отключить электропитание
помещения, кроме освещения.
ЭВМ подключатюся к электросети с помощью
штепсельных соединений и розеток заводского изготовления. Штепсельную
электросеть прокладывают рядом со стенами, как правило, в металлических трубах.
Открытая прокладка кабелей под полом запрещается.
Согласно НПУАП 40.1-1.21-98 проводится контроль
изоляции не реже одного раза в год на участках фаза-фаза, фаза-нуль,
фаза-нуль-защитный провод. Сопротивление изоляции не меньше 0,5 МОм.
Анализ условий труда позволил выявить опасный
фактор производственной среды - повышенное значение напряжения в электрической
цепи, замыкание которой может произойти через тело человека.
В связи с этим проведем проверочный расчет
зануления, т.е. расчет правильности выбора сечения нулевого тока и автомата
защиты.
Мощность потребления электрооборудования в
помещении: Р=3,5кВт.
Определяем максимальный ток, потребляемый
оборудованием:
Imax=PH/Uф = 3500/220 = 15,91 А,(4.1)
где Uф - напряжение электрической цепи, 220 В.
Выбираем защитный провод с резиновой и
пластмассовой изоляцией (алюминий 2 жилы, в воздухе) по ПУЭ табл. 1.3.36 с
экономической плотностью тока Jэк=1,7 А/мм2. Далее определяем сечение
проводника по экономической плотности тока:
эк=Imax/Jэк = 15,91/1,7=9,36 мм2(4.2)
Выбираем S=10 мм2.
Определяем активное сопротивление петли
«фаза-нуль». Так как сечение фазного проводника мало, принимаем сечение
нулевого провода равным Sф, тогда Rн=Rф:
=0,7 Ом,(4.3)
где - удельное сопротивление, для
алюминия - 0,028 Ом мм2/м;
l - длина провода до подстанции 250
м;
S - сечение проводника 10 мм2.
Для алюминиевых проводов внутреннее
индуктивное сопротивление фазного, нулевого проводов и внешнее индуктивное
сопротивление «фаза-нуль» малы, ими можно пренебречь. Поэтому сопротивление
петли «фаза-нуль»:
=0,7+0,7=1,4 Ом(4.4)
По формуле рассчитываем
действительный ток короткого замыкания:
,(4.5)
где - полное сопротивление обмоток
трансформатора, =0,26 Ом.
Выбираем автоматический выключатель
с номинальным током, исходя из формулы:
=Iкз/k = 132/1,25 = 105 A,(4.6)
где к - коэффициент кратности тока,
принимается в пределах 1,25, если защита осуществляется автоматическим выключателем,
имеющим только электромагнитный расцепитесь (для автоматов с Iном≥100А).
.3 Производственная санитария и
гигиена труда
Работа, выполняемая программистом в
помещении с вычислительными машинами, связана с обработкой различных документов
и информации, и подразумевает работу без физического напряжения. Согласно ДСН
3.3.6.042-99 работа относится к категории 1а (легкие работы).
Значение уровня шума в помещении,
составляет 45 дБ, что согласно ДПН В.25-28-2006 отвечает нормам уровня шума до
50 дБ.
Поддержание на допустимом уровне
значений факторов производственной среды и трудового процесса, определяющих
микроклимат, осуществляется при помощи кондиционирования в теплое время года и
с использованием отопления в холодное. Параметры микроклимата приведены в
таблице 4.2.
Таблица 4.2 - Нормированные
параметры микроклимата
Время
года
|
Категория
работ
|
Температура
воздуха, 0С
|
Относительная
влажность, %
|
Скорость
движения воздуха, м/с
|
|
|
Оптимальная
|
оптимальная
|
оптимальная
|
Холодная
|
Легкая
1а
|
22-24
|
40-60
|
меньше
0,1
|
Теплая
|
Легкая
1а
|
23-25
|
40-60
|
меньше
0,1
|
Зрительную работу программиста можно
охарактеризовать как работу высокой точности: разряд зрительной работы - III,
подразряд - а. Освещенность при работе с экраном дисплея Ен = 300 лк.
В данном помещении применяется одностороннее
естественное боковое освещение. Естественное освещение для любой точки
характеризуется коэффициентом естественной освещенности (КЕО). Необходимая
освещенность естественным светом может быть обеспечена при определенном
соотношении общей площади световых проемов и площади пола помещения. Норма КЕО
при естественном освещении должна составлять более 2%. Общая площадь окон 12м2.
Искусственная освещенность составляет 380 лк (при нехватке естественного
освещения используются люминесцентные лампы).
Для создания благоприятных условий труда
согласно НПАОП 0.00-1.28-10, требованиями к организации рабочего места для
выполнения работ программиста клавиатура размещена на столе на высоте по
отношению к полу 700 мм. Дисплей помещён на столе так, что его экран
располагался в вертикальной плоскости под углом менее 15о. Во избежание
перенапряжения органов зрения соблюдается расстояние до монитора 40-50 см.
В помещении для размещения ПЭВМ используются
стандартные столы высотой 700 мм, ширина стола - 1600 мм, глубина стола - 800
мм (рис. 4.3).
При расположении рабочих мест необходимо
придерживаться следующих условий:
рабочие места с ЭВМ располагаются на расстоянии
не меньше 1м от стен с оконными проемами;
расстояние между боковых поверхностей ЭВМ должно
быть не меньше 1,2м;
расстояние между тыльной поверхностью одной ЭВМ
и экраном другой ЭВМ не должно быть меньше 2,5м;
проход между рядами рабочих месть должен быть не
меньше 1м.
Для предупреждения утомления и повышения
работоспособности лиц, работающих в помещении вычислительного центра необходимо
установить рациональный режим труда и отдыха. Для программистов ЭВМ
устанавливается восьмичасовой рабочий день с перерывом через 4 часа работы.
Через каждый час работы вводится перерыв на 5-10 минут, а через 2 часа - на 15
минут. Направление взора оператора на рабочем месте выбрано параллельно
плоскости расположения светильников с целью исключения слепящих яркостей,
бликов и отражений от экрана монитора.
Для снижения электромагнитного излучения следует
использовать жидко кристаллические или плазменные мониторы.
.4 Пожарная профилактика
По взрывопожарной и пожарной опасности
производство в данном помещении в соответствии с НАПБ Б.03.001-2004 относится к
категории В.
По пожарной опасности помещение относится к
классу П-IIа, согласно НПАОП 4.01-1.21-98. Отдел разработок расположен в
здании, выполненном из строительных конструкций II степени огнестойкости. В
помещении имеются вещества и материалы, которые могут гореть (бумага,
пластмасса, паркетный пол, деревянные столы, на которых стоит компьютерная
техника и т.д.). Причинами возгорания в данном помещении могут являться:
возможности замыкания в электрических цепях, нарушение правил пожарной
безопасности. Согласно НПАОП 4.01-1.21-98 в помещении находятся электрические
машины, аппараты со степенью защиты оболочки IP 44, так как установлены
стационарно или на передвижных механизмах, не искрящие по условиям работы.
Предотвращение образования в горючей среде
источников зажигания достигается контролем сети электропитания и соблюдением
правил пожарной профилактики.
Для прекращения процесса горения используются
углекислотные огнетушители. Т.к. они позволяют сохранить дорогостоящую технику
от разрушительного воздействия пены, воды и песка.
Согласно требованиям в помещении необходимо
разместить:
два ручных углекислотных огнетушителя ВВК-1,4
(один огнетушитель на ЗПК, но не менее одного в помещении);
телефон, установленный в легкодоступном месте;
дымовые пожарные извещатели в количестве 10 штук
(два дымоизвещателя на каждые 20м2 площади помещения).
Помещение лаборатории имеет один рабочий выход
шириной 0,8м, что удовлетворяет требованиям для вынужденной эвакуации людей,
т.к. расстояние от наиболее удаленного места до выхода из помещения не
превышает 25м, а количество работающих в смене не более 10 человек, поэтому
применение этого выхода является допустимым для эвакуации при пожаре.
Дополнительного эвакуационного выхода не требуется. Схема эвакуации должна быть
размещена на стене у выхода из помещения. На эвакуационных путях организовано
как естественное, так и искусственное аварийное освещение. На рис.4.3 приведена
схема эвакуации рабочих мест и оборудования, а так же схема эвакуации.
Вопросы гражданской обороны и защиты окружающей
среды в данном разделе не рассматриваются, так как разработанное в дипломе
программное обеспечение не может стать причиной чрезвычайной ситуации и не
наносит вреда окружающей среде.
Рисунок 4.3 - Схема размещения рабочих мест и
эвакуации при пожаре
В разделе БЖД произведён анализ условий труда
программистов, рассмотрены основные положения правил техники безопасности,
пожарной безопасности и санитарии в помещениях отдела разработок. Анализ
условий труда позволил выявить опасный вредный фактор производственной среды -
повышенное значение напряжения в электрической цепи, замыкание которой может
произойти через тело человека. Для ликвидации данного фактора был рассчитан ток
короткого замыкания и выбран автоматический выключатель, позволяющий обеспечить
безопасность человека при замыкании. Также рассмотрены вопросы эвакуации при
пожаре, возможность использования средств пожаротушения в помещении.
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)
.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 − Технические и экономические
параметры ПП
Параметр
|
Единица
измерения
|
Объем
необходимого дискового пространства для работы ПП
|
0,5
Мбайт
|
Сложность
ПП:
|
|
-
сложность интерфейса
|
Одно
окно. 4 кнопки
|
-
исполняемые функции
|
2
|
-
объем использованных данных
|
-
|
-
объем исполняемого кода
|
0.3
Мбайт
|
Доступность
использования:
|
|
-
по простоте запуска
|
3
|
-
по мультимедийному обеспечению
|
3
|
Соответствующая
документация
|
2
|
Справочная
система
|
0
|
Цена
программного продукта
|
4077.55
грн.
|
Термин
использования ПП
|
∞
|
Ценовые
скидки
|
%
|
.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с.
.
Arnold, M. MP3 robust audio watermarking/ M. Arnold, S. Kanka // International
Watermarking Workshop. - 1999. - 1275с
.
Boney, L. Digital watermarks for audio signals / L. Boney, A.H. Tewfic, A.K.
Hamdy // Department of Electrical engineering, University of Minnesota.
.
Bender, W. Techniques for data hiding / W. Bender, B. Gruhl, N. Morimoto // IBM
systems journal. - 1996. - Vol, 35. № 3. - 3с.
.
Калинцев, Ю.К. Разборчивость речи в цифровых вокодерах./ Ю.К. Калинцев - М.:
Радио и связь, - 1991.- 320с.
.
Грибунин, В.Г. Стеганографическая защита речевых сигналов в каналах открытой
телефонной связи / В.Г. Грибунин, И.Н. Оков, И.В. Туринцев // Сборник тезисов
Российской НТК “Методы и технические средства обеспечения безопасности
информации”, -СПб.:, ГТУ, 2001, с.83-84.
.
Конахович, Г.Ф. Компьютерная стеганография. Теория и практика. / Г.Ф.
Конахович, А.Ю. Пузыренко // Киев, МК-Пресс, 2006г - 288с.
.
Максименко, С.Д. Общая психология: Учебное пособие. / С.Д. Максименко, В.О.
Соловеенко - К.: МАУП, 2000. - 256с.
.
Шиффман, Х.Р. Ощущение и восприятие. / Х.Р. Шиффман // Изд. 5-е - СПб: Питер,
2003 - 928с.
.
Месси, Д.Л. Введение в современную криптологию. / Д.Л. Месси // ТИИЭР. - 1988.
- №5. - С. 24-42.
.
Шеннон, К. Работы по теории информации и кибернетике. / К. Шеннон // М.:
Издательство иностранной литературы, 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с.
.
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.
.
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.
.
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.
.
Вентцель, Е.С. Теория вероятностей и ее инженерные приложения. / Е.С. Вентцель,
Л.А. Овчаров-М.: Наука. Гл. ред. физ.-мат. лит. 1988.- 480с.
.
Оков, И.Н. О требуемой пропускной способности каналов передачи
аутентифицированных сообщений в безусловно стойких системах. / И.Н. Оков //
Проблемы информационной безопасности. Компьютерные системы. 2000. № 3(7),
с.78-64.
.
Чисcар, И. Теория информации: Теоремы кодирования для дискретных систем без
памяти / И. Чисcар, Я. Кернер // Пер. с англ. - М.: Мир, 1985, -400 с.
.
Оков И.Н., Ковалев Р.М. Электронные водяные знаки как средство аутентификации
передаваемых сообщений // Защита информации. Конфидент. 2001. № 3, с.80-85.
.
Кан, Д. Взломщики кодов./ Д. Кан - М.: Издательство ”Центрполиграф“, 2000. -
473 с.
.
Калинцев, Ю.К. Разборчивость речи в цифровых вокодерах /Ю.К. Калинцев, - М.:
Радио и связь, 1991.- 320с.
.
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.
.
Алферов,
А.П.
Основы
криптографии.
/ А.П.
Алферов,
А.Ю.
Зубов,
А.С.
Кузьмин
- М.:
Гелиус
АРВ,
2001.- 480 с.
.
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.
.
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.
.
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.
.
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.
.
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.
.
ДСТУ 3008-95. Документация. Отчеты в сфере науки и техники. Структура и правила
оформления. Киев, - 1995.
Приложение А.
листинг ПРОГРАММЫ
А.1 Часть
файла
Sound WatermarkDlg.h
// Sound WatermarkDlg.h : header
file
//
#pragma once
#include <string>
// CSoundWatermarkDlg
dialogCSoundWatermarkDlg : public CDialog
{
// Construction:(CWnd* pParent =
NULL);// standard constructor
// Dialog Data{ IDD =
IDD_SOUNDWATERMARK_DIALOG };:void DoDataExchange(CDataExchange* pDX);// DDX/DDV
support
// Implementation:m_hIcon;wavFilePathEdit;watermarkFilePathEdit;
// Generated message map
functionsBOOL OnInitDialog();_msg void OnPaint();_msg HCURSOR
OnQueryDragIcon();_MESSAGE_MAP():_msg void OnAbout();_msg void
OnSettings();_msg void OnDropFiles(HDROP hDropInfo);_msg void
OnClickedBrowseWav();_msg void OnClickedBrowseWatermark();_msg void
OnClickedAddWatermark();:_msg bool textFieldsIsEmpty();::string
getPathToWavFile();::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"CSoundWatermarkDlg::OnPaint()
{(IsIconic())
{dc(this); // device context for
painting(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()),
0);
// Center icon in client
rectanglecxIcon = GetSystemMetrics(SM_CXICON);cyIcon =
GetSystemMetrics(SM_CYICON);rect;(&rect);x = (rect.Width() - cxIcon + 1) /
2;y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon.DrawIcon(x, y,
m_hIcon);
}
{::OnPaint();
}
}
//////////////////////////////////////////////////////////////////////////CSoundWatermarkDlg::OnDropFiles(HDROP
hDropInfo)
{
// get filename*fileName = new
char[MAX_FNAME_LEN];fileNameLength = 0;(!(fileNameLength =
DragQueryFile(hDropInfo, 0, fileName, MAX_FNAME_LEN)))
{("Could not retrieve file
name. Try another file");;
}
// get mouse
positionpoint;(&point);(&point);
// set text to edit control relative
to mouse position
CWnd *pointedWindow =
ChildWindowFromPoint(point);windowID =
pointedWindow->GetDlgCtrlID();(windowID == IDC_WAV_FILE_PATH_EDIT)
{
// check file
extension(strcmp(strlwr(fileName+fileNameLength-4), WAV_FILE_EXTENSION))
{("File extension should be
'.wav'");;
}>SetWindowText(fileName);
}if (windowID ==
IDC_WATERMARK_FILE_PATH_EDIT)
{>SetWindowText(fileName);
}::OnDropFiles(hDropInfo);
}
//////////////////////////////////////////////////////////////////////////CSoundWatermarkDlg::OnClickedBrowseWav()
{fd(true, 0, 0, 4|2, "Wave
(*.wav) |*.wav|");(fd.DoModal()==IDOK) .SetWindowText(fd.m_ofn.lpstrFile);
}CSoundWatermarkDlg::OnClickedBrowseWatermark()
{fd(true);(fd.DoModal()==IDOK)
.SetWindowText(fd.m_ofn.lpstrFile);
}
//////////////////////////////////////////////////////////////////////////CSoundWatermarkDlg::OnClickedAddWatermark()
{
// check text
fields(textFieldsIsEmpty())
{("Specify files first");;
}
// try to open wav file::string
pathToWavFile =
getPathToWavFile();wavContainer;(!wavContainer.Open(pathToWavFile))
{("Wrong WAV file (should be
PCM 16 or 32 bits)");;
}coder;
// get watermark from file::string
pathToWatermark = getPathToWatermarkFile();::string watermarkFile;::string
line;::ifstream
watermarkIfStream(pathToWatermark.c_str());(std::getline(watermarkIfStream,line))+=
line;
// check if message will fit
containercontainerCapacity = (BITS_PER_SECOND * ((float)wavContainer.Size() /
(float)wavContainer.SampleRate())) / 8;(watermarkFile.size() >
containerCapacity)
{("Container is too small to
inject choosen watermark");;
}
// generate key from watermark
filekey("key", Key::STRING);
// inject
watermark.SetMessage(&wavContainer, watermarkFile.c_str(),
&key);.Save(pathToWavFile);
}
//////////////////////////////////////////////////////////////////////////_msg
bool CSoundWatermarkDlg::textFieldsIsEmpty()
{::string pathToWavFile =
getPathToWavFile();pathToWatermarkFile[MAX_FNAME_LEN];.GetWindowText(pathToWatermarkFile,
MAX_FNAME_LEN);(pathToWavFile.length() == 0 || strlen(pathToWatermarkFile) ==
0)
{true;
}false;
}
//////////////////////////////////////////////////////////////////////////::string
CSoundWatermarkDlg::getPathToWavFile()
{pathToWavFile[MAX_FNAME_LEN];.GetWindowText(pathToWavFile,
MAX_FNAME_LEN);std::string(pathToWavFile);
}
//////////////////////////////////////////////////////////////////////////::string
CSoundWatermarkDlg::getPathToWatermarkFile()
{pathToWatermarkFile[MAX_FNAME_LEN];.GetWindowText(pathToWatermarkFile,
MAX_FNAME_LEN);std::string(pathToWatermarkFile);
}
А.3 Часть
файла
echocoder.сpp
////////////////////////////////////////////////////////////////////////////////EchoCoder::SetMessage(
WAVContainer* _container, const std::string& _message,
const Key* _key )
{
// Must be a echo key
if ( _key->IsEchoKey() )
{_FrameSize = _container->SampleRate()
/ BITS_PER_SECOND;(_container);
// Hide message using echo algorithm
LSBSoundCoder::SetMessage(_container,
_message);
}
}
////////////////////////////////////////////////////////////////////////////////::string
EchoCoder::GetMessage( const WAVContainer* _container, const Key* _key )
{
// Must be a echo key
if ( _key->IsEchoKey() )
{_FrameSize =
_container->SampleRate() / BITS_PER_SECOND;(_container);
// Hide message using echo algorithm
return
LSBSoundCoder::GetMessage(_container);
}
// Not a echo key
return "";
}
//////////////////////////////////////////////////////////////////////////EchoCoder::CalculateKey(const
WAVContainer* _container)
{frameRate =
_container->SampleRate();_EchoFirstOffset = frameRate/750;_EchoSecondOffset
= frameRate/1500;
}
//////////////////////////////////////////////////////////////////////////EchoCoder::SetBit(
bool _bit )
{sizeOfShift = (_bit ?
m_EchoFirstOffset : m_EchoSecondOffset);*samplesForShift = new
short[sizeOfShift];(samplesForShift, sizeOfShift * sizeof(short));(int i=0;
i<m_FrameSize; i++)
{(!JumpToNextSample())
{
// Bit has not been writtenfalse;
}currentSample = GetCurrSample();
// get shifted
signalnumberOfShiftedSample = i % sizeOfShift;shiftedSample =
samplesForShift[numberOfShiftedSample];
// reduce amplitude (make signal
trapezium like)overallReducing = 0.9;coefOfReducing = 1;(i <= 20) {=
(float)i/20.0;
}if ((i + 20) > m_FrameSize)
{= ((float)(m_FrameSize - i))/20.0;
}*= overallReducing *
coefOfReducing;
// add two signalssampleToSetInt =
(int)currentSample + (int)shiftedSample;sampleToSet = currentSample +
shiftedSample;(sampleToSetInt > std::numeric_limits<short>::max())
{=
std::numeric_limits<short>::max();
}if (sampleToSetInt <
std::numeric_limits<short>::min())
{=
std::numeric_limits<short>::min();
}
// set new
signal(sampleToSet);[numberOfShiftedSample] = currentSample;
}samplesForShift;
// Bit has been written
return true;
}
////////////////////////////////////////////////////////////////////////////////