Почему хаос и фракталы так тесно связаны с криптографией? Предлагаю разобраться с этим на примере нового алгоритма хаотического шифрования изображений с использованием особых фрактальных матриц.
Введение
Хаос и криптография
Впервые Хаос упоминается древнегреческим поэтом (8–7 вв. до н.э.) Гесиодом в поэме «Теогония». Хаос — «угрюмый и темный» Бог-Титан, олицетворяющий беспредельную, неоформленную субстанцию, из которой образовалось все существующее. В быту под этим словом обычно понимают полный беспорядок и непредсказуемость. Но приведенные трактования сильно расходятся с математическим пониманием хаоса, о котором пойдет речь далее. Так, в теории динамических систем вводится понятие детерминированного хаоса — явления, при котором поведение детерминистической нелинейной системы выглядит случайным из-за неустойчивости по отношению к начальным условиям. В массовой культуре чаще встречается другое название чувствительности к первоначальному состоянию — «эффект бабочки». С одной стороны, оно отсылает к рассказу Р. Брэдбери «И грянул гром» (1952 г.), где раздавленная бабочка в далёком прошлом кардинально меняет мир будущего. С другой, менее трагичной для чешуекрылой, стороны, этот термин ввел американский математик и метеоролог Эдвард Лоренц в статье 1972 года «Предсказание: Взмах крыльев бабочки в Бразилии вызовет торнадо в штате Техас».
Кроме того, Лоренц является автором классического примера хаотической динамической системы, изменившей представления о моделировании погодных явлений. Движение воздушных потоков в плоском слое упрощенно описывается системой дифференциальных уравнений:
При выполняются необходимые условия хаотической системы. Не вдаваясь в строгие математические определения, можно сказать, что динамическая система является хаотической, если все ее траектории ограничены, но быстро расходятся в каждой точке фазового пространства. Кроме выбора параметров для данной системы необходимо задать начальные условия, т.е. величины в момент времени 0. Именно эти значения будут той самой бабочкой, от взмаха крыльев которой сильно зависит решение дифференциальных уравнений.
«Хаос — это порядок, который нужно расшифровать»
Жозе Сарамаго «Двойник»
В процессе шифрования осуществляется обратимое преобразование информации с целью ограничения доступа к ней и сохранения ее целостности. Примечательно, что между криптографическими и хаотическими системами существует тесная связь [2]. Это легко заметить, если начальному состоянию хаотической системы сопоставить открытый текст криптосистемы, начальным условиям — ключ, конечному состоянию — шифротекст. Во-первых, в обоих случаях осуществляется нелинейное преобразование. Во-вторых, преобразование должно быть детерминировано, но непредсказуемо для наблюдателя. Кроме того, шифрование также требует высокую плотность и ограниченность состояний, чтобы покрыть все конечное количество возможных шифротекстов. Также в хорошей криптосистеме небольшие изменения открытого текста влекут за собой кардинальные изменения шифротекста. Таким образом, хаотические системы обладают большим потенциалом в криптографии.
Стоит отметить, что компьютерная криптография строится на дискретных системах, поэтому требуется преобразовывать вещественные выходные значения хаотической системы в двоичные по некоторому правилу. Также существуют системы бинарного хаоса, состояние которых сразу описываются двоичной последовательностью (например, клеточный автомат).
Фракталы
Просты в своем самоподобии и бесподобны в своей красоте. В 1975 году Бенуа Мандельброт ввёл термин «фрактал», описывая множество точек в евклидовом пространстве, имеющие дробную (фрактальную) размерность. Почему же этим привлекательным самоподобным фигурам, которые возникают при слове «фрактал», математики приписывают понятие дробной размерности? Для начала рассмотрим простой пример самоподобия с целой размерностью (рис. 1).
Деление отрезка прямой наравных частей порождаеткопией всего отрезка, уменьшенного в раз. Разбиение квадрата на равных частей порождает квадратов с площадью в раз меньшей площади исходного. Внимательный читатель уже догадался, что соотношение междуив случае куба имеет вид. Заметим, что размерность объектапоявляется как степеньв соотношении между числом его равных частейи коэффициентом подобия : . Именно это числооказывается дробным, если рассматриваемый объект является фракталом.
Один из классических примеров фрактальных множеств — снежинка Коха (рис. 2), придуманная Гельгом фон Кохом в 1904 году. Каждая треть снежинки (кривая Коха) строится итеративно, начиная с отрезка . Уберем среднюю треть и добавим два новых отрезка такой же длины, получим на рис. 2. Повторим процедуру многократно, на каждом шаге заменяя среднюю треть каждого отрезка двумя новыми. Можно показать, что последовательность таких кривых сходится к некоторой предельной кривой [4]. Причем, если взять копию , уменьшенную в три раза , то из таких копий можно составить все множество . Отсюда получаем отношение самоподобия и соответствующую ему дробную размерность .
Фрактальные размерности могут показывать эволюцию динамических систем. Так, контуры многих природных объектов представимы как динамические процессы, застывшие во времени. Например, после создания кривой Коха с ее помощью стали вычислять протяженность береговых линий. Теорию фракталов продолжают активно изучать, а развитие компьютерных технологий не только позволило визуализировать фрактальные множества, но и расширило область их применимости: природные объекты в компьютерной графике, вычислительные сети, алгоритмы сжатия, криптография [3].
Важной частью алгоритмов шифрования являются генераторы случайных чисел, которые могут быть основаны на природных процессах. Вместе с этим многие физические явления обладают фрактальными свойствами, что натолкнуло использовать фрактальные последовательности для генерации псевдослучайных чисел. Кроме того, свойство самоподобия означает простоту в задании таких последовательностей, например, итерационными функциями. Для описания функции достаточно малого набора параметров, но с помощью большого числа итераций можно получить большой выходной набор чисел. При этом вычисление аргумента по значению функции является задачей, по сложности близкой к полному перебору. С помощью фракталов также может быть повышена стойкость алгоритмов шифрования за счет генерации неограниченно длинных ключей. Еще одна область применения — визуальная криптография. Фрактальная последовательность может формировать матрицу, которая действует на пиксели по некоторому правилу, тем самым осуществляя шифрование изображения.
Хаотическое шифрование изображений
Несмотря на то, что применение теории хаоса и фракталов в криптографии изучается довольно давно, каждый год появляются новые алгоритмы, показывающие большую надежность и скорость. Рассмотрим один из новых методов шифрования изображения, предложенный в работе [1]. Хаотическое шифрование изображений в основном делится на два этапа: рассеяние и перестановку. Засекречивание происходит за счёт рассеяния, которое включает в себя изменение значения каждого пикселя определенным образом. Перестановка пикселей осуществляется, чтобы разрушить корреляцию, вызванную их взаимным положением.
Фрактальные сортировочные матрицы
Для реализации этапа перестановки авторы [1] разработали фрактальные сортировочные матрицы (ФСМ). Если матрица размера состоит из неповторяющихся целых чисел от до, то она называется сортировочной. Фрактальной такая матрица будет, если порядок ее элементов обладает самоподобием, и она может быть задана итерационной функцией. Чтобы окончательно запутаться, рассмотрим итерационную функцию, основанную на матрице 2-го порядка , состоящей из элементов 1, 2, 3 и 4. На первом шаге получим вспомогательную матрицу 4-го порядка , состоящую из четырех блоков , каждый из которых задается следующим образом.
Такая матрица будет содержать дробные значения, которые могут быть отсортированы в порядке возрастания. Далее, если вместо этих дробных значений поставить их номер в отсортированной последовательности, получится ФСМ:
Когда найдена матрица порядка , следующая ФСМ ищется так:
Теперь, чтобы распутаться, рассмотрим на рис. 3 несколько итераций для матрицы
После первой итерации получается ФСМ , верхний левый блок которой получен из синего элемента «4» матрицы, верхний правый из желтого элемента «2», нижний левый из розового элемента «1», нижний правый из зеленого элемента «3». Продолжая итерации, каждый блокв ФСМ получен из элемента соответствующего цвета в .
Хаотическое рассеяние пикселей
В качестве хаотической системы выбирается наиболее исследуемая модификация системы Лоренца (1), а именно, предложенная в 1999 году система Чена [5]:
Система Чена имеет сложную топологию и выполняет итерацию трех хаотических последовательностей .
Для улучшения эффекта рассеяния и безопасности алгоритма предлагается новый метод с двумя хаотическими последовательностями, одна из которых используется для генерации псевдослучайного значения от 0 до 255, а другая — для выбора пикселя, значение которого будет меняться. Если исходная матрицу, которую необходимо рассеять, а — матрица после рассеяния, то хаотическое рассеивание пикселей может быть выражено как
Здесь — операция XOR, — округление вверх, — взятие остатка от деления на ,— функция, которая сортирует одномерный массив в порядке возрастания и заменяет каждый элемент на его индекс в отсортированном массиве.
Алгоритм шифрования
Алгоритм подходит для изображений любых размеров и состоит из 5 шагов.
Прочитать пиксели изображения в матрицу , при необходимости дополнить ее до квадратной копией части изображения.
Сгенерировать 128-битный секретный ключ из матрицы (например, с помощью SHA-512). Разделить ключ на 4 группы по 32 бита и перевести их в десятичные числа по приведенной ниже формуле (4).
Получить хаотические последовательности длины из системы Чена (2). Для этого в качестве начальных условий использовать значения . При этом из последовательностей отбросить первые членов, чтобы брать значения сгенерированные системой, гарантированно вышедшей в хаотическое состояние.
Выбрать начальную матрицу и итеративно получить ФСМ необходимых размеров . Получить матрицу построчным укладыванием последовательности в матрицу . Перемешать матрицу при помощи матриц и . Перемешивание заключается в перестановке пикселей согласно номерам указанным в перестановочных матрицах и . Результат обозначим .
Изменить значения элементов с помощью хаотического рассеяния (3).
Таким образом, получено зашифрованное изображение в виде матрицы . Ключом является пара , которая используется как для шифрования, так и для дешифрования изображения. Принимающая засекреченную версию сторона может сгенерировать с помощью ключа те же последовательности и перестановочные матрицы. Кроме того, приведенные методы перемешивания и рассеяния являются обратимыми, поэтому алгоритм дешифрования представляет собой выполнение шагов 1–3, 5, 4 (операции на 5 и 4 шагах заменяются обратными).
В качестве примера, на рис. 4 приведен результат шифрования и дешифрования с помощью данного алгоритма. Выбрано классическое тестовое изображение — портрет шведской модели Лены Сёдерберг из журнала Playboy за ноябрь 1972 года.
Авторами алгоритма показано, что итеративный метод генерации ФСМ оказался весьма эффективным. Перемешивание имеет логарифмическую сложность по времени, а итоговая сложность алгоритма шифрования для изображения пикселей составляет .
Заключение
Мы рассмотрели такие понятия как хаотические динамические системы и фракталы. Оказалось, что они тесно связаны с шифрованием и могут стать основой современных криптографических систем. В чем мы и убедились на примере одного из новейших алгоритмов хаотического шифрования изображений с использованием фрактальных матриц.
Список литературы
Xian Y., Wang X. Fractal sorting matrix and its application on chaotic image encryption //Information Sciences. – 2021. – Т. 547. – С. 1154-1169.
Птицын Н. Приложение теории детерминированного хаоса в криптографии //М.: МГТУ. – 2002.
Кулешов С. В. и др. Фрактальное шифрование //Труды СПИИРАН. – 2004. – Т. 2. – №. 1. – С. 231-235.
Кроновер Р. М. Фракталы и хаос: в динамических системах. Основы теории. – М. : Постмаркет, 2000. – С. 352.
Chen G., Ueta T. Yet another chaotic attractor //International Journal of Bifurcation and chaos. – 1999. – Т. 9. – №. 07. – С. 1465–1466.
Комментарии (7)
belch84
28.11.2021 11:22+4Алгоритм можно видоизменить (усложнить), используя различные параметры в системе Чена, нужно только подбирать параметры так, чтобы система оставалась хаотической Хаотической подобная система является в случае, когда она обладает положительным показателем Ляпунова. Эти показатели можно вычислять численно. Вот график зависимости показателей Ляпунова для системы Чена от параметра (того, который равен 35 в системе из публикации), а также графики соответствующих этому параметру решений
Система Чена с параметромСистема является хаотической, когда её наибольший показатель Ляпунова (зеленый график) положителен. При значении параметра c1 = 35 поведение хаотическое, если c1 = 31 — система стремится к предельному циклу, т.е. её поведение становится периодическим
iUser
Т.е. для каждого зашифрованного изображения предполагается свой уникальный секретный ключ K, который нужно секретно и безопасно передавать принимаюшей стороне каждый раз при пересылке каждого зашифрованого изображения.
Если алгоритм шифрования требует наличия регулярного секретного и безопасного канала связи, то это бесполезный алгоритм. Респонденты могут использовать такой канал напрямую, без шифрования.
ChemrovKirill Автор
Верное замечание, спасибо! В рамках данного метода шифрования не описываются требования на процесс передачи секретного ключа, а способ его генерации приведен скорее в качестве примера, для однозначного определения алгоритма. Если задумываться о внедрении метода в системы связи, то нужно позаботиться о подходящем способе генерации и передачи ключа. Метод не требует регулярного надежного канала, так как для шифрования множества изображений может быть использован один ключ, сгенерированный из первого изображения или иным способом.
Aosd
Ключ может быть передан вместе с зашифрованным сообщением, т.к. сам чёрт сломит голову, как мы используем его для расшифровки. А используем мы "псевдохаос".
unsignedchar
Принято считать, что алгоритм расшифровки уже всем известен.
ChemrovKirill Автор
С интуитивной точки зрения, наверное, Вы правы. Но криптоанализ подразумевает поиск атак со знанием всего алгоритма шифрования. Это логично и с практической точки зрения. Полезным алгоритм будет, если он может быть имплементирован в большое количество устройств по единому протоколу. Засекречивать информацию неразумно, она должны быть доступа для производителей. Надеется на то, что злоумышленник не знает, каким именно алгоритмом Вы пользуетесь, тоже не стоит, так как устройства связи должны договориться об этом по открытому каналу.