Skip to content

Кодирование информации псевдослучайными последовательностями чисел

lena95 edited this page Apr 27, 2016 · 1 revision

Рассматривается новый способ шифрования информации, основанный на хаотическом изменении цвета символов, формирующих изображение. С помощью псевдослучайных генераторов можно получать довольно стойкие криптосистемы, если осуществлять изменение цвета элементов, формирующих изображение. При этом в качестве генераторов псевдослучайных сигналов, как представляется, весьма подходят генераторы с хаотической динамикой, и особенно искусственно сконструированные. Они предпочтительнее тем, что хаос, описываемый их уравнениями (при относительной простоте записи) может быть более развитым. Использование хаотических решений рассмотренного отображения позволяет создать достаточно сложный шифр, который не поддается раскрытию, если не воспроизведены точные значения начальных условий и параметров динамической системы, при которых выполнялось ее решение.

Преобразование графической матрицы осуществляется путем присвоения каждому символу, формирующему изображение, нового цвета в соответствии не только с хаотическими решениями рассматриваемого отображения, но и с его исходной палитрой цвета. В этом случае выполняется условие, при котором индекс нового цвета пикселя равен исходному индексу цвета пикселя плюс дополнительный индекс цвета пикселя, определяемый решением хаотического отображения. При этом каждый символ графической матрицы последовательно преобразуется в одном и том же стековом блоке памяти. При дешифровании используется аналогичный алгоритм преобразований. Отличие заключается лишь в том, что при формировании палитры цвета осуществляется вычитание псевдослучайной последовательности чисел, формируемых на основе решений тех уравнений, которые использовались при шифровании.

Таким образом, алгоритм шифрования графического объекта будет состоять из следующих шагов:

  • Сопоставление пикселю графического изображения трех координат r, g, b (эти числа составляют RGB-код пикселя);
  • Задание начальных условий (параметров) динамической системы;
  • На основе решения нелинейного отображения с хаотической динамикой – генерация последовательности значений псевдослучайных чисел h;
  • Определение индексов нового цвета пикселя
  • Получение нового (абсолютно другого) цвета пикселя;
  • Выполнение шагов 1-5 для всех элементов многоцветной матрицы.

Как уже говорилось выше, для дешифрования используется аналогичный алгоритм преобразований:

  • Получение трех координат r’, g’, b’ пикселя зашифрованного графического изображения;
  • Задание начальных условий (параметров) динамической системы;
  • Восстановление последовательности значений псевдослучайных чисел h по известным значениям управляющих параметров;
  • Восстановление значений индексов первоначального цвета пикселя
  • Формирование RGB-код пикселя, т.е. восстановление его первоначального цвета;
  • Выполнение шагов 1-5 для всех элементов многоцветной матрицы.

При шифровании с помощью последовательности псевдослучайных чисел, использование изменения цвета пикселов, формирующих изображение, позволяет обеспечить его надежную маскировку. Учитывая устойчивость шифра, информацию, зашифрованную рассмотренным способом можно передавать по открытым сетевым каналам, в том числе и по электронной почте, а также хранить в архивах со свободным доступом.

В заключение нужно отметить, что надежность данного алгоритма шифрования в большей степени зависит от характеристик применяемого метода генерации псевдослучайных чисел, т.к. на одном из начальных этапов шифрования мы вносим изменения в псевдослучайную числовую последовательность.

Разработка

  1. Стили кодирования
  • [Java](Код стайл для языка Java)
  • [C/C++](Стиль написания кода на С )
  • [C#](Стиль написания кода на С# )
  • [Swift](Руководство по оформлению кода на языке Swift )
  • Написание комментариев к коммитам
  1. Android
  • Android DevGuide
  • [QR codes](Работа c QR на Android)
  • [Полезные вещи](Полезные вещи для Android разработки)
  • [Архитектура приложения](Архитектура приложения)
  • [Используемые компоненты](Используемые компоненты)
  • [Инструкция по сборке проекта](Инструкция по сборке проекта)
  1. iOS
  1. C и C++
  • [Использование CMake для проектов на C++ и C ](Использование CMake для проектов на C и CPP)

Описание

  1. Форматы файлов
  • [.bmp](Cтруктура хранения bmp файлов)
  • [.jpg](Cтруктура хранения jpg файлов)
  • [.png](Cтруктура хранения png файлов)
  1. Алгоритмы шифрования
  1. Примеры использования
  • [Библиотека матричной алгебры](Пример использования библиотеки матричной алгебры)
  1. Описание процесса кодирования файла
  2. Способ обезопасить использование приложения
  3. Java фасад библиотеки алгоритмов
  4. Алгоритм шифрования bmp на java заглушке

Тест-кейсы

  1. Матричная арифметика
  • [A+B](Сложение матриц)
  • [A*p](Умножение матрицы на скаляр)
  • [A*B](Умножение матриц)
  • [Обратные матрицы](Нахождение обратной матрицы)
  1. Взятие по модулю
  • [A mod p](Взятие матрицы по модулю простого числа)
  • [A mod P](Взятие матрицы по модулю - матрицы из простых чисел)
  1. Суперпозиция (модуль - простое число)
  • [A+B mod p](Сложение матриц по модулю простого числа)
  • [A*c mod p](Умножение матрицы на скаляр по модулю простого числа)
  • [A*B mod p](Умножение матриц по модулю простого числа)
  1. Суперпозиция (модуль - матрицы из простых чисел)
  • [A+B mod P](Сложение матриц по модулю - матрице простых чисел)
  • [A*c mod P](Умножение матрицы на скаляр по модулю - матрице простых чисел)
  • [A*B mod P](Умножение матриц по модулю - матрице простых чисел)

##Прочее

  1. [Утечки памяти](Memory Leaks)
  2. [Базовые цвета](Базовые цвета)
  3. [Clean Architecture](Clean Architecture)
Clone this wiki locally