Подсистема символьной математики в системе визуального моделирования криптоалгоритмов

А. В. Бодров, Н. Д. Гуц, Е. В. Морозова

Россия, г. Санкт-Петербург, СЦПС 'СПЕКТР''

ПОДСИСТЕМА СИМВОЛЬНОЙ МАТЕМАТИКИ В СИСТЕМЕ ВИЗУАЛЬНОГО МОДЕЛИРОВАНИЯ КРИПТОАЛГОРИТМОВ

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

Главными достоинствами СВМ являются упрощенный (с использованием визуальных компонентов) ввод блок-схемы алгоритма, наглядность и возможность быстрого внесения изменений, непосредственное участие криптографа в проведении исследований независимо от его опыта программирования, точность и полнота вычислений исследуемых характеристик, возможность сопоставления результатов модификаций одного и того же алгоритма. Помимо формирования новых компонентов на основе уже существующих, СВМ позволяет разрабатывать новые криптографические примитивы, а также проводить исследования их свойств не только численными методами, но и с использованием символьной математики (СМ). Необходимость применения СМ обусловлена появлением в последние два десятилетия современных методов и методик криптоанализа, основанных на «слабостях» булевых функций (БФ) и векторных булевых функций (ВБФ), порождаемых криптографическими примитивами, используемыми в качестве «кирпичиков» криптоалгоритма.

Например, уравнение зашифрования блочного шифра имеет вид: У = Р(Х, К) = РК(Х), где X, У е К е {0, 1}т и каждый разряд выхода У]

( = 1, 2, ..., п) является булевой функцией от п + т переменных:

У] = /(X, К) = /(ХЪ Х2, ..., Хп, £Ь £2, ..., кт).

Соответственно, функция Р = (/1,/2, ...,/) называется векторной булевой функцией. Очевидно, что, если существует возможность на практике вычислить функции / в явном виде, тогда задача криптоанализа сводится к задаче решения системы линейных или нелинейных уравнений. Общее число уравнений зависит от количества имеющихся блоков шифртекста (Ы) и равно пЫ, а число неизвестных - от условий проведения криптоанализа. При наличии только шифртекста число неизвестных равно п + т, а при известном открытом тексте - оно равно т (только разряды ключа К). Поэтому криптограф (разработчик) стремится к созданию такого алгоритма формирования функции Р, при котором исключается возможность практического вычисления булевых функций £ или их комбинаций даже для отдельных разрядов. Как правило, используется композиционный принцип формирования шифрующей функции:

Р = Р1 • Р2 • ... • Рз. причем функции Р, (, = 1, 2, ..., з), в свою очередь, являются композицией одного или нескольких криптографических примитивов и некоторых математических операций.

Известно, что криптографическая стойкость шифра зависит не только от криптографических свойств используемых примитивов, но и от организации их взаимодействия. Если для выбранного примитива оценку свойств ВБФ еще удается получить, то исследование криптографических свойств ВБФ, являющихся результатом параллельного и/или последовательного взаимодействия нескольких

примитивов, без использования методов СМ представляет собой сложную математическую задачу. Применение же существующих приложений с СМ неэффективно ввиду их универсальности (ориентированность на решение широкого класса задач при наличии ограничений на допустимую «сложность» отдельной задачи), а также невозможностью формирования и обработки в автоматизированном режиме совокупности БФ. Поэтому подсистема СМ является тем необходимым модулем СВМ, без которого невозможно обеспечить комплексную и достоверную оценку свойств разрабатываемых криптоалгоритмов. Следует отметить, что разработка и внедрение элементов СМ в СВМ алгоритмов шифрования не является сложной задачей, поскольку каждое используемое в криптографии преобразование или отображение представимо в виде практически реализуемых операций или таблиц. Основной функцией подсистемы СМ является автоматизация процесса формирования ВБФ и их «производных» (то есть БФ, построенных на основе ВБФ). К их числу относятся: ВБФ криптографического примитива, ВБФ одного или нескольких раундов, шифрующая гамма поточного шифра, БФ следующего вида:

^(Х, К) = &(Х, К) © яХ*, К),

используемая в дифференциальном криптоанализе блочных шифров, где Х1) = /(Х1, Х2, .,, Х, © 1, ... Хп, £1, к2, ., кт) и др.

Наконец, ВБФ процедуры расширения ключа Е(К), предназначенной для формирования рабочих ключей К,, используемых функциями Р,, также можно вычислять с использованием подсистемы СМ.

Для анализа уже сформированной конкретной БФ наряду со специализированными программами, которые будут включены в подсистему СМ, целесообразно использовать и существующие приложения, если, конечно, такой вариант возможен. Основой для синтеза БФ или ВБФ является псевдокод, сформированный с использованием графического редактора СВМ либо обычного текстового редактора. Структура псевдокода, в целом, соответствует формульному представлению, принятому в математике. Согласно терминологии, принятой в СВМ, компонентами-объектами (операторами) являются: базовые операции, различные модули, процедуры и функции. На рис. 1 представлен «модульный уровень» псевдокода раундовой функции алгоритма ББ8, включающего базовую операцию ХОЯ и три функции: Б_ББ8, 8_ББ8, Р_ББ8.

Рис. 1. Раундовая функция алгоритма ББ8 («модульный уровень»).

Формирование ВБФ или БФ выполняется в 4 этапа, каждый из которых выполняется автономно, причем редактирование выходных данных с использованием текстового редактора разрешено после каждого этапа, что обеспечивает криптографу максимальную свободу действий при моделировании шифров. Первый этап заключается в формировании псевдокода, в котором все операторы являются базовыми операциями, а также в замене формальных параметров фактическими. Пример такого псевдокода для раундовой функции алгоритма ББ8 представлен на рис. 2.

На втором этапе для каждого оператора формируются булевы функции, представленные полиномом Жегалкина. Фрагмент результирующего псевдокода пред-

/Var;

R{32}; K{48};

Y{32};

R1{48}; R2{48}; X{32}; /Begin;

R1=E_DES(R);

R2=K+R1;

X=S_DES(R2);

Y=P_DEs(x);

/End;

{входные параметры} {выходные параметры} {локапъные переменные}

{перестановка с расширением}

{операцияХОК с ключом К} {подстановка с использованием 8-блоков} {перестановка в Р-блоке}

ставлен на рис. 3. Перед вторым этапом (или после его выполнения) указываются БФ, подлежащие дальнейшему анализу. Если, например, в качестве БФ выбрано значение У.09, то для дальнейшей обработки (см. рис. 3) непосредственно перед значением У.09 достаточно поставить символ “#”.

Третий этап предназначен для исключения вычислений, необходимость в которых отсутствует. Например, из всех БФ, представленных на рис. 3, будут оставлены только, которые участвуют при вычислении БФ У.09 (выделены жирным шрифтом), а остальные удалены.

/Var; R{32}; K{48}; Y{32}; R1{48}; R2{48}; X{32} {входные параметры} {выходные параметры} {локапъные переменные}

/Begin;

/--- R1=E_DES(R)—; R1=P(R, Def_per exp); {Перестановка с расширением} ^є/_^єг exp — файл описания перестановки}

R2=R1+K;

/--- X=S_DES(R2) ; X=F(R2, File_S_DES); {Подстановка с использованием S-блоков} {^їіє S DES — файл реализации 32 БФ для восьми S-блоков}

/--- Y=P_DES(X) ; Y=P(X,Def_per); {Перестановка в P-блоке} ^є£^єг —файл описания перестановки }

/End;

Рис. 2. Раундовая функция алгоритма ББ8 («операторный уровень»).

/--- R1=P(R, Def_per_exp) —;

R1.01 =R.32; R1.02=R.01; R1.03=R.02; R1.04=R.03; R1.05=R.04; R1.06=R.05; R1.G7=R.G4;

R1.45=R.3G; R1.46=R.31; R1.47=R.32; R1.48=R.G1;

/--- R2=R1+K ----;

R2.01 =R1.01+K.01; R2.02=R1.02+K.02; R2.03=R1.03+K.03; R2.04=R1.04+K.04; R2.05=R1.05+K.05; R2.06=R1.06+K.06; R2.G7=R1.G7+K.G7; R2.G8=R1.G8+K.G8;

R2.45 =R1.45+K.45; R2.46=R1.46+K.46; R2.47=R1.47+K.47; R2.48=R1.48+K.48;

/--- X=F(R2, File_S_DES) - ;

X.01=R2.01*R2.02*R2.03*R2.04*R2.06 + R2.01*R2.02*R2.03*R2.05*R2.06 +

R2.01*R2.02*R2.03*R2.04 + R2.01*R2.02*R2.04*R2.05 + R2.01*R2.02*R2.04*R2.06 + R2.01*R2.02*R2.05*R2.06 + R2.01*R2.03*R2.04*R2.05 + R2.01*R2.03*R2.04*R2.06 + R2.01*R2.02*R2.03 + R2.01*R2.02*R2.04 + R2.01*R2.03*R2.04 + R2.01*R2.03*R2.05 +

R2.01*R2.04*R2.06 + R2.02*R2.03*R2.04 + R2.03*R2.04*R2.05 + R2.03*R2.04*R2.06 + R2.04*R2.05*R2.06 + R2.01*R2.04 + R2.01*R2.05 + R2.02*R2.03 + R2.03*R2.04 +

R2.01 + R2.02 + R2.03 + R2.05 + R2.06 + 1;

/--- Y= P(X, Def_per) - ;

Y.G1=X.16; Y.G2=X.G7; Y.G3=X.2G; Y.G4=X.21; Y.G5=X.29; Y.G6=X.12; Y.G7=X.28;

Y.G8=X.17; #Y.09=X.01; Y.1G=X.15; ............................................

Y.29=X.22; Y.3G=X.11; Y.31=X.G4; Y.32=X.25;

Рис. 3. Фрагмент раундовой функции алгоритма ББ8 («основной уровень»).

На четвертом этапе формируется окончательный вид булевой функции, в которой аргументами являются разряды входных параметров R и K. Например, БФ У.09, представленная полиномом Жегалкина, содержит 259 слагаемых. На данном этапе предусмотрен вариант вычисления сокращенной формы полинома Жегалкина, в котором помимо переменной (например, xi) может использоваться ее дополнение ^ © 1). Достоинством разработанной подсистемы СМ является возможность использования сформированной ВБФ в новых моделях. В частности, в приведенном примере, данная возможность реализована для БФ 8-блоков, т. е. Р11е_8_ББ8 - это файл, в котором ВБФ задана в явном виде (вычисление ВБФ выполнено по таблицам истинности отдельной программой).

27G

Кроме того, подсистема СМ позволяет получать численные значения для любой «промежуточной точки» криптоалгоритма, что особенно важно в плане контроля точности программной или аппаратной реализации. Наконец, систему визуального моделирования, и, в частности, подсистему символьной математики можно использовать в учебном процессе при изучении предмета «Криптографическая защита информации».

В.Н. Салий

Россия, г. Саратов Саратовский государственный университет,

НЕПРИВОДИМЫЕ РАСШИРЕНИЯ ГРАФОВ

Граф О называется максимальным подграфом графа Н , если О получается из Н удалением одной вершины и всех связанных с нею ребер. Максимальный подграф, получающийся из Н удалением вершины V, обозначается через Н — V . Под гомоморфизмом графа О в граф Н понимается отображение р множества вершин графа О в множество вершин графа Н , сохраняющее отношение смежности в том смысле, что если вершины и, V смежны в О, то их р -образы р(и), р(у) смежны в Н . Инъективные гомоморфизмы р: О ^ Н называют также вложениями графа О в граф Н . Изоморфизм графа О на граф Н - это биективный гомоморфизм р: О ^ Н такой, что обратное отображение р — является гомоморфизмом графа Н на О . К настоящему времени не найден эффективный алгоритм, который позволил бы установить, изоморфны ли два произвольных предъявленных графа (проблема изоморфизма).

Граф Н с п +1 вершинами по определению является расширением п -вершинного графа О , если О вкладывается в любой максимальный подграф графа Н . Очевидный пример расширения для заданного графа О - его соединение

0 +1 с одноэлементным графом (т.е. к О добавляется вершина, которая соединяется ребром с каждой вершиной графа О). Это так называемое тривиальное расширение графа О .

Если даны п - вершинный граф О и (п +1) - вершинный граф Н , то как узнать, является ли Н расширением для О ? Эффективное решение этой задачи дало бы и решение проблемы изоморфизма, поскольку, как нетрудно понять, граф

01 тогда и только тогда изоморфен графу О2, когда О2 +1 является расширением

для О1.

На сложности задачи о расширении графа базируется следующее доказательство с нулевым разглашением.

Некто А , по его словам, знает, что граф Н является расширением графа О и предлагает В убедиться в этом своем знании с помощью следующего протокола.

А предъявляет В некоторый граф О *.

В наугад выбирает один из двух вариантов:

а) В предлагает А доказать, что О * изоморфен О; либо

б) В случайным образом выделяет вершину V в Н и предлагает А доказать, что О * вкладывается в максимальный подграф Н — V.

В зависимости от полученного задания

а) А показывает В некоторый изоморфизм р: О* ^ О; либо