-
Notifications
You must be signed in to change notification settings - Fork 5
Кодирование информации псевдослучайными последовательностями чисел
Рассматривается новый способ шифрования информации, основанный на хаотическом изменении цвета символов, формирующих изображение. С помощью псевдослучайных генераторов можно получать довольно стойкие криптосистемы, если осуществлять изменение цвета элементов, формирующих изображение. При этом в качестве генераторов псевдослучайных сигналов, как представляется, весьма подходят генераторы с хаотической динамикой, и особенно искусственно сконструированные. Они предпочтительнее тем, что хаос, описываемый их уравнениями (при относительной простоте записи) может быть более развитым. Использование хаотических решений рассмотренного отображения позволяет создать достаточно сложный шифр, который не поддается раскрытию, если не воспроизведены точные значения начальных условий и параметров динамической системы, при которых выполнялось ее решение.
Преобразование графической матрицы осуществляется путем присвоения каждому символу, формирующему изображение, нового цвета в соответствии не только с хаотическими решениями рассматриваемого отображения, но и с его исходной палитрой цвета. В этом случае выполняется условие, при котором индекс нового цвета пикселя равен исходному индексу цвета пикселя плюс дополнительный индекс цвета пикселя, определяемый решением хаотического отображения. При этом каждый символ графической матрицы последовательно преобразуется в одном и том же стековом блоке памяти. При дешифровании используется аналогичный алгоритм преобразований. Отличие заключается лишь в том, что при формировании палитры цвета осуществляется вычитание псевдослучайной последовательности чисел, формируемых на основе решений тех уравнений, которые использовались при шифровании.
Таким образом, алгоритм шифрования графического объекта будет состоять из следующих шагов:
- Сопоставление пикселю графического изображения трех координат r, g, b (эти числа составляют RGB-код пикселя);
- Задание начальных условий (параметров) динамической системы;
- На основе решения нелинейного отображения с хаотической динамикой – генерация последовательности значений псевдослучайных чисел h;
- Определение индексов нового цвета пикселя
- Получение нового (абсолютно другого) цвета пикселя;
- Выполнение шагов 1-5 для всех элементов многоцветной матрицы.
Как уже говорилось выше, для дешифрования используется аналогичный алгоритм преобразований:
- Получение трех координат r’, g’, b’ пикселя зашифрованного графического изображения;
- Задание начальных условий (параметров) динамической системы;
- Восстановление последовательности значений псевдослучайных чисел h по известным значениям управляющих параметров;
- Восстановление значений индексов первоначального цвета пикселя
- Формирование RGB-код пикселя, т.е. восстановление его первоначального цвета;
- Выполнение шагов 1-5 для всех элементов многоцветной матрицы.
При шифровании с помощью последовательности псевдослучайных чисел, использование изменения цвета пикселов, формирующих изображение, позволяет обеспечить его надежную маскировку. Учитывая устойчивость шифра, информацию, зашифрованную рассмотренным способом можно передавать по открытым сетевым каналам, в том числе и по электронной почте, а также хранить в архивах со свободным доступом.
В заключение нужно отметить, что надежность данного алгоритма шифрования в большей степени зависит от характеристик применяемого метода генерации псевдослучайных чисел, т.к. на одном из начальных этапов шифрования мы вносим изменения в псевдослучайную числовую последовательность.
- Стили кодирования
- [Java](Код стайл для языка Java)
- [C/C++](Стиль написания кода на С )
- [C#](Стиль написания кода на С# )
- [Swift](Руководство по оформлению кода на языке Swift )
- Написание комментариев к коммитам
- Android
- Android DevGuide
- [QR codes](Работа c QR на Android)
- [Полезные вещи](Полезные вещи для Android разработки)
- [Архитектура приложения](Архитектура приложения)
- [Используемые компоненты](Используемые компоненты)
- [Инструкция по сборке проекта](Инструкция по сборке проекта)
- iOS
- [Код на C++ под iOS](Использование кода и библиотек cpp при создании приложений на языке Swift)
- Стилевые таблицы NSS
- Структура проекта в Xcode
- Clean Architecture
- C и C++
- [Использование CMake для проектов на C++ и C ](Использование CMake для проектов на C и CPP)
- Форматы файлов
- [.bmp](Cтруктура хранения bmp файлов)
- [.jpg](Cтруктура хранения jpg файлов)
- [.png](Cтруктура хранения png файлов)
- Алгоритмы шифрования
- Кодирование информации псевдослучайными последовательностями чисел
- Визуальная криптография
- Схема разделения секретной визуальной информации
- Шифрование RGB изображения с помощью Фурье образа
- RSA-шифрование .bmp файлов
- Примеры использования
- [Библиотека матричной алгебры](Пример использования библиотеки матричной алгебры)
- Описание процесса кодирования файла
- Способ обезопасить использование приложения
- Java фасад библиотеки алгоритмов
- Алгоритм шифрования bmp на java заглушке
- Матричная арифметика
- [A+B](Сложение матриц)
- [A*p](Умножение матрицы на скаляр)
- [A*B](Умножение матриц)
- [Обратные матрицы](Нахождение обратной матрицы)
- Взятие по модулю
- [A
mod
p](Взятие матрицы по модулю простого числа) - [A
mod
P](Взятие матрицы по модулю - матрицы из простых чисел)
- Суперпозиция (модуль - простое число)
- [A+B
mod
p](Сложение матриц по модулю простого числа) - [A*c
mod
p](Умножение матрицы на скаляр по модулю простого числа) - [A*B
mod
p](Умножение матриц по модулю простого числа)
- Суперпозиция (модуль - матрицы из простых чисел)
- [A+B
mod
P](Сложение матриц по модулю - матрице простых чисел) - [A*c
mod
P](Умножение матрицы на скаляр по модулю - матрице простых чисел) - [A*B
mod
P](Умножение матриц по модулю - матрице простых чисел)
##Прочее
- [Утечки памяти](Memory Leaks)
- [Базовые цвета](Базовые цвета)
- [Clean Architecture](Clean Architecture)