Научная статья на тему 'ЦВЕТНАЯ ВИЗУАЛЬНАЯ КРИПТОГРАФИЯ'

ЦВЕТНАЯ ВИЗУАЛЬНАЯ КРИПТОГРАФИЯ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
91
7
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ВИЗУАЛЬНАЯ КРИПТОГРАФИЯ / ТЕНЕВЫЕ ИЗОБРАЖЕНИЯ / БИБЛИОТЕКА ЦВЕТНОЙ ВИЗУАЛЬНОЙ КРИПТОГРАФИИ / ШИФРОВАНИЕ / ПРИЛОЖЕНИЕ С ГРАФИЧЕСКИМ ИНТЕРФЕЙСОМ ПОЛЬЗОВАТЕЛЯ / VISUAL CRYPTOGRAPHY / SHADOW IMAGES / A LIBRARY OF COLOR VISUAL CRYPTOGRAPHY / ENCRYPTION / AN APPLICATION WITH A GRAPHICAL USER INTERFACE

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Ханин В.В.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

COLOR VISUAL CRYPTOGRAPHY

The study of the features of color visual cryptography, the development of a library of functions of color visual cryptography, as well as an application that implements the main areas of application of visual cryptography, prompted me to share with readers information on this topic: a description of the purposes of applying visual cryptography and the algorithm of color visual cryptography. An experiment was also carried out, with the help of which it was possible to reveal the productivity of the method of color visual cryptography.

Текст научной работы на тему «ЦВЕТНАЯ ВИЗУАЛЬНАЯ КРИПТОГРАФИЯ»

Беспалов, В.А. Шкаберин, Ю.М. Казаков, А.Е. Симуни, М.В. Терехов; под общ. ред. В.И. Аверченкова, А.В. Аверченкова - Брянск: БГТУ, 2009. - 180 с.

УДК 004.056.53

Ханин В.В. студент 5 курса Институт компьютерных технологий и информационной безопасности Южный федеральный университет научный руководитель: Пескова О.Ю., доктор технических наук

доцент

кафедра «Безопасность информационных технологий»

Российская Федерация, г. Таганрог ЦВЕТНАЯ ВИЗУАЛЬНАЯ КРИПТОГРАФИЯ

Аннотация:

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

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

Khanin V. V.

Student of the 5th year Institute of Computer Technologies and

information security South Federal University Taganrog, Russian Federation Scientific adviser: Peskova O. Y.

Doctor of technical sciences associate professor of the department "Information technology security" COLOR VISUAL CRYPTOGRAPHY

Summary:

The study of the features of color visual cryptography, the development of a library of functions of color visual cryptography, as well as an application that implements the main areas of application of visual cryptography, prompted me to share with readers information on this topic: a description of the purposes of applying visual cryptography and the algorithm of color visual cryptography. An

experiment was also carried out, with the help of which it was possible to reveal the productivity of the method of color visual cryptography.

Key words: visual cryptography, shadow images, a library of color visual cryptography, encryption, an application with a graphical user interface.

С появлением компьютерной техники возникла необходимость защиты информации от несанкционированного ее использования, опасности утраты или порчи, поскольку от надежной работы компьютерных систем и прикладных программ зависит деятельность огромного количества людей, трудящихся в самых разных сферах приложения компьютерных технологий. Возникновение и глобальное распространение общедоступных компьютерных сетей поставило новые задачи перед разработчиками средств обеспечения защиты информации и оказало определяющее влияние на всю сферу обеспечения информационной безопасности. Задача защиты информации от несанкционированного доступа решалась на протяжении истории человечества. Проблема защиты информации путем ее преобразования, исключающего ее прочтение посторонним лицом, волновала человеческий ум с давних времен. Уже в древнем мире выделилось два основных направления решения этой задачи, существующие и по сегодняшний день: криптография и стеганография. Целью криптографии является скрытие содержимого сообщений за счет их шифрования. В отличие от этого при стеганографии скрывается сам факт существования тайного сообщения. Вопрос о применимости криптографических методов защиты информации решается в зависимости от выявленных угроз, технических характеристик защищаемого объекта. Мы обратимся к методу шифрования графической информации, а именно визуальной криптографии, техника шифрования которой позволяет зашифровать визуальную информацию (картинки, тексты и прочее) таким способом, что расшифровка становится механической операцией, не требующей обязательного использования компьютера. Декодирование в данном случае может осуществляться с помощью зрительной системой человека, но в моей статье будет представлена программная реализация данного метода [1].

Понятие и определения

Визуальная криптография — один из криптографических методов, который позволяет зашифровать визуальную информацию (картинку, текст и т. д.) таким образом, что дешифрование становится механической операцией, не требующей обязательного использования компьютера. Основная идея визуальной криптографии состоит в разбиении исходного изображения на несколько шифрованных («теневых» изображений, shadow images), каждое из которых не дает никакой информации об исходном изображении кроме, может быть, его размера. При наложении шифрованных изображений друг на друга, можно получить исходное изображение. Таким образом, для декодирования не требуется специальных знаний,

высокопроизводительных вычислений и даже компьютера (в случае, если распечатать «теневые» изображения на прозрачных пленках). В случае использования этого алгоритма в компьютерных системах, наложить все части изображения друг на друга можно используя логические операции AND, OR, XOR (или установив более высокую степень прозрачности в графическом редакторе). Данная технология обладает криптоустойчивостью за счет того, что при разделении исходного изображения на множество шифроизображений происходит случайным образом [2].

Алгоритмы визуального шифрования обладают рядом следующих свойств:

- регулярность (производятся одинаковые действия для каждого исходного пикселя);

- независимость (каждый исходный пиксель шифруется независимо от других);

- простота (возможно визуальное расшифрование посредством физического процесса наложения шумоподобных изображений без вычислений) [3].

Протокол передачи информации с использованием визуальной криптографии может быть реализован в следующей форме:

1. Алиса выбирает надежную симметричную криптографическую систему передачи информации;

2. Алиса генерирует случайный сеансовый ключ K, при помощи которого будет осуществляться связь с Бобом посредство выбранной криптосистемы;

3. Алиса создает новую подложку, состоящую из случайного набора пикселей на основе подложки Боба таким образом, чтобы при совмещении этих изображений Боб смог прочесть сгенерированный Алисой сеансовый ключ K;

4. Алиса передаёт сгенерированную для Боба подложку вместе с сообщением о том, какую криптосистему они будут использовать для связи;

5. Боб, получив подложку с ключом от Алисы, совмещает её со своей подложкой и получает сеансовый ключ K;

6. Алиса и Боб используют выбранную Алисой криптографическую систему передачи информации для безопасной передачи сообщений;

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

Рисунок 1 - Схематическое представление протокола передачи Благодаря тому, что исходная подложка, используемая собеседниками для передачи ключа, создана случайным образом, использовать её можно неограниченное число раз, поскольку потенциальный взломщик может сгенерировать бесконечное число подложек, при совмещении которых с перехваченной он будет получать разные ин формационные сообщения, и узнать какое именно из них верное, он не сможет [4].

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

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

- Шифрование ключевой информации (управление ключами доступа,

например, для обмена ключами симметричной криптографии, и совместное использование паролей). Этот вариант является более предпочтительным, поскольку малый объем скрываемой информации нивелирует основной недостаток визуальной криптографии - ресурсоемкость и низкая скорость работы [4].

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

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

Метод цветной визуальной криптографии

В качестве входных изображений используются 24-разрядные Ьйтар-рисунки, в которых на каждый цвет приходится по 8 бит информации. Данные шифруют по методу LSB. Суть алгоритма заключается в том, что секретное изображение разбивается на три цветовых примитива (то есть на оттенки красного, зеленого и синего), а затем каждый примитив записывается в младшие биты одного из изображений-контейнеров. Таким образом после зашифровки каждый контейнер будет содержать в себе одну цветовую составляющую секретного изображения.

Чтобы определить, в какое из изображений прятать R-составляющую, в какое — G, а в какое — В, перед запуском алгоритма определяется количественное значение каждого из трех оттенков в каждом изображении-контейнере. Далее контейнеры выбираются таким образом, чтобы разница в цветах контейнера и цветового примитива секретного изображения была минимальна.

Далее из каждого цветового примитива берется два старших бита и записывается в младшие биты соответствующего цвета у соответствующего контейнера. Два младших бита в двух оставшихся цветах обнуляются. Операция повторяется для каждого пикселя.

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

будет иметь только одна цветовая составляющая в каждом контейнере). Таким образом мы восстановим цвет соответствующего пикселя секретного изображения (с некоторой погрешностью). Далее повторим эту операция для всех пикселей и получим восстановленное секретное изображение.

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

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

Примеры работы, показывающие как, изменяется качество изображений-контейнеров, показаны на рисунках 2-5:

[7].

Рисунок 2 - Исходное изображение

Рисунок 3 - Искажение цветов с использованием 2 бит изображения-

контейнера

Рисунок 4 - Искажение цветов с использованием 4 бит изображения-

контейнера

Рисунок 5 - Искажение цветов с использованием 6 бит изображения-

контейнера.

Метод визуальной стеганографии

Исследователи Feng Liu и ChuanKun Wu из государственной лаборатории информационной безопасности института программного обеспечения Китайской Академии Наук, Пекин, рассмотрели существующие и предложили улучшенные средства визуальной криптографии и стеганографии в своей работе "Embedded Extended Visual Cryptography Schemes".

Так как визуальная криптография не может скрыть факт получения подозрительного шумового графического сообщения, то более интересным направлением является визуальная стеганография (совмещение изображений, не вызывающих подозрений) и визуальное разделение секрета (когда для расшифровки изображения "на просвет" нужно совместить несколько изображений, например, три, или любые два из трёх).

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

Таким образом, используя специально подготовленные на компьютере изображения с внедрённым текстом, получатель, также имеющий ключевое изображение в виде распечатанной картинки, может получить сообщение от

отправителя и прочитать его совмещением листов бумаги на просвет, без использования криптографического или стеганографического ПО [8].

Мой метод цветной визуальной криптографии

Изучив метод LSB и метод стеганографии, я решил создать свой метод. Мой метод использует деление изображения на цветовые примитивы по методу LSB, то есть деление на три канала RGB, но не использует изображения-контейнеры. Вместо этого при шифровании из исходного изображения генерируется массив с индексами (у каждого пикселя свой индекс), маски каналов и значение интенсивности цветов для каждого канала. Каждый индекс кодируется и объединяется в массив с значением интенсивности, маской канала, истинным размером изображения и затем перемешивается.

Так как я не использую, изображения-контейнеры «теневые изображения» будут создаваться. Создать можно любое количество «теневых изображений», но так как разрешение «теневых изображений» напрямую зависит от их количества в данном методе, я создаю десять «теневых изображений».

Перемешанный массив равномерно распределяется на десять «теневых изображений». Чтобы довести «теневые изображения» до нужных габаритов, вычисляется размер изображения и генерируется шум, если не получается довести изображения до вычисленного размера. И каждое изображение сохраняется в директорию, согласно вичисленным габаритам.

Дешифрование подобно симметричным шифрам, в нашем случае ключом выступает закодированный индекс.

Если из шифрованных изображений удалить некоторое количество штук, то восстановленное изображение будет иметь шум равный %шума = 100 - (Всего Изображений - Изображений удалено) /Всего Изображений * 100.

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

Данный метод в отличие от метода LSB не теряет в качестве, также можно использовать неограниченное количество «теневых изображений», как в методе стеганографии. Но он проигрывает тому же методу стеганографии в том, что заметен сам факт передачи «теневых изображений». Также имеется минус в том. Что для расшифровки достаточно одного «теневого изображения». Но данный минус можно

исправить добавлением пароля.

На основе моего метода было создана библиотека на языке программирования Python, описание и блок-схема которой представлена в следующем разделе.

Описание библиотеки цветной визуальной криптографии

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

Сначала запускается функция сохранения пароля, которая получает от пользователя строку пароля и сохраняет ее.

Для того чтобы воспользоваться функцией шифрования, необходимо при ее вызове задать путь к изображению. В начале работы функции создается массив из изображения, и выполняется процедура проверки правильности введенных входных параметров. Затем создается массив индексов пикселей. После чего выполнится функция хеширования введенного пароля. Далее запускается функция приведения индекса пикселей, которая запоминает каждый пиксель в виде координат изображения (x, y) и запускает функцию, которая представляет индексы как равные массивы 0-255, таким образом, чтобы привести любой, даже самый большой индекс к виду, который можно будет записать в ячейку длиной uint8 и возвращает новое представление индексов. После чего создаются три массива по цветовым каналам RGB. С параметрами: интенсивность, обработанный индекс, указатель маски R, G, B = [1,2,3]. И запускается функция перемешивания массивов внутри себя, которая используя случайное значение инициализации, перемешивает массивы. Дальше перемешенные массивы соединяются в один массив и еще раз перемешиваются. После этого вычисляется наименьшее количество изображений не меньше десяти (для того чтобы создать 10 теневых изображений). Далее идет проверка наличия директории, и, если ее нет она создается. Массив делится на равные десять частей и вызывается функция приведения строки к четному значению для каждого массива и размера изображения. Результат каждого массива оъединяется массив, состоящий из хешированного пароля, размера изображения, и массива с пикселями и закодированного индекса. После вычисляется размер изображения и генерируется шум, чтобы довести изображение до нужных габаритов. И каждое изображение сохраняется в директорию, согласно вичисленным габаритам.

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

задан в определении функции, коим является директория, в которой находятся «теневые изображения». Итак, сначала происходит процедура проверки нахождения «теневых изображений» в директории. После чего выполнится функция хеширования введенного пароля. Затем для каждого изображения из директории происходит считывание. Каждое изображение преобразуется в линейный массив. И запускается функция декодирования каждого изображения в правильный формат, в которой считываются данные о пароле и исходном размере изображения. Тут идет проверка на правильность введенного пароля. В процессе считывания запускается функция дешифровки цифровых значений, которая дешифрует и возвращает количество пикселей и правильный размер изображения. После этого функция декодирования изображения в правильный формат возвращает словарь из значений текущего размера изображения, правильного и количества пикселей. Происходит проверка линейного массива каждого изображения на правильность формата. Из массива выбираются элементы и создается новый общий массив. Выделяется канал действительных цветов. Создается массив индексов для обратного трансформирования и массив с масками каналов. Запускается функция возвращения индексов в нормальную форму, которая приводит массив к размеру согласно данным о длине закодированного индекса и возвращает нормальный индекс в цифровом значении. Дальше общий массив разбивается на каждый цветовой канал, то есть массив по маске цвета делится на три массива. Запускается функция восстановления индекса для каждого массива. Там, где были пустоты от удаленных изображений, теперь есть значения (интенсивность = 0) и индекс непрерывен. Полученные массивы каналов сортируются по значению индекса. Затем массивы соединяются в один и выполняется процедура сохранения декодированного изображения.

Блок-схема библиотеки продемонстрирована на рисунке 6.

"^Гнет

Да

^^^сть директория^^>

^рНет

Создание директории

—► Функция хеширования

пароля

Функция приведения индекса

Функция генерации нового представления индекса

Функция перемешивания

Функция приведения строки к четному значению

Сохранение теневых изображений в директории

С

Функция декодирования теневых изображений

Г

Функция дешифровки цифровых значений

Функция декодирования индекса

Функция восстановления

индекса +

Сохранение дешифрованного изображения

Конец

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

>

Рисунок 6 - Блок-схема библиотеки цветной визуальной

криптографии.

Производительность метода

После того как была создана библиотека, реализующая мой метод, с её помощью были проведены эксперименты по быстродействия и надежности, которые показали следующие результаты:

- от количества «теневых изображений» будет зависеть и качество дешифрованного изображения. Чем меньше будет «теневых изображений», тем темнее будет дешифрованное изображение и меньшее количество пикселей будет восстановлено.

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

График производительности метода цветной визуальной криптографии представлен на рисунке 7.

Рисунок 7 - График производительности метода цветной визуальной

криптографии. Использованные источники:

1. Грибунин В. Г., Оков И. Н., Туринцев И. В. Цифровая стеганография. [Электронный ресурс]. -

URL: http ://www.universalinternetlibrary.ru/book/35626/ogl.shtml_(дата

обращения: 10.02.2018).

2. Визуальная криптография. // Википедия. [Электронный ресурс]. - URL: https://m.wikipedia.org/wiki/Визуальная_криптография (дата обращения: 21.01.2018).

3. Визуальная криптография. // CryptoWiki. [Электронный ресурс]. -URL: http://cryptowiki.net/index.php?title=Визуальная_криптография

(дата обращения: 21.01.2018).

4. Лебеденко А.В., Смычков Е.Е., Шилин В.В. Усовершенствование протоколов передачи данных за счет применения визуальной криптографии. [Электронный ресурс]. -

URL: https://elibrary.ru/item.asp?id=23589640 (дата обращения: 05.02.2018).

5. Способ тайного голосования избирательными бюллетенями [Электронный ресурс]. -

URL: http ://www.findpatent.ru/patent/215/2153192.html (дата обращения: 17.02.2018).

6. Визуальная криптография для цветных изображений. // Хабрахабр. [Электронный ресурс] URL: https://habrahabr.ru/post/121878/ (дата обращения: 25.01.2018).

7. Прячем текст в Bitmap. // Хабрахабр. [Электронный ресурс] URL: https://habrahabr.ru/post/115673/ (дата обращения: 05.02.2018).

8. От визуальной криптографии к визуальной стеганографии и разделению секрета [Электронный ресурс]. - URL: https ://clck.ru/EMYpJ/ (дата обращения: 10.02.2018).

i Надоели баннеры? Вы всегда можете отключить рекламу.