Введение. Постановка задачи Методы внедрения информации в

advertisement
84
УДК 004.056
МЕТОДЫ ВНЕДРЕНИЯ ИНФОРМАЦИИ В ЗВУКОВЫЕ ФАЙЛЫ ФОРМАТА MIDI
Алексеев А.П., Аленин А.А.
Рассматриваются методы скрытой передачи информации в MIDI-файлах. Внедрение конфиденциальной информации требуется для скрытой передачи информации, а также для защиты авторских прав
композиторов.
Ключевые слова: формат MIDI, событие, сообщение, музыкальный редактор, метод, метка, список, информация, нота, внедрение.
Введение. Постановка задачи
Рассматриваются методы скрытой передачи
информации в MIDI-файлах. Внедрение конфиденциальной информации требуется, например,
при защите авторских прав композиторов.
Формат MIDI является распространенным
форматом хранения и передачи музыки, который
используют композиторы, музыканты и обычные
пользователи ЭВМ. Для музыкальных произведений в формате MIDI, как и для любой другой
интеллектуальной собственности, необходима
защита авторских прав. Одним из способов защиты авторских прав является использование
приемов стеганографии – например, внедрение в
музыкальный файл определенной секретной метки или данных по аналогии с регистрационным
ключом для программного обеспечения. Если
ключ пользователя совпадает с секретной меткой, то этот пользователь сможет воспроизвести
музыку, записанную в MIDI-файле. Кроме того,
с помощью приемов стеганографии можно в
MIDI-файлах скрытно передать дополнительную
информацию, например, фамилию композитора.
Интерфейс Musical Instrument Digital Interface
(MIDI) разработан в 1983 году консорциумом
изготовителей синтезаторов (Roland, Yamaha,
Oberheim, и Sequential Circuits) для стандартизации процедуры управления цифровыми инструментами и синтезаторами. Он используется
для передачи только управляющих сигналов, а
не самого звука. Управляющие MIDI-сообщения указывают, какие ноты должны воспроизводиться, когда, какой длительности, а синтезатор,
получив эту информацию, воссоздает звук [1].
Стандартный MIDI-файл не является звуковым
файлом (как, скажем, MP3). MIDI-файл скорее
похож на партитуру, которая определяет, какой
инструмент должен играть и каковы параметры
воспроизводимых звуков. Этот формат предназ-
начен для воспроизведения только инструментальной музыки.
В качестве синтезатора звука может выступать
звуковая карта компьютера, которая в ПЗУ или
ОЗУ содержит ряд сэмплов, с помощью которых
происходит синтез звука.
Подробное описание данного формата можно
найти в источниках [1-2].
Методы внедрения
MIDI-файлы
информации
в
Известен метод внедрения информации в
MIDI-файлы путем использования разности времени между записанными в файл событиями, которые не изменяют характеристики (настройки)
устройства воспроизведения [3]. Это происходит,
например, когда подряд следуют несколько одинаковых управляющих событий.
В качестве примера использования такого метода сокрытия информации рассмотрим порядок
внедрения русской буквы «е» в MIDI-файл с помощью событий, которые устанавливают уровень
громкости в канале. Внедрение осуществлялось с
помощью музыкального редактора (секвенсора)
Cakewalk Sonar 7 Producer Edition [2].
В кодировке CP-1251 десятичное значение
буквы «е» равно 184 (шестнадцатеричное значение B8). Так как уровень громкости в канале
воспроизведения может меняться в диапазоне десятичных чисел от 0 до 127, а максимальное внедряемое десятичное число в соответствии с кодовой таблицей CP-1251 может достигать значения
255, то скрываемый символ следует внедрять с
помощью двух тетрад (полубайтов). По этой причине сначала внедрялась старшая тетрада B (заметим, что шестнадцатеричное число В эквивалентно десятичному числу 11), а потом младшая
тетрада (десятичное число 8).
Внедрение двух указанных десятичных чисел
производилось путем вариации количества тиков
(квантов) времени между изменениями уровня
громкости (Volume). Временная метка для первого события была выбрана равной , следующее событие имело временную метку, равную
. Таким
, а третье событие –
образом, число тиков между событиями несло
информацию о двух скрываемых тетрадах шестнадцатеричного числа В8.
«Инфокоммуникационные технологии» Том 9, № 1, 2011
Алексеев А.П., Аленин А.А.
85
Рис. 1. Внедрение информации с помощью событий управления громкостью (Volume)
Следующий рисунок иллюстрирует процесс
внедрения указанных чисел, реализованный с помощью метода [3].
Как видно из рис. 1, каждое событие занимает в списке событий одну строку. Первый столбец показывает номер трека. Во втором столбце
(HMSF) указаны реальные (астрономические)
временные позиции сообщений Hours: Minutes:
Seconds: Frames (Часы: Минуты: Секунды: Кадры). В следующем столбце (MBT) информация о времени представлена в MIDI-формате
Measure: Beat: Tick (Такт: Доля: Тик). В столбце Ch указывается номер канала. В столбце
Kind (Разновидность) помещены названия событий. В столбце Data перечислены параметры
сообщений.
В предпоследнем столбце помещен десятичный код исполняемой ноты. Заметим, что число
всевозможных нот секвенсора не превышает 128.
Информация в последнем столбце определяет
громкость звучания ноты (максимальное значение может достигать 127).
В рассматриваемом случае информация была
скрыта в столбце MBT. Естественно, что на передающей и приемной сторонах корреспонденты
заранее определяют способ сокрытия информации.
Извлечение скрытого в MIDI-файле десятичного числа производилось с помощью формулы:
где – десятичный код скрытого в файле символа;
– начальная метка времени (в рассматриваемом случае 2:01:000); – первая метка времени
(2:01:011); – вторая метка времени (2:01:019).
В данном примере было скрыто десятичное
число 184:
Для скрытой передачи данных указанным
методом можно использовать не только программную регулировку громкости, но и другие
управляющие сигналы. Например, можно осуществлять выключение невключенной ноты,
подъем педали, если она не была нажата, многократную установку стереобаланса на одно и то
же значение и т.д.
Недостатком данного метода скрытой передачи информации [3] является отсутствие секретного ключа, который предотвращал бы возможность чтения внедренной информации любым
пользователем. По сути, защита информации
здесь держится на секретности алгоритма, что
противоречит правилу Керкхофа [4]. Кроме того,
рассмотренный метод имеет низкую стойкость к
обнаружению внедренной информации. Музыкант, хорошо знакомый с форматом MIDI, легко
обнаружит, что в файле присутствуют «странные» события.
Внедрение информации в MIDI-файл можно
осуществить иначе: с помощью вариации порядка записи одновременно происходящих событий
[5]. При использовании данного метода к файлу не добавляется новая информация, и размер
файла не изменяется. С помощью этого метода
удобно внедрять информацию в одновременно
исполняемые ноты (аккорды). Порядок записи
нот в листе событий не имеет никакого значения
для воспроизводящей аппаратуры, а вариация их
взаимного расположения при записи позволяет
скрытно передать символы.
событий могут выполПредположим, что
няться в одно и то же время. Такой список можно
способами. Для того чтобы исупорядочить
пользовать списки с целью сокрытия информа-
«Инфокоммуникационные технологии» Том 9, № 1, 2011
86
Алексеев А.П., Аленин А.А.
ции, авторы работы [5] вводят понятие «гибкая
система счисления».
Число
в «гибкой системе счисления» записывается в виде полинома:
где коэффициенты
принимают целые положительные значения от 0 до n.
Например, число
в «гибкой системе
счисления» эквивалентно десятичному числу
109:
Строке Ре соответствует значение 1 в списке
(3). После определения второй цифры следует
также удалить эту строку из упорядоченного списка. Строка До просто игнорируется.
Таким образом, хост-список (1) содержал
скрытое число
. В десятичной системе счисления оно равно:
.
Перевод на передаче скрываемого десятичного числа
в число
«гибкой системы счисления» для списка, состоящего из строк, осуществлялся с помощью следующего алгоритма:
Предположим, что существует некоторый
список из трех нот, который содержит скрытую
информацию:
(1)
Этот список может быть упорядочен
споследовательсобами: в данном случае
но, число различных перестановок здесь 3! = 6.
Список с внедренной информацией называется
хостсписком [5]. Рассмотрим, каким образом
можно передавать информацию с помощью поразному упорядоченных списков. В качестве исходного списка можно использовать хост-список,
ранжированный по алфавиту:
(2)
Для того чтобы извлечь информацию из хостсписка (1), необходимо взять первую строку (Ми)
и определить соответствующую позицию этой
строки в упорядоченном списке (2). В данном
случае позиция равна 1. После этого данная строка удаляется из упорядоченного списка:
(3)
Естественно, что MIDI-файлы позволяют
скрывать информацию не только с помощью методов, описанных в патентах [3; 5]. Рассмотрим
другие возможности скрытой передачи информации в MIDI-файлах.
Рассмотрим, как в MIDI-файле можно иначе
скрыть русскую букву «Й». В соответствии с таблицей CP-1251 десятичный код этой буквы 201,
а двоичный код 11001001. Внедрим полученный
двоичный код скрываемой буквы по следующему
алгоритму: если скрывается логическая единица,
то значение громкости должно быть нечетным
числом.
В таблице Event List (Лист Событий) величину громкости описывает второй столбец справа.
На рис. 2 показан фрагмент управляющих сигналов, в которых скрыта буква «Й».
Итак, двоичное число 11001001 внедрено в
MIDI-файл путем формирования десятичных чисел 71-67-68-64-79-78-78-61, которые управляют
громкостью звучания каждой ноты трека 3. При
внедрении информации исходное значение гром-
Рис. 2. Информация внедрена в предпоследний столбец (громкость)
«Инфокоммуникационные технологии» Том 9, № 1, 2011
Алексеев А.П., Аленин А.А.
кости при необходимости изменялось на одну
единицу.
Обнаружить сделанное вложение на слух невозможно, так как, во-первых, изменения громкости незначительны, а во-вторых, при «живом» исполнении
одного и того же произведения реальные исполнители играют немного по-разному. Таким образом,
изменение громкости на одну единицу невозможно
зарегистрировать на слух, однако можно использовать для скрытой передачи информации.
Кроме того, запись секретной информации может
быть осуществлена в партию лишь одного инструмента (например, контрабаса), что при звучании целого оркестра (или ансамбля) еще больше акустически маскирует скрытое сообщение.
87
Скрытая передача информации может быть осуществлена путем незначительного изменения длительности звучания нот. Можно предварительно
договориться, что если некоторая условная длительность звучания ноты является нечетным числом, то
это соответствует передаче логической единицы.
Если же длительность является четным числом
или нулем, то это соответствует логическому нулю.
Следующий рисунок иллюстрирует порядок сокрытия байта 11001001 в длительности MIDI-файла
(см. последний столбец).
Таким образом, с помощью четных (Ч) и нечетных (Н) чисел сформирована последовательность НН-Ч-Ч-Н-Ч-Ч-Н, которая соответствует двоичному
числу 11001001.
Рис. 3. Информация внедрена в последний столбец (длительность)
Внедрение информации в MIDI-файл можно
производить с помощью изменения времени портаменто. Портаменто – это плавный переход по высоте
тона от ноты к ноте. Задействовать режим портаменто можно с помощью события смены режима управления с параметром 65 со значением от 64 до 127.
Чтобы отключить режим портаменто, нужно использовать значения от 0 до 63.
В рассматриваемом методе внедрения информации необходимым условием работы является отключенный режим портаменто, чтобы внедренная
информация не влияла на звучание музыкального
произведения (не искажала его). Для внедрения информации необходимо применять событие смены
режима управления с параметром 5 и событие смены режима управления с параметром 37, которые
определяют старшую и младшую части времени
портаменто. В случае применения этих событий для
внедрения информации в их значениях будут кодироваться старший и младший полубайты символа.
В качестве примера приведем список событий
с внедренной буквой «е» (см. рис. 4). Информация
внедрена в третьей и шестой строке. Очевидно, что
при использовании портаменто требуется попарное
внедрение событий для старшей и младшей тетрады.
Стандарт для MIDI-файлов предусматривает возможность внедрения в файл специальных исклю-
чительных событий, содержащих текст. Такими
событиями являются Text и Lyric. Событие Text применяется для вставки различных текстовых сообщений. Событие Lyric применяется для вставки одного
слога песни. Обычно эта возможность используется
в файлах караоке. Наличие текстовой информации в
MIDI-файле позволяет воспользоваться для внедрения секретных сообщений приемами текстовой стеганографии [4].
Ввиду того, что имеющиеся текстовые события
не поддерживают какое-либо форматирование, кроме изменения шрифта всего текста, а событие Lyric
также не может содержать более одного пробела после слов, наиболее приемлемым способом внедрения
информации является замена русских букв схожими
по начертанию буквами латинского алфавита. Если в
слове присутствует русская буква, сходная по форме
с латинской, и первая из них заменена на латинскую
букву, то в данном месте скрыта логическая единица.
Если в слове отсутствуют замененные символы, то в
этих местах скрыты логические нули. На рис. 5 показано окно Lyric с внедренной в текст русской буквой
«е», имеющей в двоичном виде значение 10111000.
Подчеркнутые буквы кодируют единицу, буквы с
черточкой наверху – нуль.
Внедрение информации можно производить с
помощью нот, длительность которых равна нулю, а
«Инфокоммуникационные технологии» Том 9, № 1, 2011
88
Алексеев А.П., Аленин А.А.
Рис. 4. Список событий с внедренной информацией
Рис. 5. Окно Lyric с внедренной буквой «ё»
громкость численно равна полубайту скрываемого
символа. На рис. 6 показан пример внедрения русской буквы «ё». Символ внедрен в третьей и четвертой строке.
Можно осуществлять внедрение четырех бит
информации путем вариации длительности ноты,
громкость звучания которой равна нулю или минимальна. Пример внедрения символа «ё» показан
на рис. 7. Информация внедрена в пятой и шестой
строке.
MIDI-файлы позволяют внедрять в свою структуру WAV-файл, который встраивается отдельным
треком. Данное обстоятельство позволяет использовать WAV-трек как контейнер для меток или данных.
Сокрытие информации можно производить при помощи методов цифровой стеганографии, например,
методом замены наименьшего значащего бита [6].
WAV-файл добавлялся к MIDI-файлу с помощью специального исключительного события
Audio (см. рис. 8).
Самым большим недостатком рассмотренных
методов внедрения является отсутствие возможности использования секретного ключа, который позволял бы только законному владельцу извлекать
скрытую в файле информацию.
Несложно усовершенствовать рассмотренные методы внедрения текста в MID-файлы.
Например, это можно сделать, распыляя скрываемые биты по трекам, поочередно используя
внедрение в громкость, длительность звучания
нот, управляя временем портаменто, используя
текст караоке и другие перечисленные возможности сокрытия информации. В этом случае
внедрение должно производиться с помощью
секретного ключа, который будет определять
порядок распыления информации в пространстве и времени.
Выводы
Формат MIDI может быть успешно использован для передачи или хранения конфиденциальной информации. При этом для сокрытия информации следует использовать большое число
различных событий, которые управляют процессом воспроизведения музыкальной композиции.
Секретный ключ должен определять, каким способом и в каких местах скрыта конфиденциальная
информация.
Литература
1. P. Messick, Maximum MIDI. Music Applications
in C++. Manning Publications Co, 1998. – 454 p.
2. Петелин Р.Ю., Петелин Ю.В. Cakewalk
Sonar 7 Producer Edition. Запись и редак-
«Инфокоммуникационные технологии» Том 9, № 1, 2011
Алексеев А.П., Аленин А.А.
тирование музыки. СПб.: БХВ-Петрбург,
2008. – 880 с.
3. United States Patent US 6798885 B1 Sep. 28,
2004.
4. Алексеев А.П., Орлов В.В. Стеганографические и криптографические методы защиты
89
информации: учебное пособие. Самара: Изд.
ПГУТИ, 2010. – 330 с.
5. United States Patent US 7402744 B1 Jull. 22,
2008.
6. Аленин А.А., Алексеев А.П. Пространственное
распределение информации в звуковых файлах.
XVI РНТК ПГУТИ. Самара, 2009. – С. 171-172.
METHODS OF INTRODUCTION OF THE INFORMATION
IN SOUND FILES OF FORMAT MIDI
Alekseev A.P., Alenin A.A.
Methods of the latent information transfer in MIDI-files are considered. Introduction of the confidential information is required for the latent information transfer, and as for protection of copyrights
of composers.
Keywords: format MIDI, e vent, m
 essage, musical editor, method, steganography, l ist, information, note,
introduction.
Алексеев Александр Петрович, к.т.н., доцент Кафедры «Информатика и вычислительная техника»
Поволжского государственного университета телекоммуникаций и информатики. Тел. (8-846) 262-97-46.
E-mail: apa@bk.ru
Аленин Артем Алефтинович, ассистент Кафедры «Информационные технологии» Димитровградского
института технологии, управления и дизайна (филиал Ульяновского государственного технического
университета). Тел. (8-84-325) 72-494. E-mail: styleal@mail.ru
«Инфокоммуникационные технологии» Том 9, № 1, 2011
Download