УДК 004.056.55
Д.А. Сагайдак, Р. Т. Файзуллин
Омский государственный технический университет, г. Омск
ПРИМЕНЕНИЕ ПРИМИТИВИЗИРОВАННОГО ДЕЛЬТА-КОДА ЭЛИАСА В СХЕМЕ РАЗДЕЛЕНИЯ СЕКРЕТА
В настоящее время при проектировании центров обработки/передачи/хранения данных, остро стоит вопрос о безопасности (конфиденциальности) обрабатываемых данных. Зачастую, решением вопроса относительно конфиденциальности обрабатываемых данных, является использование криптографических алгоритмов. Но такие алгоритмы зачастую не способны подвергать криптографической обработке большие объемы данных или для их обработки требуется значительные промежуток времени. Поэтому, все чаще поднимается вопрос о необходимости использования таких алгоритмов, которые способны осуществлять быстрое и стойкое кодирование информации, зачастую в таких алгоритмах используется так называемая схема разделения секрета.
Предполагается возможным использование доказуемо стойких схем с разделением секрета, где существенно большая часть секрета передается по открытому каналу, а меньшая или шифруется, или иначе, передается по защищенному каналу передачи данных. Под меньшей следует понимать ту часть секрета длина битовой записи, которой оценивается логарифмом от длины записи большей части. В настоящей работе предлагается схема кодирования и эффективное преобразование данных, которое можно рассматривать как доказуемо стойкую схему разделения секрета на существенно неравные части.
Принцип примитивизации дельта-кода Элиаса
Рассмотри алгоритм, представляющий собой примитивизацию дельта-кода Элиаса (универсальный код для кодирования целых чисел, разработанный Питером Элиасом) [2], который позволяет избежать указанных трудностей.
Первые I бит заполним нулями, где I - это длина записи числа п, далее идёт сама запись числа п , например, пусть даны п = 3 битовых векторов, тогда запись числа п в двоичной системе счисления равна 11, тогда I = 00 . Тогда на первом этапе получается следующая числовая последовательность: 0011. Далее, бит заполняются нулями, где т. - это число
бит необходимых для записи длины вектора А. в двоичной системе счисления. Например, в
371
предыдущем примере
п = 3 , следовательно, имеется три битовых вектора
А> ,
А2 ,
А3 , пусть
a1 = 111011,
a2 = 10111,
A3 = 101, тогда размерности этих битовых последовательностей равны
Ых = 6,
M 2 = 5,
M 3 = 3
соответственно, а шх = 000, m2 = 000 ,
ш3 = 00 . Тем самым,
на втором этапе получится следующая последовательность: 0001100001010011. Третьим этапом формирования последовательности является последовательная запись самих векторов
A ,
A 2 ,
A3 . Например, для приведённых выше примеров, получится следующая исходная
последовательность: 0011000110000101001111101110111101.
Обратим внимание на то, что зная диапазон возможных изменений
At можно записывать
А в ш, + d
позициях, предваряя или дополняя нулями значащие цифры At. Это позволяет легко перезаписывать и дописывать массивы и их новые значения, не усложняя структуру данных.
Предполагается возможным использование предложенного выше метода как основы схемы разделения секрета для видеопотока данных, и мы попытаемся построить алгоритм, не требующий значительных вычислительных ресурсы.
Пусть имеется поток определенного («телевизионного») формата 720х576 пикселей 25 кадров в секунду в формате RGB (в дальнейшем будет осуществляться преобразование видеопотоков стандартных форматов: 720х576, 640х480, 352х288 (CIF - Common Interchenge Format), 176х144 (QCIF - Quartered Common Interchenge Format)), т.е. размерность изображения является известной и выбирается из одного из стандартов. Здесь осуществляются аналогичные действия: осуществляется разбиения видеопотока на фреймы, для каждого пикселя фрейма находятся его значения в формате RGB (red, green, blue) в двоичной системе счисления и записываются последовательно друг за другом (изображение считывается построчно слева направо), затем полученная битовая последовательность (битовая последовательность состоит из последовательно записанных друг за другом значения пикселей строк в двоичной системе счисления) разбивается на n случайных битовых векторов разной размерности.
Формируется префикс с указанием, на сколько n частей разбита последовательность и с указанием длин каждых полученных векторов
A1, A2 ,..., An .
В качестве генератора случайных чисел в программе, реализующей описываемый метод (произвольно генерируются размерности векторов
A1, A2 ,..., An
размером от 500 до 1000
бит), используется генератор псевдослучайных чисел RandomRange(), встроенный в среду программирования Borland (C++, Delphi) и удовлетворяющий набору тестов определённому стандартом FIPS 140-1 (Federal Information Processing Standards) [3].
Над полученными битовыми векторами A1, A2 ,..., An , осуществляются следующие операции
X = A, ,
X 2 = A2 + A3 Xn-1 = An-1 + An
(где «+» - побитовое сложение по модулю 2), полученные битовые векторы
X1,X2,..., Xn , записываются последовательно друг за другом и дописываются к сформированному выше префиксу.
Так же возможно, что для получения битовых векторов
Xj, X2 ,..., Xn , вместо операции
«+» - побитовое сложение по модулю 2, описанной выше, можно воспользоваться одним из режимов шифрования (метод применения блочного шифра, позволяющий преобразовать последовательность блоков открытых данных в последовательность блоков зашифрованных данных), таких как CBC (Cipher Block Chaining), CFB (режим гаммирования с обратной связью, Cipher Feedback).
Тем самым, если атакующему станет известна последовательность, состоящая из последовательно записанных векторов, он не сможет восстановить исходную последователь-
372
ность без знания сформированного префикса. Если осуществлять посылку основной битовой последовательности и префикса, по различным каналам связи, то будет обеспечиваться должный уровень обеспечения конфиденциальности передаваемой информации.
В случае если атакующий попытается восстановить исходное изображение фрейма, зная исходные размеры изображения и только битовую последовательность, без полученного префикса, то в результате получит, например, следующее изображения (рис. 1, рис. 2).
а) б)
Рис. 1. а) - исходное изображение; б) - изображение, полученное атакующим, при попытке восстановить изображение из имеющейся у него последовательности бит
а) б)
Рис. 2. а) - исходное изображение; б) - изображение, полученное атакующим, при попытке восстановить изображение из имеющейся у него последовательности бит
Как видно из полученных изображений (рис.1, рис.2), что, даже зная полученную последовательность и применяя всякого рода перестановки, атакующему все равно не удастся восстановить исходные изображения без знания размеров битовых векторов, полученных в результате разбиения на произвольное число частей исходной битовой последовательности.
Тем самым понятно, что для каждого фрейма видеопотока формируется свой префикс -«ключевая последовательность», что позволяет говорить о том, что осуществляется преобразование с использование различной ключевой последовательности.
При наличии у пользователя: информации о размере изображения (размер «стандартный» и известен всем), сформированного префикса и битовой последовательности, ему удастся восстановить исходное изображение.
Но даже если атакующему станет известна часть префикса и данные будут разделены
на равные части
А1, А2 ,..., Ап
но не
А1 , ему все равно не удастся восстановить исходное изо-
373
бражения, т.к. задача сводится к решению неопределенной системы уравнений из п уравнений с п + 1 неизвестными:
А2 + А3 = Х2
Ап-1 + Ап = Хп-1
Восстановить изображение можно только подбором бит, но в случае, когда длина запи-
си X 1 больше, чем 80 бит, задача становится принципиально не решаемой, т.к. осуществить
перебор на имеющейся в данное время вычислительной технике
Описанный метод не требует значительных вычислительных ресурсов и способен осуществлять преобразование данных «на лету».
Заключение
1. Предложена схема разделения секрета, основанная на примитивизации дельта-кода Элиаса, описана его теоретическая часть.
2. Подготовлена программная реализация, осуществляющая выполнение описанного выше алгоритма, по полученным результатам программной реализации сделаны выводы об эффективности использования предложенного метода для сокрытия конфиденциальной информации.
Библиографический список
1. Elias P. Universal codeword sets and representations of the integers // IEEE Transactions on Information Theory, 1975, vol. IT-21, № 2. P. 194-203.
2. Federal Information Processing Standards Publication. FIPS PUB 140-1. Security Requirements for Cryptographic Modules. - U.S. Department of commerce / National institute of standards and technology, 1994. - 53 с.