УДК 004.43(031), 004.056.5
СПОСОБЫ КРИПТОГРАФИИ И СТЕГАНОГРАФИИ ДЛЯ ЗАЩИТЫ ЭЛЕКТРОННЫХ ДОКУМЕНТОВ ОТ ПОДДЕЛКИ НА ОСНОВЕ ОТОБРАЖЕНИЯ ЛОРЕНЦА
© 2018 В. В. Гордиенко1, В. М. Довгаль2, А. В. Лукина 3
1 канд. техн. наук, доцент кафедры информационной безопасности
e-mail: vika.gordienko.1973@ mail.ru, 2 докт. техн. наук, профессор, профессор кафедры программного обеспечения и администрирования информационных систем e-mail: dovgalvm.pro fa, yandex. ru 3 магистр e-mail: liska_148@.mail.ru
Курский государственный университет
В статье рассматривается метод криптографической и стеганографической защиты от подделки электронных документов, основанный на применении одномерного отображения Лоренца. При неизвестных стартовых значениях отображения злоумышленнику необходимо выполнить полный перебор всех иррациональных чисел, а также всех чисел, полученных с помощью генераторов детерминированно-хаотических процессов, что существенно повышает криптостойкость и стеганостойкость предлагаемых методов.
Ключевые слова: криптография, стеганография, детерминированно-хаотический процесс, последовательность, тасовка, местоположение, упорядочение, битовый срез.
В последнее время интерес специалистов в области защиты информации, в частности защиты электронных документов от подделки, концентрируется на разработке способов криптографии и стеганографии на основе использования детерминировано-хаотических процессов [Dovgal et al. 2008; Dovgal, Zacharov 2004]. Этот класс процессов характеризуется неустойчивостью, следствием которой является неповторяемость значений элементов в последовательности чисел при представительной разрядной сетке. Соответственно, в качестве генераторов хаотических детерминированных процессов используются, как правило, так называемые нелинейные отображения в зависимости от их мерности. Так, например, в двухмерных и трёхмерных отображениях не повторяются значения всех переменных (двойки, тройки и т. д.) [Паркер 1978; Томпсон 1975]. Например, для двумерного отображения Хенона, Лози и других не повторяются пары чисел. Примерами одномерных отображений являются отображения Лоренца и другие. В одномерных отображениях не повторяются значения только одной переменной.
Например, двумерное отображение имеет следующий вид.
xn+1 1 а ' x n + yn;
уп+1 = в ■ xn .
Отображение Хенона (англ. Henon map) является дискретной во времени динамической системой. Это один из наиболее изученных примеров такого рода систем, которые имеют детерминированно-хаотическое поведение. Соответственно, точку (х0, у0) будем называть стартовой точкой отображения. Отображение принимает значение в точке (хп, уп) в плоскости и сопоставляет его с новой точкой. Оно зависит от
двух параметров а и ß, которые для классического отображения Хенона имеют значение а = 1,4 и ß = 0,3 [Томпсон 1975]. Для классических значений отображение Хенона является хаотическим. При других значениях а и ß отображение может быть хаотическим с перерывами или сходиться к периодической траектории. Типы поведения отображения при различных значениях параметров могут быть получены из схемы его работы. Отображение было введено Мишелем Хеноном как упрощенная модель сечения Пуанкаре модели Лоренца. Для классического отображения начальная точка плоскости должна приближаться к набору точек, известных как странный аттрактор Хенона, или стремиться к бесконечности. За такую характеристику и неустойчивое детерминированно-хаотическое поведение данное отображение целесообразно применять для разработки методов криптографической и стеганографической защиты информации, а также в алгоритмах защиты от подделки электронных документов. Однако для упрощения рассуждений и снижения вычислительной сложности остановим свой выбор на одномерном отображении Лоренца.
Цель данной работы заключается в критптографической и стеганографической обработке данных для защиты электронных документов от несанкционированного доступа, основанных на одномерном отображении Лоренца.
При использовании криптографии шифруемое сообщение не доступно для чтения, а при стеганографии зрительный аппарат человека не воспринимает изменения каждого последнего бита в каждом байте, что не позволяет злоумышленнику выполнять целенаправленные действия по изменению шифрованного или стеганографированного текста.
Одномерное отображение Лоренца, которое в значительной степени повторяет поведение, присущее хаотическим процессам, имеет вид.
xn+1 = 1 - 2 | Х„\
Зададим исходное стартовое значение
хо = - 0.659871167805732228635420406.
Тогда получим следующую детерминировано-хаотическую последовательность, кодирующую местоположение, а также пары <значение кода местоположения - тетрада крипографируемого текста>:
-0.319742335611464457270840812 - Т1;
0.360515328777071085458318376 - Т2;
0.278969342445857829083363248 - Т3;
0.442061315108284341833273504 - Т4;
0.115877369783431316333452992 - Т5;
0.768245260433137367333094016 - Т6;
-0.536490520866274734666188032 - Т7;
-0.072981041732549469332376064 - Т8;
0.854037916534901061335247872 - Т9;
-0.708075833069802122670495744 - Т10;
-0.416151666139604245340991488 - Т11;
0.167696667720791509318017024 - Т12;
0.664606664558416981363965952 -Т13;
-0.329213329116833962727931904 - Т14;
0.341573341766332074544136192 - Т15;
0.316853316467335850911727616 - Т16;
0.366293367065328298176544768 - Т17;
0.267413265869343403646910464 - Т18;
0.465173468261313192706179072 - Т19,
где Т/ - тетрады (i = 1,2,.....19).
Будем использовать элементы полученного ряда в качестве маркера указателя местоположения букв шифруемого сообщения, для чего выполним упорядочение составляющего пары < маркер местоположения - фрагмент шифруемого текста>.
Выполним упорядочение последовательности «от большего к меньшему».
0.854037916534901061335247872 - Т9;
0.768245260433137367333094016 - Т6;
0.664606664558416981363965952 - Т13;
0.46517468261313192706179072 - Т19;
0.442061315108284341833273504 - Т4;
0.366293367065328298176544768 - Т17;
0.360515328777071085458318376 - Т2;
0.341573341766332074544136192 - Т15;
0.316853316467335850911727616 - Т16;
0.278969342445857829083363248 -Т3;
0.267413265869343403646910464 - Т18;
0.167696667720791509318017024 -Т12;
0.115877369783431316333452992 - Т5;
-0.072981041732549469332376064 - Т8;
-0.319742335611464457270840812 -Т1;
-0.329213329116833962727931904 - Т14;
-0.416151666139604245340991488 - Т11;
-0.536490520866274734666188032 - Т7;
-0.708075833069802122670495744 - Т10,
где Т/ — тетрады с новыми кодами местоположения.
Рассмотрим классические последовательности, которые генерируются отображением Лоренца. Выделим произвольный участок последовательности аттрактора Лоренца с неповторяющимися значениями < x n >, при этом каждое значение принадлежит телу аттрактора и ни одно из они них не повторяется. Выполним упорядочение по полученным значениям указателей местоположения фрагмента шифруемого текста, например его тетрад. Каждая тетрада представляет собой четыре бита каждого символа в коде ASCII. Соответственно, каждое значение при сортировке не будет конкурировать по своему местоположению ни с какой другой меткой положения. Сущность способа криптографии заключается в том, что каждому значению местоположения тетрады ставится её код местоположения. При этом будем полагать, что количество холостых шагов работы аттрактора Лоренца позволяет ему находиться на теле аттрактора. В результате чего получим упорядоченные <код местоположения тетрад шифруемого сообщения и тетраду, соответствующую данному местоположению>. При этом коды местоположения тетрад кодируются значениями, взятыми из детерминированно-хаотической последовательности, которая генерируется классическим отображением Лоренца. Затем тетрады переносятся по новым позициям, что соответствует процедуре тасовки. Тасовка в шифруемом сообщении заключается в том, что тетрады переносятся в строгом соответствии с указанным местоположением в новой индексации фрагментов криптошифра.
Расшифрование выполняется в обратном порядке, в начале по известным значениям: выбранному типу аттрактора, начальных условий и числу холостых шагов, при этом принимающая сторона генерирует копию шагов работы отображения Лоренца и упорядочивает эту копию; на следующем шаге присваивает каждому значению неупорядоченной последовательности значения местоположения каждой единицы (тетраде) шифротекста, заданной в коде ASCII; затем в новое местоположение тетрад, которое задано упорядоченными местоположениями, переносится значения тетрад всего сообщения. Каждая тетрада соответствует коду ASCII, а в результате получим расшифрованный исходный текст.
Предложенный метод криптографии разбивают на два модуля - шифрования и расшифрования сообщений.
Модуль шифрования выполняет следующие шаги для получения шифрограммы:
1. Задается в ASCII текст сообщения, который преобразуется в двоичную последовательность и разбивается на тетрады.
2. Генерируется 64-значное дробное число, которое должно быть по модулю больше 0, но меньше 1. Это число и будет являться местоположением тетрад символов шифруемого сообщения, с помощью которого будет производиться последующее формирование криптограммы.
3. В качестве маркеров указателей местоположения шифруемого сообщения используется аттрактор Лоренца.
4. Для очередной тетрады генерируется значение местоположения, где в качестве аргумента берется сгенерированное на очередном шаге текущее значение аттрактора Лоренца.
5. Текущей тетраде шифруемого текст ставится в соответствие сгенерированное значение местоположения, после чего записывается в список пара <значение (код) местоположение терады - текущая тетрада>.
6. Полученные значения аттрактора Лоренца сортируются по возрастанию или убыванию значения указателей местоположения.
7. Из списка берутся тетрады, по порядку конкатенируются к своим новым местоположениям из отсортированной последовательности, и таким образом формируются шифрограмма.
8. Этот текст и указатель исходного местоположения, а также число холостых шагов работы аттрактора передаются пользователям с санкционированным доступом для дальнейшей работы.
При получении шифрограммы и исходного местоположения модуль расшифрования выполняет похожие действия, что и в модуле шифрования, то есть:
1) полученная шифрограмма преобразуется в двоичную последовательность и разбивается на тетрады;
2) для всех тетрад формируются значение с помощью той же, что и в модуле шифрования, где так же для получения начального значения аттрактора Лоренца передаётся полученный ранее код местоположения, а для получения новых значений - предыдущее значение кода местоположения. В список сохраняют пару <местоположение - текущая тетрада>;
3) список сортируется по значению кода местоположения в том же порядке (от меньшего к большему), что и в блоке шифрования;
4) в результате имеются две последовательности значений местоположений: первая с их упорядочением, а вторая как результат конкатенации при формировании пар <код местоположения тетрады - текущая тетрада>. Вначале обрабатывается полученный шифротекст, а каждой его тетраде конкатенируется код ее местоположения, взятый из полученной упорядоченной последовательности этих кодов. Затем каждый код местоположения переносится в неупорядоченную последовательность кодов местоположений для каждой тетрады;
5) из несортированного списка кодов местоположения считываются все тетрады, осуществляется разбиение на байты и формируется код ASCII. На этом процедура расшифрования завершается.
Предложенный алгоритм может иметь различные модификации. Например, увеличив криптостойкость путем генерации ключа и использование «холостых» прогонов с помощью аттрактора Лоренца. Причем количество прогонов можно
зафиксировать в программе (например, 100, 300 или 1000 прогонов) либо генерировать это количество в модуле шифрования и передавать это значение вместе с ключом и сообщением в модуль расшифрования.
Стеганография реализуется также на основе детерминированно-хаотического отображения Лоренца. Будем использовать .BMP формат. Специфика зрения человека не позволяет ему воспринимать информацию, которая кодируется последними битами каждого байта в цветности [Конахович, Пузыренко 2006]. Таким образом, каждый байт цветности воспринимается человеком как искажение (шум) фотокамеры, поэтому младшими битами каждого байта можно пренебречь. Соответственно, любое криптографирование, предваряющее стеганографию, будет восприниматься как естественная помеха, особенно тогда, когда изображения в фотокамере произведены самим участником стеганографического обмена информации, а не взяты, например, из сети Интернет.
Для реализации стеганографии выбирается восьмой битовый срез всех байтов секретного сообщения, а двоичный код каждого символа разбивается на тетрады. Каждой тетраде ставится в соответствие код местоположения, для чего используются элементы детерминированно-хаотического ряда, который генерируется отображением Лоренца. Причём, как уже упоминалось, элементы детерминировано-хаотического ряда задаются без повторений значений, что характерно для работы аттрактора Лоренца.
Поясним на примере сущность способа стеганографии, с этой целью возьмем последний фрагмент работы вышеназванного аттрактора с начальным условием
х0 = -0.416151666139604245340991488, тогда получим ряд следующего вида. Каждому элементу ряда поставим в соответствие номер тетрады;
0.167696667720791509318017024 - Т1;
0.664606664558416981363965952 - Т2;
-0.329213329116833962727931904 - Т3;
0.341573341766332074544136192 - Т4;
0.316853316467335850911727616 - Т5;
0.366293367065328298176544768 - Т6;
0.267413265869343403646910464 - Т7;
0.465173468261313192706179072 - Т8,
где Т/ — тетрады с кодами местоположения (i = 1,2,3,.. ..8).
Полученный восьмой битовый срез упорядочим «от большего к меньшему» в соответствии со значением маркеров указателей местоположения, задаваемых аттрактором Лоренца 0.664606664558416981363965952 - Т2; 0.465173468261313192706179072 - Т8: 0.366293367065328298176544768 - Т6; 0.341573341766332074544136192 - Т4; 0.316853316467335850911727616 - Т5; 0.267413265869343403646910464 - Т7; 0.167696667720791509318017024 - Т1; -0.329213329116833962727931904 - Т3; где Т/ — тетрады с новыми кодами местоположения.
В соответствии с этими преобразованиями осуществляется тасовка восьмого битового среза, который не воспринимается зрительным аппаратом человека и создает непреодолимое
препятствие для целенаправленного изменения содержания документов. В результате тасовки изменяется только помеха фотокамеры.
Рассмотрим последовательность действий в процедуре стеганографии.
1. Секретное сообщение задается коде ASCII для каждого символа.
2. Каждый код ASCII разбивается на тетрады по четыре бита.
3. Каждой тетраде ставится во взаимно однозначное соответствие код местоположения, взятый из детерминированно-хаотической последовательности, задаваемой аттрактором Лоренца.
4. Выполняется упорядочение кодов местоположения тетрад «от большего к меньшему».
5. В результате осуществляется тасовка секретного сообщения (секретная вставка в восьмой срез каждого байта).
6. Пересылается получателю, которому известны тип аттрактора, число холостых шагов его работы и его стартовые условия.
При получении стегоконтейнера, принимающая сторона выполняет следующие шаги для восстановления исходного текста:
1) выбирается восьмой срез каждого байта;
2) восстанавливается значение аттрактора Лоренца по известным только
получателю числу холостых шагов его работы и стартовое значение;
3) выполняется обратное преобразование и восстанавливается необходимая
последовательность тетрад, которые представляют собой само секретное сообщение;
4) секретное сообщение разбивается на байты и переводится в код ASCII, что
позволяет восстановить весь скрытый текст.
Таким образом, нами предложен новый единый механизм для криптографии и стеганографии основанный на применении детерминировано-хаотических процессов, например, заданных аттрактором Лоренца.
При таком подходе злоумышленник должен сделать полный перебор для всех известных отображений, а также иррациональных чисел, из которых формируются неповторяющиеся фрагменты сообщения, которые можно использовать для вышеописанных процедур криптографии и стеганографии.
Данная организация процесса позволяет получать несравнимые по сложности алгоритмы криптографии и стеганографии для лица, осуществляющего несанкционированный доступ к информации, и в то же время алгоритм является простым для получателя секретного сообщения при известных ему стартовых значениях, классу, к которому принадлежит аттрактор, и числу холостых шагов, чем обусловлена высокая крипто- и стеганостойкость алгоритма.
Библиографический список
Конахович Г.Ф., Пузыренко А.Ю. Компьютерная стеганография. Теория и практика. К.: МК- Пресс, 2006. 288 с.
Паркер Т.С., Чжуа JI.O. Введение в теорию хаотических систем для инженеров // ТИИЭР. 1987. Т. 75. №8. С. 6-40.
Томпсон Дж. М. Т. Неустойчивости и катастрофы в науке и технике: пер с англ. М.: Мир. 1985. 254 с.
Dovgal V.M., Gordienko V.V., Elagin V.V. Methods of a computer based technology for production of counterfeit-protected electronic documents // Telecomunication and radio engineering. 2004. Vol. 8. P. 745-753.
Dovgal V.M., Zacharov I.S.. Preventive counteraction to information attack on a text electronic documents by the method of chaotic transpositions of symbol code fragments // Telecomunication and radio engineering. 2008. Vol. 4. P. 995-1005.