ОБРАБОТКА ИЗОБРАЖЕНИЙ
СХЕМА РАЗДЕЛЕНИЯ СЕКРЕТА НА ОСНОВЕ МЕТРИЧЕСКИХ ХАРАКТЕРИСТИК ДАННЫХ ДЛЯ ЗАЩИЩЕННОЙ ПЕРЕДАЧИ ВИДЕОПОТОКОВ
А.А. Свенч, Р. Т. Файзуллин Омский Государственный Университет им. Ф.М. Достоевского
Аннотация
Предлагается схема разделения секрета, использующая представление данных в виде и-мерного объекта и переход к его метрическим характеристикам. Рассматривается возможность применения и оптимизация данного алгоритма для защищенной передачи видеоданных. Описывается создание системы фильтров обработки видеоданных для защищенной передачи по сети Internet.
Введение
На сегодняшний день защищенная передача видеоинформации по вычислительной сети является востребованной задачей. Необходимость в такой защите возникает при передаче конфиденциальной информации, организации видеоконференций, организации платной трансляции видео. Для осуществления защищенной передачи необходимо создать механизм, учитывающий большой объем защищаемых данных (видеоролики высокого качества), однородность передаваемых данных и необходимость потоковой обработки данных в реальном времени.
Одним из путей решения этой проблемы является использование криптографических методов защиты, но у них есть ряд недостатков при передаче видеоданных. Во-первых, программная реализация хороших криптографических алгоритмов, таких, как RSA, AES, DES недостаточно быстро обрабатывает большие объемы данных, что делает невозможным обработку потока видео в реальном времени. Во-вторых, однородный характер передаваемых данных (к примеру, соседние кадры видео) дает почву для применения злоумышленником различных методов криптографического анализа.
Другим, более подходящим подходом, является применение схемы разделения секрета [3] для передачи видео. В отличие от криптографических методов, здесь не требуется проведение трудоемких вычислений и применения раундов шифрования. Кроме того, при передаче информации по нескольким маршрутам вычислительной сети с динамической маршрутизацией будет минимизирован риск перехвата злоумышленником достаточного количества данных для восстановления исходного видео [1].
Предлагается построение механизма защиты передачи видеоданных, основывающегося на схеме разделении секрета. Характерной особенностью схемы является использование геометрического объекта, формируемого на основе RGB-представления видеоданных.
Переход к геометрическому описанию данных
Для реализации схемы потребуется переход к геометрическому объекту, содержащему секрет. Для
этого будет осуществляться побайтовое преобразование блока обрабатываемых данных Е к точкам в п-мерном пространстве [2]. Для этого потребуется, чтобы общий размер защищаемого блока информации в байтах М был кратен п. Если это не выполняется, то необходимо осуществить выравнивание по п байтам с помощью стандартной процедуры выравнивания, подобно тому, как это приводится в алгоритме вычисления хэш-кода МЭ5.
Будем считать, что М кратно п .
Преобразуем секрет Е = / /2.../М , где / - байты Е, следующим образом: разбиваем Е на блоки по п байт, каждый такой блок будет являться точкой в п-мерном пространстве:
' А =( /г, /2,., /п )
А2 = ((п+1, /п +2 ,. ' ', /2п )
Ак = (((к-1)п+1, /(к-1)п+ 2 ,. ' ', /кп )
Полученные точки А, есть вершины искомого геометрического объекта.
Построение частей секрета по рассматриваемой схеме будет производиться на основе метрических характеристик исходного геометрического объекта. Для описания формата получаемых частей секрета понадобится понятие используемой метрики. В нашем случае это будет евклидово расстояние в п-мерном пространстве, которое для двух точек А, = (ал,..., а,п), А] = (ап,..., ап) вычисляется как
Р(А, AJ) = , £ (а,к - а#)2 (1)
V к=1
Исходя из этого, частями секрета для данной схемы будут являться наборы значений метрик р(А1, ),
которые можно представить в виде непрерывного массива байт.
Следует отметить, что с точки зрения машинных вычислений, для данной схемы более удачными будут не сами евклидовы метрики, а их квадраты. Это уменьшит трудоемкость схемы, т.к. избавит от тру-
доемкой операции извлечения квадратного корня. К тому же, евклидовы метрики, в общем случае, являются иррациональными числами с плавающей точкой, которые требуют больше памяти для хранения, нежели целочисленные данные. Так как координатами исходного объекта являются числа байтового типа, занимающие в памяти 8 бит, то квадрат разности двух координат будет умещаться в 16 бит, а сумма п таких квадратов - в 16 + |~1о§2 п] бит, т.е.
не более 3 байт для п < 256 . Для хранения же самих метрик нужно использовать типы данных с плавающей точкой, для хранения которых необходимо не менее 4 байт.
Исходя из приведенных выше рассуждений, можно оценить, насколько увеличится количество информации при переходе от вершинного описания геометрического объекта к списку метрик. Ниже будет показано, что для такого перехода понадобится п метрик для каждой вершины, которая в свою очередь определяет п целочисленных координат. Таким образом, количество метрик, необходимых для описания геометрического объекта в п-мерном пространстве, совпадает с количеством координат объекта, т.е. с размером секрета в байтах. Следовательно, отношение объема информации, необходимого для хранения метрик, к размеру секрета определяется количеством байт для хранения метрики. То есть если мы выберем евклидово расстояние в качестве метрики, для хранения которого в машинном виде потребуется 4 байта, то общий объем частей секрета будет примерно в 4 раза больше размера исходного секрета, а в случае использования квадратов евклидовых расстояний - в 2-3 раза больше в зависимости от п.
Алгоритм разделения секрета
Ниже представлен алгоритм разделения секрета на п каналов, который генерирует части секрета путем представления данных из разделяемого потока в виде координат точек в п-мерном пространстве с последующим переходом к евклидовым метрикам для полученного объекта. В качестве секрета для каждой последующей вершины используются евклидовы расстояния от нее до п предыдущих различных вершин объекта. Такой переход к метрикам позволит однозначно восстановить все вершины объекта итеративно по уже восстановленным предыдущим вершинам, так как точка в п-мерном пространстве однозначно (с точностью до знака) определяется другими п точками и евклидовыми расстояниями от каждой из этих точек до нее. Иначе говоря, п опорными точками и п жесткими связывающими опорами мы можем жестко зафиксировать точку в п-мерном пространстве.
Алгоритм является итерационным, для каждой итерации можно определить последовательность шагов.
Вход: Д, А2,..., А1 - список вершин геометрического объекта в и-мерном пространстве, 1 = М / п -количество вершин.
Выход: 51,S2,...,Бп - сформированные части секрета, состоящие из значений евклидовых метрик исходного объекта. К - «ключевая» часть секрета, здесь хранятся инициализирующие данные для алгоритмов формирования и восстановления секрета. В протоколе передачи данных К может быть как открытой информацией (даже при ее наличии атака злоумышленника на алгоритм останется вычислительно сложной задачей перебора), так и отдельной частью секрета, отличающейся от остальных частей размером (без информации об инициализирующих алгоритм переменных восстановление не сможет быть однозначным).
Инициализация. На этом шаге формируются значения «стартовых» точек А_п+1,А_п+2,...,А0. Эти точки понадобятся для перехода к метрикам для п первых вершин объекта. Это могут быть значения, сгенерированные с помощью криптостойкого генератора псевдослучайных чисел. Сгенерированные значения помещаются в ключевой массив К.
/ := 0 - инициализируем номер обрабатываемой на данный момент вершины объекта.
52,...,- массивы для частей секрета, делаем их пустыми.
Шаг 1. Переход на новую итерацию.
/ := / +1. Выбираем для обработки вершину и
предшествующие п вершин А1 -п, А1 -п+1,..., А1 ^ .
Шаг 2. Обрабатываем вершину А/. Для нее вычисляются величины Лл,..., являющиеся квадратами расстояний от А/ до каждой из предыдущих п точек:
п
= (р(А-п, А ))2 = ^(/(/-1>п+ 1 - /(,^-1)^+^)2 1=1
п
К/2 = (Р(А-п+1, А )) = ^(/(,-1)-п+1 - /а-п)-п+ 1) (2) 1=1 (2)
К = (р(Д.-1, А, ))2 =^(/^+1 - /,-2).п+1 )2 1=1
Как было показано выше, здесь более целесообразно использовать квадраты евклидовых расстояний, так как это уменьшает трудоемкость вычислений и размер частей секрета.
Полученные метрики Я,л,...позволяют восстановить точку в п-мерном пространстве с точностью до симметрии, т. к. при возведении расстояний в квадрат знак самого расстояния по координатам пропадает. Для этого на шаге 3 мы будем формировать значения, позволяющие восстановить однозначное расположение точки А .
Шаг 3. Для вершины А/ и предшествующих ей вершин А-п,А„+!,...,А/-1 вычисляем к1 - знак п-
мерного векторного произведения векторов АJA¡,
который помещается в массив К . В зависимости от значения к1 при восстановлении будет выбираться одно из двух решений системы (2).
к, = ЯелАЛ ® 4-и+1 А ®. ■ ■ ® 4_А) (3)
Шаг 4. Формирование частей секрета. Дописываем полученные на предыдущем шаге расстояния К к частям секрета S2,...,8ппо принципу
Шаг 5. Если в списке вершин объекта еще остались необработанные вершины, возвращаемся к шагу 1.
Алгоритм восстановления секрета
В то время как описанный выше алгоритм разделения является достаточно быстрым и генерация частей секрета является легко решаемой задачей, представленный ниже алгоритм восстановления работает несколько медленнее, т. к. в общем случае восстановление сводится к решению системы уравнений 2-й степени (2). Лишь в случае п = 2 и п = 3 задачу можно свести к геометрическому алгоритму, находящему точное решение за достаточно малое время.
На вход алгоритма восстановления поступают п частей секрета и «ключевой» массив К, содержащий значения координат п стартовых точек и значения параметра к для выбора из двух возможных вариантов получающихся в результате решения системы (2) точек.
Подобно алгоритму разделения секрета, алгоритм восстановления является итерационным, на каждом последующем шаге будет находиться одна из точек геометрического объекта, являющегося секретом.
Вход: S1,S2,...,Sп - сформированные части секрета, состоящие из значений евклидовых метрик исходного объекта. К - «ключевая» часть секрета, здесь хранятся инициализирующие данные для алгоритмов формирования и восстановления секрета.
Выход: А1, А2,..., А1 - список вершин исходного геометрического объекта в п-мерном пространстве,
. М
1 = — - количество вершин, зная длину 1, легко на-п
ходим размер исходного секрета в байтах.
Шаг 0. Инициализация. На этом шаге в память заносятся значения координат «стартовых» точек А_и+1,А_п+ 2,...,Ад. Также инициализируется счетчик по I.
Шаг 1. Переход на следующую итерацию.
, :=, +1; Текущей вершиной становится вершина А1. Для обработки выбираем предшествующие ей п вершин А,-п,А,_и+1,...,А,-1. Т.к. алгоритм проходит вершины последовательно, все предшествующие А вершины уже восстановлены, либо изъяты из ключевого массива К.
Шаг 2. Получение частей секрета для восстановления текущей вершины.
Заносим в переменные значения из частей
секрета SJ, у = 1... п . После этого смещаем указатели в частях секрета SJ на одну позицию, т.е. так,
чтобы они указывали на следующие элементы частей секрета. В к заносим очередное значение из массива К.
Шаг 3. Восстановление секрета.
Для нахождения координат точки А путем решения системы (2) вычисляем значения координат двух точек А,,А,, удовлетворяющих (2). Для выбора искомой вершины А вычисляем
к' = А-А) ® (А _ п+1 А) ® (АЛА)) (4)
Г А ' , если к ' = к,
А = Ь', ' ' (5)
[А, , иначе
Для решения системы уравнений (2) используется метод Ньютона, который не дает точного решения, но достаточно быстро находит приближенное, а поскольку координаты точек являются целочисленными, то с помощью метода Ньютона можно быстро определить, к какому целочисленному значению оно стремится.
Шаг 4. Если в списке вершин объекта еще остались необработанные вершины, возвращаемся к шагу 1.
После восстановления вершинного описания исходного геометрического объекта достаточно просто осуществляется переход к байтовой записи секрета.
' А1 =( /х, /2,., /)
А2 =((п+1, /п + 2,., /2 п )
(6)
А1 = (((1 -1)-п+1, /(1-1'уп+ 2 ,. ' ', /1-п )
Искомый секрет - Е = / /2... /М , М = 1п .
Отметим, что на шаге 3 приведенного алгоритма однозначно восстановить исходную точку по имеющемуся набору из п предыдущих точек и расстояний К не всегда возможно. В случае, когда все п предыдущих точек лежат в одной гиперплоскости
размерности п - 2 , точки, удовлетворяющие (2), будут определяться с точностью до поворота на произвольный угол относительно указанной гиперплоскости. В этом случае необходимо использовать дополнительную метрику (например, угол поворота ф относительно данной гиперплоскости), и указывать ее вместо одного из расстояний Я, где 1-я предыдущая точка является линейной комбинацией остальных точек, и удаление этой точки из рассмотрения на данной итерации не повлияет на размерность указанной гиперплоскости.
Анализ защищенности схемы
Ниже будут рассмотрены атаки на схему, направленные на восстановление сообщения по одной или нескольким частям секрета. Рассматриваются различные возможности злоумышленника по получению дополнительной информации о секрете, и методы улучшения схемы, направленные на противостояние различным атакам.
Один из типов атаки, который может быть применен к описанной схеме, основывается на следующей особенности алгоритма: при разделении секрета для вычисления частей Я1 используются точные
целые значения расстояний между вершинами по каждой из осей координат. Таким образом, для каждой Яу известно, что она является суммой квадратов п целых чисел, и для не очень больших значений п злоумышленник может найти набор точных смещений очередной точки относительно -й предыдущей, что облегчает восстановление секрета в целом. Для устранения этой проблемы можно при вычислении Я 1 фигурирующие в (2) расстояния учитывать со случайной погрешностью е (-0,5... 0,5)
п
Я = (Р (А-п, А ))2 =Т,(Ъ-1>п+1 - /,-п-1).п+1 )2 1=1
п
Я/2 = (Р(А-п+1,А ^ = Е (/(1-1)-п+1 - /а-пуп+1 + ) (7) 1=1 (7)
Яп = (Р (А-1, А ))2 = Е (Л-1>п+1 - /.-2).п+1 + ^ )2 1=1
В этом случае величины , составляющие части секрета, будут приближенными значениями суммы квадратов, и для восстановления отдельных расстояний злоумышленнику придется перебирать все варианты на некоторой п-мерной сфере.
Еще одна уязвимость представленной схемы появляется из-за «слабых» участков секрета. Они возникают в случае, когда среди п +1 точек, использующихся для формирования очередных значений Я, попадаются одинаковые. В частности, текущая
обрабатываемая точка А может совпадать с одной из предыдущих п точек, что автоматически обнуляет
значение метрики, идущее в одну из частей секрета, и злоумышленник, получив эту часть, может выявить совпадения точек, и исходя из этого получить закономерности для восстанавливаемого секрета. Эту уязвимость можно ликвидировать, модифицировав в алгоритмах разделения и восстановления секрета условие выбора п предшествующих точек следующим образом: необходимо выбирать п ближайших предшествующих различных точек, при условии, что все стартовые точки различны. Описанная уязвимость является существенной для передачи реального видео, т. к. в этом случае наличие однородных областей в изображении автоматически будет давать слабые участки.
Применение схемы для передачи видеоданных
Так как необходима передача кадров видео на лету, то на вход алгоритма разделения они будут поступать в несжатом виде, т.е. в формате ЯвВ-массива точек (пикселей), расположенного в памяти линейно. Для 24-битной цветовой схемы получаем по 1 байту на каждую составляющую цвета. В таком виде изображение будет поступать на вход схемы разделения секрета с п = 3 , каждый пиксель изображения будет соответствовать вершине трехмерного объекта, ее координатами будут, соответственно, красная, зеленая и синяя составляющие цвета. После отработки алгоритма разделения секрета, полученные части можно вновь интерпретировать как изображения того же формата (ЯвВ24), используя метрики в качестве цветов пикселей. После передачи сформированных кадров по сети, они поступают на вход алгоритма восстановления секрета, на выходе которого мы получим исходное изображение. Таким образом, рассматриваемая схема разделения секрета при п = 3 легко приспосабливается для прямого преобразования видео в видео, т. е. можно создать фильтры преобразования видео, реа-лизовывающие алгоритмы разделения и восстановления секрета. На их основе формируется рабочее приложение, запускающее граф фильтров на основе DiгectShow.
У такого способа безопасной передачи видеоинформации есть достаточно серьезная уязвимость, о которой было сказано раньше. Изображения идут на вход алгоритма разделения секрета в несжатом виде. Кроме того, реальное изображение часто содержит большие области одного цвета (или плавно переходящего оттенка цвета), таким образом, при представлении изображения в виде геометрического объекта мы получим большое количество вершин с одинаковыми либо соседними координатами, что сразу дает «слабые места» для алгоритма разделения секрета. Во избежание этого эффекта можно поставить перед фильтром разделением секрета фильтр видеосжатия (например, МРЕв-4), но такая модификация, во-первых, повлияет на скорость передачи видео, так как видеосжатие без потерь является дос-
таточно трудоемкой задачей, во-вторых, это не уберет, в полной мере, корреляцию между цветами соседних пикселей.
Предлагается другое, более оптимальное и быстрое решение: использовать в качестве исходного изображения для секрета кадр, пиксели которого берутся поочередно из кадров нескольких различных потоков видео. В этом кадре любые 2 соседних пикселя взяты из разных изображений, их цветовые компоненты не связаны между собой, следовательно, при разделении секрета не будет больших «слабых» участков, дающих дополнительную информацию злоумышленнику.
После восстановления такого кадра видео, каждый из его прообразов легко восстановить с помощью интерполяции недостающих пикселей по известным. Потеря качества, возникающая при этом, гораздо ниже, чем при использовании алгоритмов сжатия видео, т. к. здесь хранится большая доля пикселей каждого изображения. Обратим внимание, что смешивание потоков видео приводит к «гологра-фичности» суммарного потока и согласно предложенной методике возможна одновременная переда-
ча нескольких потоков в одном, причем практически без потерь информации.
Набор фильтров для потоковой обработки видео реализован на базе технологии Microsoft DirectShow с помощью программной среды Microsoft Visual Studio. Набор фильтров включает в себя фильтр для объединения нескольких потоков видео в один, фильтр, осуществляющий обратное преобразование, и фильтры, реализующие разделение секрета и восстановление секрета. Для передачи частей секрета используются фильтры Microsoft DirectShow ASF Writer и ASF Reader.
Литература
1. Ефимов В.И., Файзуллин Р.Т. Система мультиплексирования разнесенного TCP/IP трафика // Вестник ТГУ. Приложение. - 2005. -№ 14. -С. 115-117.
2. Свенч А.А., Файзуллин Р.Т. Представление геометрического объекта списком метрических характеристик // Математические методы распознавания образов: 12-я Всероссийская конференция: Сборник докладов. М.: МАКС Пресс, 2005. -С. 434-437.
3. Shamir A. How to share a secret // Communications of the ACM 22, 1979. C. 612-613.