УДК 004.056 РАЗРАБОТКА И ОЦЕНКА НОВОГО СТЕГАНОГРАФИЧЕСКОГО МЕТОДА ЗАЩИТЫ ИНФОРМАЦИИ НА БАЗЕ ЛИНГВИСТИЧЕСКОГО ПОДХОДА Никитина К. А., Попел Е. В., Постникова Т. А. научный руководитель канд. техн. наук Шниперов А. Н. Сибирский федеральный университет Введение. В настоящее время проблема стеганографической защиты информации от несанкционированного доступа является чрезвычайно актуальной. Большинство исследований в области стеганографии на сегодняшний день ориентированы на встраивание секретной информации в различные мультимедиа файлы (такие как изображения, оцифрованный аудиосигнал, видео) [1]; в то время как лингвистическая стеганография, использующая в качестве контейнера текстовые документы, занимает далеко не лидирующие позиции. Это можно объяснить тем, что объем информации, передаваемой таким способом, невелик в сравнении со стеганографическими методами, использующими мультимедиа контейнеры. Но создаваемый комплекс, впрочем, может иметь широкое применение, так как по статистике наибольшей интенсивностью потоков передачи обладает именно текстовая информация. Преимущество использования текстовых контейнеров перед другими медиаконтейнерами состоит еще и в том, что в настоящее время практически не реализованы методики анализа текстовых файлов на наличие скрытой информации [2]. В исследуемой нами области уже ведутся разработки на английском языке, которые были взяты в основу данной работы [3]. Актуальность нашей работы заключается в том, что создаваемая стеганографическая система позволяет работать с текстами на русском языке. Алгоритм работы системы. Основная идея – генерация текста (стегоконтейнера) на основе имеющейся Марковской цепи и скрываемого сообщения. Марковская цепь заранее строится по какому-либо текстовому шаблону, которым обладают и отправитель, и получатель. Сгенерированный текст может не обладать серьёзной смысловой нагрузкой, однако каждое предложение будет составлено синтаксически правильно, так что автоматизированные средства лингвистического анализа могут не выявить факт сокрытия информации, во всяком случае те средства, которые не обладают интеллектуальными методами анализа. Принцип встраивания сообщений заключается в следующем. 1. На основании некоторого шаблонного текста, называемого далее пустым контейнером 𝐶, строится переходная матрица 𝑀𝐶 для Марковского процесса [4], соответствующего этому тексту 𝐶. В эту матрицу записываются вероятности перехода из каждого возможного состояния в любое другое. Состояниями, в нашей стеганосистеме, называются отдельные слова или их пары. Вероятность перехода из состояния 𝑠𝑖 в состояние 𝑠𝑗 равно отношению количества раз, которое состояние 𝑠𝑗 следовало сразу за состоянием 𝑠𝑖 в пустом контейнере, к количеству повторений отдельно состояния 𝑠𝑖 . 2. Далее из всех возможных состояний 𝑀𝐶 выбирается стартовое состояние, которое будет являться скрытым ключом 𝑘 нашей стеганосистемы. Предполагается, что отправитель и получатель заранее обменялись пустым контейнером 𝐶 и ключом стеганосистемы 𝑘. 3. Сообщение 𝑀 преобразуется в битовую строку и разбивается на битовые блоки, затем каждый блок переводится в десятичное число. 4. Для числа, соответствующего первому блоку сообщения 𝑀, начиная с выбранного начального состояния 𝑘 генерируется последовательность состояний на основе переходной матрицы 𝑀𝐶 (алгоритм рассмотрен подробнее ниже). 5. Для каждого из оставшихся блоков сообщения 𝑀 в качестве стартового состояния выбирается последнее состояние предыдущего блока. Затем генерируется новая последовательность состояний, соответствующая числу, в которое данный блок преобразован; и эта последовательность дописывается к предыдущей. Таким образом, полученная последовательность состояний (т.е. слов или пар слов) по сути будет являться текстом, который к тому же повторяет некоторые статистические особенности текста пустого контейнера. Рассмотрим подробнее алгоритм генерации последовательности состояний из пункта 4. Обозначим за 𝐿 длину блока сообщения в байтах; тогда диапазон, в котором может лежать число 𝑛, соответствующее встраиваемому блоку сообщения, равен [𝑎, 𝑏], где левая граница задана переменной 𝑎 = 0, а правая переменной 𝑏 = 28𝐿 − 1; соответственно, длина этого диапазона 𝑙𝑒𝑛 = 𝑏 − 𝑎 + 1. Также обозначим 𝑠 – стартовое состояние, выбранное для этого блока. 4.1. Перейдем к первому (при повторе шага – к следующему) элементу строки матрицы перехода 𝑀𝐶, соответствующей переходу из состояния 𝑠. Значение этого элемента запишем в переменную 𝑁. 4.2. Если 𝑎 < 𝑛 < (𝑎 + 𝑙𝑒𝑛 ∙ 𝑁), то перейти к следующему шагу. Иначе присвоить 𝑎 = 𝑎 + 𝑙𝑒𝑛 ∙ 𝑁 и вернуться к предыдущему шагу. 4.3. Присвоить 𝑏 = 𝑎 + 𝑙𝑒𝑛 ∙ 𝑁, в 𝑠 записать то состояние, столбцу которого в это строке 𝑀𝐶 соответствует число 𝑁, новое состояние 𝑠 записать в выходную последовательность состояний. 4.4. Пересчитать 𝑙𝑒𝑛 = 𝑏 − 𝑎 + 1. Если 𝑙𝑒𝑛 = 1, то запись состояний для этого блока окончена. Иначе перейти к шагу 4.1. Алгоритм извлечения сообщения 𝑀 из заполненного контейнера 𝑆 аналогичен алгоритму встраивания. Предполагается, что извлекающий знает пустой контейнер 𝐶, а значит может построить матрицу перехода 𝑀𝐶; знает стартовое состояние 𝑘; и знает длину блока сообщения 𝐿, а значит может вычислить длину 𝑙𝑒𝑛 и границы [𝑎, 𝑏] диапазона, в который будут попадать числа 𝑛, соответствующие блокам сообщения 𝑀. Для извлечения необходимо инвертировать алгоритм пункта 4 для получения числа 𝑛 по последовательности состояний. Происходит это путем аналогичного деления начального интервала [𝑎, 𝑏] на части в соответствии с вероятностями перехода из состояния в состояние до тех пор, пока длина интервала не сократится до 𝑙𝑒𝑛 = 1, а сам интервал не совпадет в точности с числом данного блока 𝑛. Результаты работы системы и анализ. Разработанный стеганографический программный комплекс проходил испытания на различных пустых контейнерах 𝐶; сообщениях 𝑀 различной длины, случайно сгенерированных из символов латинского алфавита, цифр и знаков препинания; для разных длин блока сообщения: от 1 до 7 байт; а также в режимах разных состояний: униграмм (отдельные слова) и биграмм (пары слов). По результатам работы оценивались следующие параметры пустых и заполненных контейнеров: 1. Объем 𝑉 – количество слов в тексте (для пустых контейнеров 𝐶 объем составлял от 414 до 178214 слов) 2. Разнообразие 𝐷 – количество уникальных слов в тексте 𝑉 3. Повторяемость 𝑅 – отношение (1) к (2): 𝑅 = (в 𝐶: от 1,45 до 6,48) 𝐷 4. Среднее число переходов – число слов, в которые можно перейти из каждого конкретного слова, усредненное по всем уникальным словам; среднее число непустых ячеек в строке матрицы перехода Марковской цепи, соответствующей данному тексту (в 𝐶: от 1,049 до 1,388). Предварительные результаты испытаний показали, что режим униграмм выдает значительно более подозрительные (малосвязные, бессмысленные – по результатам экспертной оценки), хотя и в разы менее длинные тексты, чем режим биграмм. Так как основным свойством стеганосистемы является подобие заполненного контейнера пустому (что в нашем случае можно трактовать как сходство заполненного контейнера с текстом, написанном на естественном языке, человеком – носителем этого языка, с как можно меньшим числом грамматических и синтаксических ошибок), дальнейшее тестирование было решено продолжить на биграммах. В ходе испытаний были выявлены следующие особенности системы: 1. При длине сообщения 𝑙𝑀 , ощутимо превышающей длину блока 𝐿, объем выходного контейнера 𝑉𝑆 никак не зависит от того, какая именно длина блока 𝐿 была выбрана. 2. Объем заполненного контейнера 𝑉𝑆 линейно уменьшается при увеличении объема пустого контейнера 𝑉𝐶 . Повторяемость 𝑅𝑆 также спадает при увеличении объема 𝑉𝐶 , причем повторяемость 𝑅𝐶 и 𝑅𝑆 выравниваются при объеме, меньшем 100% 𝑉𝐶 . 3. При размере сообщения 𝑙𝑀 , 4. не меньшей длины блока 𝐿, объем заполненного контейнера 𝑉𝑆 линейно зависит от длины сообщения 𝑙𝑀 ; число уникальных слов в выходном контейнере 𝐷𝑆 также растет линейно с увеличением 𝑙𝑀 , но выходит на насыщение в значении, равном числу уникальных слов в пустом контейнере 𝐷𝐶 . 5. Для нахождения рекомендуемой длины сообщения 𝑙𝑀 ′, то есть такой длины сообщения, при которой в среднем объем заполненного контейнера получается равным некоторой доле объема пустого контейнера: 𝑉𝑆 = 𝑝% 𝑉𝐶 , создана специальная программа. После ее тестирования на различных пустых контейнерах и их долях при значениях параметра 𝑝 ∈ {80%, 90%, 100%} выяснилось, что зависимость такой рекомендуемой длины сообщения 𝑙𝑀 ′ от объема пустого контейнера 𝑉𝐶 практически линейна. 6. После проведения большинства экспериментов мы уже имели возможность посчитать среднюю вместимость нашего метода, то есть то, какую долю составляет объем скрываемых данных от объема выходных данных. Получены следующие значения: от 0,5% до 9% для униграмм; от 0,003% до 0,5% для биграмм; для сообщений рекомендуемой длины в режиме биграмм: 0,2%÷0,3% Выводы. По результатам анализа полученных данных мы пришли к выводу, что метод разумнее всего использовать в следующем режиме: скрытие относительно коротких сообщений (длиной до 500 символов) в режиме биграмм на основе достаточно длинных текстов (от 10000 слов). В таком случае заполненный контейнер подобен пустому по объему и повторяемости и вместимость достаточно велика. К преимуществам разработанной системы можно отнести то, что: 1. В настоящее время практически не реализованы методики анализа текстовых файлов на наличие скрытой информации, а также в целом на естественность происхождения (человек или машина написала текст). Соответственно, сгенерированные данной программой заполненные контейнеры вполне могут затеряться среди больших объемов передаваемой постоянно текстовой информации. 2. Среди лингвистических стеганографических систем, работающих с русским языком, практически не существует аналогов, основанных на применении Марковских цепей, 3. Заполненные контейнеры (в режиме биграмм) получаются достаточно согласованными лингвистически, особенно при условии правильно подобранного шаблона (пустого контейнера). К недостаткам относится: 1. Низкая вместимость в режиме биграмм. 2. Внимательный читатель, конечно, заметит лингвистические ошибки в заполненных контейнерах, даже в режиме биграмм. Вопрос здесь стоит только о том, как часто они (ошибки) будут встречаться и насколько легко в целом текст поддается экспертному анализу (вчитываться в философские учения гораздо сложнее, чем в детские сказки). Совершенствование предложенного стеганографического методы сокрытия информации может быть продолжена в следующих направлениях: 1. Использование марковских процессов высоких порядков. 2. Консультация с лингвистами на тему методов оценки согласованности текстов, проверки на естественность. Последующий анализ. 2. Реализация интуитивно более понятной системы, предлагающей работу только в оптимальных условиях (подбор нескольких наиболее удачных шаблонов, создание графической оболочки, интеграция в существующие сервисы обмена текстовой информацией и т.д.). Список литературы: 1. Конахович Г.Ф., Пузыренко А.Ю. Компьютерная стеганография. Теория и практика, МК-Пресс, 288 с, 2006 2. Иванов В. Стеганография и путешествия: [Электронный ресурс] // Блог о компьютерной стеганографии. 2012. URL: http://www.nestego.ru/2012/04/blogpost_28.html. (Дата обращения: 01.04.2015). 3. H. Hernan Moraldo: An approach for text steganography based on markov chains // 4to Workshop de Seguridad Informatica, WSegI, 2012 4. Цепь Маркова: [Электронный ресурс] // Википедия – свободная энциклопедия. URL: https://ru.wikipedia.org/wiki/Цепь_Маркова. (Дата обращения: 01.04.2015).