№ 6(24) 2009
В. В. Андреев, Ю. В. Сапожникова, А. И. Фомичев
Детерминированный хаос и кодирование информации
В работе разработаны и исследованы два алгоритма кодирования информации на основе детерминированного хаоса. В качестве генератора хаоса использован аттрактор Лоренца. Найдены оптимальные параметры кодирования.
В связи с бурным развитием компьютерных сетей, интернет-технологий и беспроводных систем связи появляется все больше задач, связанных с кодированием информации, которые трудно решить, используя только традиционные подходы.
Например, интенсивный рост производительности процессоров, сводящий на нет многие традиционные криптографические решения, стимулирует разработку новых принципов кодирования.
Одним из альтернативных подходов здесь является применение теории динамического детерминированного хаоса. В системах с динамическим хаосом наблюдается, в частности, сильная чувствительность к изменению начальных данных. Поведение таких систем невозможно предсказать на достаточно длительных временных интервалах.
Следует отметить, что в настоящее время большое внимание уделяется разработке алгоритмов шифрования, основанных на хаосе [1,2]. В работе [2] был предложен новый метод кодирования графической информации с использованием хаотического генератора. Метод основан на изменении цвета каждого образа символа согласно псевдослучайному закону.
В настоящей работе, как и в [3], в качестве генератора хаоса использован аттрактор Лоренца, описываемый системой дифференциальных уравнений [4]:
Ж XX V,
--= -аХ + аУ,
А 6У
—=-хг+гХ-у , л
—=ХУ-ы.
а
(1)
8
Здесь г = 28, ст = 10, Ь=—, t — время. На рис. 1 3
и 2 изображены кривые, полученные из решений системы уравнений Лоренца следующим образом:
Г () =АХ () + ВУ() + CZ ().
(2)
Здесь А = В = С=0,016. Для указанных на рис. 1 и 2 кривых начальные условия X(0) отличаются на одну миллионную долю. Видно (см. рис. 1, 2), что при временах С больших двадцати условных единиц, траектории систем становятся совершенно непохожими.
В работе были разработаны и исследованы два алгоритма кодирования данных на основе динамического детерминированного хаоса.
Способ I
Для шифрования сигнала использован следующий алгоритм.
1. Отсчеты исходного звукового сигнала
(см. рис. 3) сортируем по возрастанию. При
этом, если среди отсчетов встречается несколько одинаковых, оставляем только один из них. В результате получаем массив т1итрие (см. рис. 4 и 5).
2. В массиве п1 запоминаем номера отсчетов исходного сигнала, совпадающих по уровню с каждым из элементов массива т1итрие (см. рис. 5). Таким образом, размерность массива п равна размерности массива з().
3. В массиве п2 запоминаем количество повторений в исходном сигнале каждого из отсчетов, записанных в массив т1итрие (см. рис.5). Следовательно, массивы т1и1^ие и п2 имеют одинаковую размерность.
4. Умножаем каждый элемент массива т1итрие на постоянный коэффициент к,
80
№ 6(24) 2009
юо '
f,c
Рис. 1. Аттрактор Лоренца для начальных условий * (0)=1, У (0)=1,7(0)= 1
m
1,0
0,8
0,6
0,4
0,2
-0,2
100 '
Рис. 2. Аттрактор Лоренца для начальных условий X (0)= 1,000001, У (0)=17(0)= 1
«о а
I
е
«о §
а
I
5
од
Sj
£
а
еа еа
0,2 0,4 0,6 *'с
Рис. 3. Исходный звуковой сигнал s(t)
0 2000 4000 6000
Рис. 4. Отсортированный по возрастанию массив т1ипк|11е отсчетов исходного сигнала
ml unique
2 1
Рис. 5. К пояснению создания массивов т1ип1див, п 1, п2
а b а
1 2 -«2 N
2 Ц2 »1
«W
81
№ 6(24) 2009
Рис. 6. Решение X() аттрактора Лоренца, построенного в точках к ■ т1ип1див
-200 0 200
Рис. 7. Нормированные значения зависимости X1 ()
и
т. е. вычисляем к • т1ип'!цие. В точках временной оси I совпадающих с элементами массива к ■ т1ип'!цие, находим решения аттрактора Лоренца (1). При этом решения системы дифференциальных уравнений (1) могут быть как положительными, так и отрицательными (см. рис.6). Осуществляем сдвиг зависимости, например X(), в область положительных значений: Х() + Д, где константа Д выбирается из условия X ()+ Д> 0для VI
5. Нормируем отсчеты X() + Д так, чтобы максимальный из них был равен размерности массива п1. Так получим массив X1 () (см. рис. 7).
6. Округляем элементы массива X1 ().
а а гг а € 8-
а а ш
а §
«о
о §■
§
а
0
§1 >а
1
«о
о §■
^ &
е
7. Перебираем по порядку элементы массива X1 (). Допустим, очередной элемент с номером М1 имеет значение а (рис. 8). Тогда в массив п1 после элемента с номером а — Добавляем пустую ячейку, сдвигая при этом элементы, начиная с номера а, на одну единицу вправо. В добавленную ячейку записываем элемент с номером М1 из массива п2. В результате получим новый массив п3 длиной
+ п2).
8. В массив п3 добавляем параметры аттрактора Лоренца и значение коэффициента к.
Декодирование сигнала в приемнике происходит в следующем порядке.
а
1 М, ... М
Ь »2
1 М, ... м
N+1
Рис. 8. К пояснению создания массива п 3
82
№ 6(24) 2009
1. Имеем коэффициент к, параметры аттрактора Лоренца (1), а также массивы т1итрие и п3.
2. Запускаем аттрактор Лоренца (1) и получаем его решение X() в моменты времени, соответствующие элементам массива к*т1итрие.
3. Производим нормирование элементов массива X(() в том же порядке, что и при шифровании. В результате получим массив X, ().
4. Округляем элементы массива X, () так же, как и при шифровании.
5. Зная отсчеты X, (), выделяем из массива п3 массивы п и п2.
6. Зная массивы пи п2 и т1итрие, восстанавливаем исходный звуковой сигнал *().
Оценим увеличение размера зашифрованного сигнала по сравнению с исходным. Размер зашифрованного сигнала определяют массивы т1итрие и п3. Положим, размер исходного сигнала равен х. Размер массива п3 складывается из размеров массивов п и п2. Размер массива п равен размеру массива исходного сигнала т. е. х. В свою очередь размеры массивов т1итрие и п2 равны между собой и составляют ориентировочно порядка 25 % от размера массива исходного сигнала, т. е. 0,25х каждый. Таким образом, размер зашифрованного сигнала в 1,5 раза больше по сравнению с исходным, что достаточно существенно. В то же время когда речь идет об обеспечении высокой степени устойчивости метода шифрования по отношению к несанкционированным попыткам взлома, такое увеличение объема передаваемых данных может быть вполне терпимым. Здесь взломщик, не обладая генератором детерминированного хаоса, использованным при кодировании данных, практически не сможет правильно ихде-кодировать методом перебора.
Рассмотрим также несколько подходов к уменьшению размера передаваемого сигнала.
Первый подход заключается в следующем. Отсортированный по возрастанию массив т1итрие отсчетов исходного сигнала *() аппроксимируем полиномом (см. рис. 9 (на с. 84)). Тогда по каналу связи вместо массива т1итрие можно будет передавать только коэффициенты этого полинома. В этом случае размер зашифрованного сигнала будет в 1,25 раза
больше по сравнению с исходным. Степень полинома подбирается исходя из оптимального соответствия следующих факторов: достаточно малое отклонение от аппроксимируемого массива, быстрота вычисления и наилучшее соответствие дешифрованного сигнала исходному. Например, для массива т1и1^ие, представленного на рис.4 (с. 81), наилучшим оказалась аппроксимация полиномом двадцать второй степени. При этом дешифрованный сигнал с высокой степенью точности совпадает с исходным представленным на рис. 3 (с. 81).
Второй подход состоит в том, что перед шифрованием происходит округление отсчетов исходного сигнала *(). Округление можно осуществлять различными способами, что обеспечивает дополнительную неопределенность при попытках несанкционированного взлома. Если, например, отсчеты исходного сигнала содержат четыре значащие цифры после запятой, то можно поступить, в частности, так:
гоипф()-1000)
* ((>
1000
(3)
«о £
а
I
е
«о §
а
I
I
£
а
со еа
Здесь функция юипё(х) производит округление до ближайшего целого. В этом случае после округления из отсчетов, содержащих четыре значащие цифры после запятой, получаем отсчеты, содержащие три значащие цифры после запятой. При этом для сигнала представленного на рис. 3, размер массива т1итрие уменьшилась примерно в 12 раз. В итоге размер зашифрованного сигнала будет только в 1,3 раза больше по сравнению с исходным.
Третий подход представляет собой комбинацию первого и второго подходов. Сначала округляем исходный сигнал *() в соответствии с формулой (3). Далее к отсортированному по возрастанию массиву т1итрие подбираем аппроксимирующий полином и по каналу связи вместо полинома т1итрие передаем коэффициенты этого полинома. В этом случае размер зашифрованного сигнала будет в 1,25 раза больше по сравнению с исходным, как в первом подходе, но достигается лучшее соответствие дешифрованного сигнала исходному.
Выбор конкретного способа кодирования определяется совокупностью факторов, от
83
№ 6(24) 2009
которых зависят конкретные условия эксплуатации системы.
Способ II
Блок-схема алгоритма этого способа кодирования сигнала представлена на рис. 9.
Предполагается, что исходный сигнал квантован по времени с периодом ДТ. Отсчеты сигнала взяты в моменты времени
t * = 0 +ДГ (п-1), (4)
где t0—начало отсчета времени; п= 1, 2, ... — номер байта.
Таким образом, уровень каждого отсчета сигнала закодирован одним байтом. В качестве генератора хаоса также используется аттрактор Лоренца (1). Кодирование сигнала происходит в следующем порядке.
1. Исходный дискретный во времени сигнал разбивается на равные участки, например, по 1024 байт.
2. Задаем отрезок [Т0т, Тт ] так, что
——Тот=256. Следовательно, данный времен-
ДТ +1
ной отрезок содержит 256 точек, отстоящих друг от друга на шаг ДТ,. Впрочем, следует отметить, количество этих точек может быть и другим в зависимости от метода реализа-
ции. В данном случае величина 256 взята исходя из того, что уровни отсчетов исходного сигнала, закодированные одним байтом, могут принимать значения на множестве целых чисел от 0 до 255. Число отрезков разбиения (т. е. значение т) может быть различным в каждом конкретном случае реализации алгоритма либо может изменяться в ходе кодирования.
3. Синтезируем по формуле (2) функцию 1т () на отрезке [Тот, Тт ]. Параметры Тот, Тт, А, В и С могут быть уникальными для каждого участка с номером т.
4. Побайтно заменяем значения X(/) (здесь
/ = 1,2,..., 1024) каждого байта в исходном сигнале на величины (Т0т + X(/)).
Принципиальным отличием декодирования от кодирования сигнала, как видно из блок-схем, приведенных на рис.9 и 10, являются непосредственно блоки кодирования и декодирования. Поэтому ниже рассмотрим только блок декодирования сигнала.
1. В приемник поступает шифрованный квантованный с периодом ДТ сигнал ХС (), каждый отсчет которого закодирован одним байтом.
2. На приемной стороне, имея значения параметров Т0т, Тт, А, В и С, а также начальные условия системы уравнений (1), синтезируем
а а гг а
€ &
а а ш
а §
«о
о ^
§
а
0
§1 >а
1
«о
о §
€ &
р
Входной сигнал
Разб входногс на участки ивка сигнала о 1024 байт
Генератор хаоса
Разб сигнал на участки ивка а хаоса по 256 байт
84
Кодирование учапка входного сигнала: значение л-го байта сопоставляется номеру байта участка хаоса
Выходной кодированный сигнал
Рис. 9. Блок-схема алгоритма кодирования сигнала
№ 6(24) 2009
Кодированный сигнал
1
Разб входногс на участки ивка сигнала о 1024 байт
Генератор хаоса
Разб сигнал на участки ивка а хаоса по 256 байт
Декодирование участка кодированного сигнала: значение л-го байта сопоставляется значению байта участка хаоса
«о а
I
е
«о §
а
I
5
од
Sj
£
а
со од
Выходной декодированный сигнал
Рис. 10. Блок-схема алгоритма декодирования сигнала
по формуле (2) функцию ^ (() на отрезке
[Т0 т I Тт ]•
3. На отрезке [Т0т,Тт ] сравниваем значения функций (?) и Хс ((). Если они совпадают, то номер байта 1<М<256 величины (() определяет значение соответствующего бита исходного сигнала по формуле
X(/) = М - Тот • (5)
Рассмотренный способ кодирования не приводит к увеличению объема передаваемой информации. В то же время при кодировании и декодировании требуются большие объемы памяти для хранения данных.
Заключение
Производить шифрование сигналов по предложенным схемам лучше всего по блокам. Стойкость алгоритма к расшифровке обусловлена невоспроизводимостью хаотических систем при неизвестных параметрах и начальных условиях, так как при малейшем несоответствии этих значений истинным поведение системы совершенно отличается от исходного и восстановить сигнал невозможно. Каждый из рассмотренных способов шифрования с помощью детерминированного динамического хаоса имеет свои достоинства и недостатки.
Выбор конкретного способа диктуется условиями его применения.
Исследования в данной работе были выполнены на основе пакета Ма^аЬ. Для решения системы уравнений Лоренца (1) были использованы решатели ode| имеющиеся в указанном пакете.
СПИСОК ЛИТЕРАТУРЫ
1. LepsoyS., OienG.E., RamstadT. A. Attractor image compression with a fast non-iterative decoding algorithm I Acoustics, Speech, and Signal Processing: 1993 IEEE International Conference. 1993. V. 5. P. 337-340.
2. Kal'yanovG. N., Kal'yanovE.V. Coding Digital Information with the Use of Generators with Chaotic Dynamics II Journal of communications technologies and electronics. 2008. № 4.
3. Сапожникова Ю. В., Андреев В. В. Хаос и кодирование информации II Информационные технологии в профессиональной деятельности и научной работе: сборник материалов Всероссийской научно-практической конференции с международным участием. Йошкар-Ола: Марийский государственный технический университет: в2ч. Ч. 2. 2009. С. 9-12.
4. Шустер Г. Детерминированный хаос: введение. М.: Мир, 1988.
85