Современные информационные технологии/ 4. Информационная безопасность
к.т.н. В.Г.Ткаченко, к.ф.-м.н. О.В.Синявский
Одесская национальная академия связи им. А.С.Попова, Украина
Построение криптоалгоритма
на основе деревьев типов монотонных булевых функций
Назовем вектор Т = (a0, a1,…,ai,…,an) типом МБФ [1, 2], если i-я
компонента вектора ai равна числу подмножеств из i элементов
в соответствующем данной МБФ семействе подмножеств Шпернера. При этом
одновременно i-я компонента вектора ai равна числу
минимальных входных наборов данной МБФ, лежащих на слое n – i булевого
куба ранга n.
Назовем число n рангом типа Т, номер i первой слева ненулевой
компоненты назовем левой границей типа Т,
номер j первой справа ненулевой компоненты – правой границей типа Т. Тип Т называется максимальным, если при увеличении любой его компоненты
на 1 полученный вектор не будет являться типом. Для любых двух векторов ранга n и таких, у
которых правая граница j(V1) строго
меньше левой границы i(V2), определим
операцию сдвиг-суммы:
.
Такую операцию с нулевым вектором можно проводить как
справа, так и слева:
,
.
Доказаны следующие теоремы:
ТЕОРЕМА 1. Любой тип ранга имеет однозначное
правое (левое) разложение на два типа ранга n.
ТЕОРЕМА 2. Любой максимальный тип ранга имеет однозначное
разложение на два максимальных типа ранга n.
С помощью этих теорем можно построить
дерево разложений типов МБФ.
Пример построения дерева для типа 6 ранга (рис. 1) :
Рис. 1 – Правое дерево разложения 6 ранга типа
Построение шифротекста будем проводить по следующей
схеме (рис. 2):
Рис. 2 – Схема шифрования с блоками переменной длины
Весь открытый текст разбиваем на блоки.
Блоки сцепляем следующим способом: результат шифрации предыдущих блоков
суммируется по модулю 2 (исключающее
«ИЛИ», XOR) с открытым текстом следующего блока. Для первого блока используем
нулевой ключ. Таким образом, любой блок шифра зависит не только от исходного
текста, но и от всех предыдущих блоков текста. Блоки могут быть фиксированной
длины либо переменной.
В качестве ключей шифрования (для каждого
блока различный) используем цифры, стоящие в вершинах деревьев, неравных 0.
Вершины деревьев будем обходить каким-либо способом, например, сверху вниз и
слева направо. В результате получим последовательность чисел – ключ.
Дешифрование будем проводить в обратном порядке и по такой схеме (рис. 3):
Рис. 3 – Схема дешифрования с блоками переменной длины
В секретную часть информации для такой
схемы шифрования будут входить деревья соответствующего ранга, служащие в качестве
ключей к блокам и записанные последовательностью чисел, длины блоков, если
блоки переменной длины. В этом случае ключ выбирается по длине блока, а для
операции «исключающего или» недостающую часть заполняем нулями. Эту часть
информации можно передавать по защищенному каналу, например, используя
криптографию с открытым ключом.
Построение ключей можно проводить по
другой схеме. Перестановку битов осуществлять разными обходами вершин деревьев
типов МБФ. Например, пронумеруем вершины дерева, начиная сверху к низу и слева
направо. Это будут номера битов сообщения, назовём это прямым обходом. Далее,
получим номера битов, с которыми будем осуществлять перестановку. Обход вершин
дерева сделаем следующим образом: начинаем слева снизу вершина № 1, затем фиксируем
вершину, которая на уровень выше, вершина № 2, и обходим все нижние вершины и
т.д., назовём это обратным обходом.
Литература
1.
Ткаченко В.Г.
Классификация монотонных булевых функций при синтезе цифровых схем /
Ткаченко В.Г. // Наукові праці ОНАЗ ім. О.С. Попова. – 2008. – №1. – С. 35 – 43.
2.
Ткаченко В.Г.
Перечисления типов монотонных булевых функций при синтезе цифровых схем
/ Ткаченко В.Г. // Наукові праці ОНАЗ ім. О.С. Попова. – 2008. – №2. – С.
54 – 69.