ПРИКЛАДНАЯ ДИСКРЕТНАЯ МАТЕМАТИКА
2008 Вычислительные методы в дискретной математике № 2(2)
УДК 519.7
АНАЛИЗ НЕКОТОРЫХ КРИПТОГРАФИЧЕСКИХ ПРИМИТИВОВ НА ВЫЧИСЛИТЕЛЬНЫХ КЛАСТЕРАХ1
А.А. Семенов, О.С. Заикин, Д.В. Беспалов, П.С. Буров, А.Е. Хмельнов
Институт динамики систем и теории управления СО РАН, г. Иркутск
E-mail: [email protected], [email protected], [email protected], [email protected], [email protected]
Работа является продолжением серии статей, посвященных обращению дискретных функций из класса, имеющего пересечения с различными областями кибернетики. В данный класс, в частности, попадают функции, используемые в современных криптосистемах в качестве шифрующих преобразований. В настоящей работе обсуждаются некоторые характерные моменты, касающиеся решения задач обращения рассматриваемых функций на многопроцессорных вычислительных системах.
Ключевые слова: обращение дискретных функций, преобразования Цейтина, многопроцессорный кластер.
Данная работа предполагает освещение имеющихся результатов и перспектив дальнейших исследований в решении булевых уравнений большой размерности с приложениями в задачах криптографии. Особое внимание уделяется использованию для решения рассматриваемых классов логических уравнений многопроцессорных вычислительных систем (кластеров).
На сегодняшний день основу программ, наиболее успешно работающих с логическими уравнениями, составляют алгоритмы решения SAT-задач. Тем самым один из доминирующих на данный момент подходов состоит в сведении исходной (разнородной) системы логических уравнений к уравнению вида
C(xi, ..., x„) = 1, (1)
в левой части которого находится конъюнктивная нормальная форма (КНФ) над множеством булевых переменных X = (xb ..., xn}.
В п. 1 работы предполагается дать краткий обзор техники преобразований Цейтина [1] - основного инструмента, позволяющего сводить системы логических уравнений к уравнениям в формате (1); п. 2 содержит краткое описание программного комплекса «Transalg», реализация в рамках которого преобразований Цей-тина позволяет сводить к уравнениям вида (1) задачи обращения дискретных функций из широкого класса (данный класс включает в себя большинство функций, используемых в системах шифрования).
В п. 3 описывается технология крупноблочного распараллеливания SAT-задач для их последующего решения на вычислительных кластерах. Данная технология была с успехом применена в криптоанализе ряда генераторов ключевого потока [2, 3]. Здесь же отмечено, что используемая концепция крупноблочного параллелизма применима не только к SAT-задачам, но и к многочисленным классам задач с «булевыми данными».
В п. 4 подробно описан программный комплекс D-SAT - основной инструмент в решении задач обращения дискретных функций на вычислительных кластерах.
В п. 5 описывается технология построения прогнозов трудоемкости задач криптоанализа (в форме SAT-задач) при их решении на вычислительных кластерах. В основе данной техники лежит идеология крупноблочного параллелизма, позволяющая строить прогнозы параллельного времени решения SAT-задач при варьируемых значениях ряда входных параметров. В качестве иллюстрирующего примера рассматривается логический криптоанализ широко известной системы поточного шифрования А5/1.
1. Преобразования Цейтина логических уравнений
Преобразования Цейтина в применении к логическим уравнениям реализуют фундаментальную идею, которую можно назвать «концепцией подстановки». Данная идея, состоящая в замене некоторой части формулы новой переменной (с последующими дополнительными преобразованиями), возникает в различных областях математики. В контексте логических уравнений такого рода преобразования впервые были использованы Г.С. Цейтиным в 1968 г. в работе [1]. Данную статью следует считать, по-видимому, наиболее ранней работой, в которой анализировались вопросы сложности вывода в исчислении высказываний. В ней, в частности, было установлено, что совмещение стратегии общей резолюции (в смысле Дж.А. Робинсона, [4])
1 Работа выполнена при поддержке гранта РФФИ № 07-01-00400-а и при частичной поддержке гранта Президента РФ НШ-1676.2008.1.
с преобразованиями Цейтина1 позволяет на некоторых классах логических противоречий получить «экспоненциальный выигрыш» по сложности в сравнении с регулярной резолюцией. Статья [1] была перепечатана на английском языке в 1983 г. [6].
В несколько более общем (по сравнению с [1]) контексте преобразования Цейтина были использованы в [7] при формулировке основных концепций логического криптоанализа2. Примерно в то же время [8] было показано, что преобразования Цейтина обладают свойством консервативности в смысле [9] (см. также [10]). Этот факт очень важен по отношению именно к задаче обращения дискретных функций, поскольку он позволяет гарантировать ее корректное решение.
Напомним, что логическими уравнениями называются выражения вида
Ь(л1, ..., л„) = 0, Ь(л1, ..., л„) = 1, где Ь(л1, ..., *„) - формула исчисления высказываний над множеством булевых переменныхX = {^1, ..., *„}. Поиск решения логического уравнения
Ь(%1, ..., л„) = в, в е{0,1},
означает поиск такого набора (а1, ..., ап), а;е{0, 1}, ге{1, ..., п}, что Ь(хп) |(аь...>ал) = в . Здесь через
Ь(х1,..., хп) |(а ,.,ал) обозначена подстановка в Ь(%1, ..., xn) соответствующих значений переменных: %1 = а1,
., xn = ап. Если такого набора не существует, то рассматриваемое логическое уравнение не имеет решений. Будем рассматривать задачу поиска решений логических уравнений в следующей общей постановке:
^(кх (х1,...,х? ),...,^ (х?,...,хГ )) = 1. (2)
Здесь И1, ..., Нц - некоторые (в общем случае сложные) булевы функции. Все булевы функции здесь и далее полагаются всюду определенными. Положим
Х >•••> }= >•••> X }
таким образом, ^: {0, 1}п ^ {0, 1}. Введем булеву функцию
8\ (х1 >•••>х\>«1)>8\ :{0,1Г +1 ^{0,1}:
, , , ч I1, к х\ ) = «1,
Ч (’•••’ хи, «1 Н0,/1 м „
[о, к ( •••, хЛ ) «1
Рассмотрим логическое уравнение
с(8\ (X1 >•••>\ >«1)) •р(«1 >•••>^ (Х1 >•••>)) =1. (3)
Здесь С (ghí (х|,..., х^, щ)) - КНФ-представление булевой функции ghl над {,..., х^, щ} .Переход от уравнения (2) к уравнению (3) - это одна итерация преобразований Цейтина.
Теорема 1 (см. [11]). Существует взаимно однозначное соответствие между множествами решений уравнений (2) и (3). Переход от произвольного решения уравнения (3) к соответствующему решению уравнения (2) осуществляется за линейное время.
Легко заметить, что, применив преобразования Цейтина к уравнению (2) полиномиально ограниченное от объема кодировки (2) число раз, можно перейти от уравнения (2) к уравнению вида (1), причем множество его решений будет равномощно множеству решений (2). Более того, вместо КНФ-представлений функций § можно использовать их представления в виде любых «нормальных форм».
2. Пропозициональное представление алгоритмов вычисления дискретных функций;
программный комплекс «Transalg»
Преобразования Цейтина являются базой «пропозиционального подхода» к задаче обращения дискретных функций одного важного класса.
Под дискретными функциями здесь понимаются функции вида/": {0, 1}" ^{0, 1} . Если натуральное семейство {/П}иелт вычисляется при помощи фиксированной программы М машины Тьюринга, то данное семейство функций называется алгоритмически вычислимым. Если при этом каждая функция /" семейства определена всюду на {0, 1}", то говорят, что данное семейство образовано всюду определенными алгоритмически вычислимыми функциями. Для таких функций стандартным образом (см., например, [10]) вводится понятие алгоритмической сложности. Все возможные всюду определенные алгоритмически вычислимые за полиномиальное время дискретные функции образуют класс 3. Очевидно, что данный класс включает в себя, в частности, все функции, используемые в криптосистемах в качестве шифрующих преобразований. За-
1 Данный тип вывода получил название «расширенная резолюция» (см., например, [5]).
2 Авторы на тот момент еще не знали, что фактически они используют преобразования Цейтина.
дача обращения произвольной функции fn е 3 состоит в следующем: по произвольному у е Ran fn найти такой х е Domfn ={0, 1}n, что fn(x) = у (через Domfn и Ranfn обозначены соответственно область определения и область значений функции fn).
В работах [7, 11, 2, 3] последовательно развивался подход к обращению функций класса 3, базирующийся на идее пропозиционального представления прямых алгоритмов их вычисления. Данная концепция в своей основе восходит к работе С. Кука [12], однако ее практическое воплощение требует многочисленных детализаций.
Первая программная реализация «пропозиционального подхода» была осуществлена в [13]. Созданный программный комплекс (LC-комплекс) с успехом применялся в криптоанализе различных систем поточного шифрования. Основу LC-комплекса составлял LC-язык, представляющий собой фактически фрагмент языка C. Алгоритмы, записываемые на LC-языке, транслировались в логические выражения в формате КНФ при помощи специального транслятора (LC-транслятор). LC-комплекс оказался удобен для сведения задач криптоанализа блочных шифров к SAT-задачам. Однако для логического криптоанализа систем шифрования, в алгоритмах которых используются условные переходы, возможностей LC-комплекса было недостаточно. На сегодняшний день данный комплекс не удовлетворяет многообразию задач, вписывающихся в концепцию пропозиционального подхода к обращению функций класса 3.
Все перечисленные причины привели к выводу об актуальности создания нового программного комплекса для пропозиционального представления алгоритмов. Данный проект получил название «Transalg» [14]. В настоящий момент проект находится в стадии активной разработки. Комплекс «Transalg» имеет модульную архитектуру и представляет собой среду, в которую интегрированы компоненты, осуществляющие трансляцию алгоритмов, преобразования форматов, решение логических уравнений и проверку получаемых решений. Модульность архитектуры Transalg^ позволяет задействовать для решения логических уравнений различные методы (SAT-подход, BDD-подход, работа с системами полиномиальных уравнений над GF(2) и др.).
3. Крупноблочный параллелизм в булевых задачах; прогнозирование параметров распараллеливания
Кратко опишем технологию крупноблочного распараллеливания, использованную в решении SAT-задач и апробированную на задачах логического криптоанализа некоторых генераторов двоичных последовательностей [2, 3]. В [15] показано, что основные идеи [2] переносятся без существенного изменения на разнообразные задачи с «булевыми данными». В изложении данного материала в основном будем следовать работе [15].
Отметим, что различные задачи, использующие двоичные данные, можно объединить в контексте общей постановки «удовлетворения ограничениям». А именно, будем рассматривать задачи следующего типа. Дан набор формул-условий вида
Ф(х.Х. ) > 4,..., Ф(х.т Х.„ ) > Am , (4)
Ч Ч 1гт
где "V } = {xi’—’xn} = X - множество переменных, принимающих значения в {0, 1}, >е {=,>} ,
1
Aj, j е {1, ..., m} - элементы GF(2) или целые числа. Формулы (4) - это выражения вида «КНФ = 1», системы линейных неравенств вида
A -х > Ъ,
(где A - матрица размерности mxn с элементами из множества {-1, 0, 1}nZ; Ъ - целочисленный вектор размерности m), либо полиномиальные уравнения над полем GF(2). Требуется найти вектор значений истинности переменных из X, удовлетворяющий всем условиям (4). Такой вектор будем называть решением системы (4).
Для произвольного множества Xd = xid}, {zb ..., id} с {1, ..., n}, определим подстановку набора
значений переменных
xij =aij >•••>xid =aid,aij e {0,1}, j e {1,...,d}, ()
в произвольную формулу вида (4) как замену вхождения переменной xtj, j е {1,...,d}, константой с последующим выполнением соответствующих преобразований (когда это возможно). Преобразования, являющиеся результатами применения подстановок типа (5) к выражениям вида (4), - это вычеркивания соответствующих литералов и дизъюнктов из КНФ, перенос целых чисел (с противоположным знаком) в правую часть линейных неравенств, а также вычеркивание мономов из булевых полиномов либо замена некоторых
X ^
мономов на константу «1» с последующим сложением по mod 2 нескольких констант. Обозначим через 2 множество, образованное всевозможными двоичными векторами длины d, каждый из которых определяет
значения истинности переменных из Xй. Каждому вектору а = (аЛ) € 2х поставим в соответствие результат следующей подстановки в выражения (4): =а1,...,х^ = аа. Тем самым вектору
а = (а1,...,аЛ)€ 2 сопоставляется набор преобразованных выражений типа (4), который будем обозна-
чать через Фа. Таким образом, множество Xй задает естественное соответствие между набором формул вида (4) и семейством формул (Фа}ае ^ . Каждая формула данного семейства есть либо логическое уравнение
вида «КНФ = 1», либо система линейных неравенств вида (2), либо система полиномиальных уравнений над полем GF(2). Будем также говорить, что множество Xй задает декомпозицию задачи решения системы (4) на
семейство задач поиска решений систем {Фа} ^ . Дополнительно полагаем, что при С = 0 результатом такой декомпозиции является исходная система типа (4).
а Х^
Несложно видеть, что если двоичный вектор в - решение системы Ф при фиксированном ае 2 , то
компоненты векторов а и в дают компоненты некоторого решения исходной системы (4). Наоборот, если у -
X ^
произвольное решение (4), то часть его компонент определяет некоторый вектор а е 2 , а оставшиеся
компоненты определяют вектор в, являющийся решением системы Фа. Таким образом, задача поиска реше-
а X ^
ния системы (4) сводится к задаче поиска решений систем Ф , ае 2 , причем (4) не имеет решений (несо-
X д а
вместна) тогда и только тогда, когда при всех ае 2 системы Ф несовместны.
Задачи поиска решений систем вида Фа - это, по сути, частные случаи исходной задачи, имеющие меньшую размерность, и для их решения можно использовать многопроцессорный вычислительный кластер. Более точно, упорядоченное некоторым образом семейство систем (Фа}ае2х1 может рассматриваться как очередь заданий для г-процессорного кластера. Именно такой подход был использован в [2] применительно к решению SAT-задач.
В этой же работе была предложена процедура статистического прогнозирования размерности множества Xй, то есть значения параметра С, при котором суммарное время решения исходной задачи на вычислительном кластере минимально. Здесь мы переносим данный результат работы [2] на общую задачу поиска решений систем вида (4).
Предположим, что рассматривается некоторая задача типа (4). Через 5 обозначаем решатель, используемый для поиска ее решений. Решатель - это некоторая программа, помимо базового алгоритма использующая разнообразные эвристики, в том числе и эвристики удаления нерелевантных ограничений. Термин «прогнозная функция» обозначает семейство функций, параметрически зависящих от решателя 5. Аргументами данных функций являются случайные выборки систем из множеств (Фа}ае2хл . Прогнозная функция
является частично определенной на заданном множестве выборок и каждой «точке» своей области определения ставит в соответствие некоторое положительное рациональное число. Знание глобального минимума данной функции на ее области определения позволяет получить представление (прогноз) относительно минимального общего объема вычислений, требуемого для решения распараллеленной исходной задачи.
Случайные выборки из множеств {Фа} ^ имеют смысл лишь в тех случаях, когда мощность данного
множества (величина 2й) слишком велика для его полного перебора. Поэтому при определении прогнозной функции имеет смысл рассматривать две ситуации: когда число 2й больше, чем некоторая положительная константа р0, и когда 2й не превосходит р0. За ро можно принять, например, число, сопоставимое с числом процессоров в кластере.
Далее полагаем, что все случайные выборки имеют фиксированный объем д. Каждому значению параметра С е {0, 1, ..., п}, такому, что 2й > р0, ставится в соответствие множество векторов {а1, ..., а?}, выби-
X ^
раемых из 2 в соответствии с заданным на нем равномерным распределением, а также множество (выборка) систем 0^ = (Ф“1ф“?}. Каждому значению параметра С е {0, 1, ..., п}, такому, что 2й < р0, ставится в соответствие множество 2х и множество систем {Фа} Х<1 .
' >ае2Х
Фиксируем некоторый решатель 5. Обозначим через г(Ф') время работы (число битовых операций) решателя 5 на произвольном входе Ф' е ®й. Введем в рассмотрение функцию
(®*) = I г(Ф').
Ф 'Е0^
Значением данной функции при каждом фиксированном С е {0, 1, ., п} является суммарное время (число битовых операций) работы решателя 5 по всем системам из ®й.
Следует учитывать, что при некоторых значениях параметра с (например, при с = 0) системы ©й могут оказаться очень сложными для решателя 5, и в этом случае время подсчета соответствующего значения прогнозной функции может превысить разумные границы. Для учета данного факта в рассмотрение вводится специальная функция §(Ф) = _р(|Ф|), гдер(-) - некоторый полином, а через |Ф| обозначен объем двоичной кодировки исходной системы вида (4).
Допустим, что в соответствии с перечисленными правилами построено семейство выборок © = {©й}йе{0д,...,"} (при фиксированном р0). Прогнозную функцию определим следующим образом:
T(®d)=
— Ts (©d),2d >Po, Ts (0*)< g(|Ф|), q
d (6)
Ts (0*),2d < Ro, Ts (0*)< g( | Ф |),
<»> Ts (0d )^ g(| ф |)-
Запись «T(©d) = «» означает, что функция не определена на выборке ©d. Рациональное число T(©d) является прогнозом общего объема битовых операций, требуемого для решения исходной SAT-задачи при декомпозиции исходной системы вида (4) на семейство систем (Фа}ае2xd . Тем самым задача прогнозного планирования оптимального по трудоемкости параллельного вычисления сводится к задаче минимизации функции T на множестве Dom T с ©. Знание глобального минимума функции T на Dom T дает представление о возможности параллельного решения SAT-задачи для КНФ C «за разумное время».
Далее приведен основной результат работы [15], который является непосредственным обобщением теоремы, доказанной в [2] в отношении SAT-задач.
Теорема 2 (см. [15]). Пусть Ф - произвольная булева система вида (4), ©={©d}de(0, i, n} - произвольное семейство выборок систем из множества ^a}ae2Xd . Для произвольной прогнозной функции T: © ^Q вида
(6) справедливы следующие свойства:
1. Dom T ф 0.
2. Глобальный минимум T на Dom T находится в общем случае за время, ограниченное полиномом от |Ф|.
В работе [15] было продемонстрировано, что технология крупноблочного параллелизма, использующая
прогнозные функции, позволяет добиваться на задачах криптоанализа некоторых генераторов (в частности, порогового генератора) «сверхлинейного» ускорения. Как показано в [15], данный феномен является прямым следствием неполноты используемого решателя.
4. Пакет D-SAT
Для реализации описанной выше технологии крупноблочного распараллеливания применительно к SAT-задачам был разработан пакет прикладных программ Distributed-SAT (D-SAT) [16]. Пакет функционирует на вычислительном кластере под управлением инструментального комплекса DISCOMP [3, 17]. Описание данного программного комплекса здесь приводится.
Библиотека программ пакета D-SAT включает модуль расщепления, модуль SAT-решателя, модуль прогнозирования, модуль-анализатор и транспортный модуль. Модули пакета реализованы на языке C++, причем все они являются платформонезависимыми.
Основные входные данные модуля расщепления - это файл с исходной КНФ в формате DIMACS, диапазон значений параметра d (левая и правая границы) и фиксированное значение q, определяющее число КНФ в произвольной случайной выборке. Обозначим через d* и d* натуральные числа, определяющие соответственно верхнюю и нижнюю границы интервала, в котором изменяются значения d. Для каждого значения диапазона параметров декомпозиции строится отдельное семейство КНФ. В случае q < 2d из декомпозиционного семейства случайным образом выбираются q КНФ. Если q = 0 или q > 2d, то выборкой является все рассматриваемое семейство. Результатом декомпозиции исходной КНФ является набор файлов с КНФ декомпозиционного семейства, представленными в формате DIMACS. Этот набор в процессе работы комплекса DISCOMP описывается в виде параллельного списка.
Вычислительное ядро модуля SAT-решателя составляет программа minisat [18], вообще говоря, могут использоваться различные версии данной программы. По входному файлу, в котором КНФ представлена в формате DIMACS, модуль SAT-решателя осуществляет поиск выполняющего данную КНФ набора либо выдает значение NULL, если таковой отсутствует. В выходной файл каждой копии модуля SAT-решателя записывается информация о результатах его работы. Если в процессе обработки параллельного списка для какой-либо КНФ найден выполняющий набор, то все вычисления прекращаются и запускается модуль-анализатор.
Модуль прогнозирования обрабатывает файлы с результатами работы модуля SAT-решателя и производит их статистический анализ, на основе которого строится прогноз оптимальных параметров декомпозиции. При этом дополнительно учитываются все транспортные расходы.
Аналитический модуль проверяет найденный выполняющий набор на корректность, вычисляет среднее время решения SAT-задач для списка КНФ, минимальное и максимальное время, а также сравнивает прогнозируемое время решения с реальным временем. Решение SAT-задачи и результаты анализа записываются в итоговый файл.
Процесс решения SAT-задачи состоит из двух этапов: а) прогнозирование наиболее оптимальных (с точки зрения вычислительных затрат) параметров декомпозиции; б) решение всех SAT-задач из декомпозиционного семейства, определяемого найденными на этапе прогнозирования параметрами декомпозиции.
На этапе прогнозирования выполняются следующие шаги (рис. 1):
1. На вход модулю расщепления подается файл с исходной КНФ в формате DIMACS, значения С*, С* и д. Модуль расщепления для каждого значения С строит соответствующую выборку КНФ с учетом значения д. Полученные файлы КНФ в формате DIMACS объединяются в параллельный список и передаются на модуль SAT-решателя.
2. Для каждой КНФ данного списка решается соответствующая SAT-задача - доказывается невыполнимость либо находится выполняющий набор.
3. После того как решены SAT-задачи для всех КНФ из списка, при помощи модуля прогнозирования производится статистический анализ полученных результатов и на его основе вычисляется С0 - прогнозное значение оптимального параметра декомпозиции.
В процессе прогнозирования существует возможность того, что будет найден набор, выполняющий исходную КНФ. В этом случае решение задачи считается найденным и вычислительный процесс завершается.
Вход Расщепитель БАТ-решатели Прогноз Выход
Рис. 1. Схема взаимодействия модулей пакета Б^АТ на этапе прогнозирования
На этапе решения задачи выполняются следующие шаги (рис. 2):
1. На вход модулю расщепления подается файл с исходной КНФ в формате DIMACS, полагается С* = С = С0, где значение С0 найдено на этапе прогнозирования, а также д = 0. Модуль расщепления строит семейство файлов КНФ С1, ..., Ск. Полученные КНФ объединяются в параллельный список и передаются на модуль SAT-решателя.
2. Для каждой КНФ полученного списка решается соответствующая SAT-задача - доказывается невыполнимость либо находится выполняющий набор.
3. Запускается модуль-анализатор.
Вход Расщепитель вАТ-решатели Анализатор Решение
Рис. 2. Схема взаимодействия модулей пакета Б^АТ на этапе решения
Обмен данными между вычислительными узлами кластера осуществляет специальный транспортный модуль пакета D-SAT, основной задачей которого является рассылка КНФ из параллельного списка. Каждая КНФ представляется в виде файла в формате DIMACS, состоящего из трех частей:
1) заголовок вида «р еп/[число переменных] [число дизъюнктов]»;
2) список из С однолитеральных дизъюнктов, построенных по соответствующим значениям переменных декомпозиции;
3) список дизъюнктов исходной КНФ.
В таком представлении у всех КНФ декомпозиционного семейства первая и третья части одинаковы, а различаются лишь вторые части. Назовем файлом различий файл со списком однолитеральных дизъюнктов произвольной КНФ семейства.
Работа транспортного модуля включает этап препроцессинга, в ходе которого на каждый вычислительный узел передается файл с исходной КНФ. В дальнейшем на вычислительные узлы передаются только файлы различий КНФ. Каждая отдельная SAT-задача формируется на основе информации из файла различия и файла с исходной КНФ. Описанная схема позволяет значительно сократить транспортные расходы.
5. Формирование декомпозиционных множеств; оптимизация параллельных планов в задачах логического криптоанализа; прогноз параллельного логического криптоанализа генератора А5/1
Довольно очевидный факт состоит в том, что значительное влияние на эффективность параллельного решения SAT-задачи может оказывать выбор декомпозиционного множества X. Здесь мы приводим некоторые общие схемы построения декомпозиционных множеств, дающих оптимальные по вычислительным затратам параллельные планы1. В качестве иллюстрации описываемого подхода рассматривается задача логического криптоанализа широко известной системы потокового шифрования А5/1 (рис. 3).
Далее мы рассматриваем задачу криптоанализа только генератора ключевого потока в данном шифре, оставляя за скобками собственно протокол. Описание генератора взято из [19]. В соответствии с этим описанием, в генераторе А5/1 используются 3 регистра сдвига с линейной обратной связью (РСЛОС, LFSR), задаваемые следующими полиномами обратной связи: РСЛОС 1: X18 + X17 + X16 + X13 + 1 (длина регистра 19 бит); РСЛОС 2: X21 + X20 + 1 (длина регистра 22 бита); РСЛОС 3: X22 + X21 + X20 + X7 + 1 (длина регистра 23 бита).
-е
18|17|1б| | |13| || | |8| || || || 10 р—
L 1 ч 1 1 L 1 5
2120 10
22|21|20| |10| 1 1 oh—|
L к ■ 1 ? 1 )
Рис. 3. Схема работы генератора ключевого потока шифра A5/1
В каждом такте могут сдвигаться не все регистры. Сдвиг регистра с номером m, m е {1, 2, 3}, происходит, если значение функции xm (Ь, bs2, b3) равно 1, и не происходит, если значение данной функции равно 0.
Через Ь], bs2, Ь]! здесь обозначены значения т.н. «серединных битов» текущего шага, то есть битов, находящихся в данный момент в девятой ячейке первого РСЛОС, и в ячейках с номером «11» РСЛОС2 и РСЛОС3 (данные ячейки на рис. 3 отмечены более темной заливкой, нумерация ячеек ведется справа налево). Функция xm(') определяется следующим образом:
( Л2 Л3 Ul1’ ^ maj0rity ^’ U ’
Xm s s s jO’*majority(б1’b2s ’b3s),
где majority(x, y, z) = x • y v x • z vy • z (функция большинства).
Проблема построения оптимальной декомпозиции для параллельного решения задачи криптоанализа A5/1 оказалась весьма нетривиальной. Были исследованы различные схемы построения декомпозиционных множеств. Первые стратегии основывались на идеях, ранее успешно примененных в параллельном криптоа-
1 Термин «оптимальность» здесь, конечно же, понимается в отношении конкретного 8ЛТ-решателя.
нализе ряда генераторов (пороговый, суммирующий, Гиффорда [3]). В частности, использовалась схема подстановки подряд идущих битов (в естественной нумерации) инициализирующей последовательности. Тем самым, например, при С = 16 в декомпозиционное множество включались переменные, кодирующие начальные состояния первых 16 ячеек РСЛОС1. При этом, исходя из некоторых «разумных» предположений, сначала строилось базовое декомпозиционное множество, а затем предпринимались попытки его усечения на основе значений соответствующих прогнозных функций. Ниже представлена схема (рис. 4) построения базового декомпозиционного множества Xй, состоящего из 31 переменной.
Рис. 4. Схема построения декомпозиционного множества из 31 переменной (X)
В соответствии с данной схемой предлагается включить в Xй переменные, кодирующие начальные состояния ячеек регистров, начиная с первых ячеек до ячеек, содержащих серединные биты (соответствующие ячейки на рис. 4 отображены темной заливкой). Иными словами, имеем декомпозиционное множество
Xй ={Х1, ..., Х9, Х20, ..., Х30, Х42, ■■■, Х52}. (7)
Данный выбор продиктован следующими естественными соображениями. Произвольная фиксация битов из построенного таким образом множества Xй индуцирует точные значения серединных битов для значительного числа последующих состояний всех трех регистров. Но серединные биты являются наиболее информативными битами, поскольку именно они определяют, какая ветвь соответствующего условия (значение функции большинства) имеет место.
Довольно неожиданным оказался тот факт, что построенное в соответствии с (7) множество Xй не удалось существенно уменьшить за счет технологии прогнозных функций. В проводимых статистических экспериментах для каждого варианта декомпозиционного множества и начального фрагмента ключевого потока некоторой фиксированной длины строились случайные выборки объемом 1000 КНФ. Для каждой такой выборки считалось значение прогнозной функции - среднее значение времени решения SAT-задач по выборке, умноженное на мощность пространства перебора (см. п. 3). Во всех вычислительных экспериментах SAT-задачи решались SAT-решателем штБа! версии 1.2. Каждая задача решалась на одном ядре процессора Ые1 Е8400.
Далее в табл. 1 приведены значения среднего времени решения SAT-задач для спектра различных длин выхода и для различных вариантов формирования декомпозиционных множеств. Все эти варианты тем не менее в концептуальном смысле были близки к (7). Например, декомпозиционное множество, состоящее из 28 переменных, формировалось в соответствии со схемой на рис. 5 (в контексте оговоренных выше обозначений).
Рис. 5. Схема построения декомпозиционного множества из 28 переменных
Наилучшие итоговые результаты дало декомпозиционное множество, обозначаемое далее через X* :
X* = Хд , х21>"ч х30 > Х42 ’•••’ Х52 }. (8)
Таким образом, данное множество формировалось по следующей схеме (рис. 6):
Рис. 6. Схема построения декомпозиционного множества из 30 переменных (X* )
Таблица 1
Среднее время решения 8ЛТ-задач на одном ядре процессора І^еі Е8400 при различных вариантах декомпозиции и разных длинах выхода (объем каждой случайной выборки - 1000 КНФ, решатель шіиіваї 1.2)
Число переменных Длина выхода
144 160 176 192 208
28 4,241943 4,03173 4,79874 5,492782 5,1268
29 2,041447 2,062648 2,068609 1,888878 2,139253
30 0,848397 0,849213 0,948331 0,870502 1,006667
31 0,423078 0,428842 0,471429 0,420562 0,515448
32 0,229554 0,252899 0,320812 0,253239 0,267752
33 0,147385 0,151029 0,161326 0,156497 0,171918
Прогноз эффективности решения параллельной задачи криптоанализа требует также учета времени, затрачиваемого на пересылку файлов к процессорам/ядрам кластера (транспортные расходы). Благодаря схеме передачи данных, используемой в D-SAT (см. п. 4), эти затраты крайне незначительны - напомним, что «формулировкой» каждой новой задачи, передаваемой от центрального процессора на произвольный процессор/ядро, является двоичный вектор, длина которого равна мощности декомпозиционного множества. В табл. 2 приведены суммарные транспортные расходы на пересылку векторов длин 28 - 33 для двух различных типов соединений между вычислительными узлами (Gigabit Ethernet и Infiniband), наиболее часто используемых в современных кластерах. Данный прогноз был осуществлен на кластере Blackford ИДСТУ СО РАН [20] относительно системы Gigabit Ethernet и экстраполирован на систему Infiniband.
Таблица 2
Транспортные расходы при различных типах соединений между вычислительными узлами
Количество пересылаемых файлов Транспортные расходы с интерконнектом Gigabit Ethernet, ч Транспортные расходы с интерконнектом Infiniband, ч
228 1,5 0,75
229 3 1.5
230 6 3
231 12 6
232 24 12
233 48 24
Как уже отмечалось выше, все численные эксперименты проводились на процессоре Шеі Е8400. В табл. 3 приведены сравнительные характеристики данного процессора и процессора Шеі Е5472.
Кластер Т-60 [21] на момент написания данной статьи занимает 1-е место в списке 50-ти самых мощных суперкомпьютеров в СНГ [22]. Т-60 состоит из 1250 четырехъядерных процессоров Е5472.
Таблица 3
Характеристики процессоров
Название процессора Intel E8400 Intel E5472
Число ядер 2 4
Частота ядра 3,0 ГГц 3,0 ГГц
Частота шины 1333 МГц 1600 МГц
Технология производства 45 нм 45 нм
Кэш Ь2 6 Мб 12 Мб
Из данной таблицы видно, что мощность одного ядра процессора Intel E8400 сопоставима с мощностью одного ядра процессора Intel E5472 (незначительное отличие лишь в частоте шины). Исходя из этого факта, мы сочли возможным напрямую экстраполировать все приведенные выше результаты численных экспериментов применительно к процессу решения задачи логического криптоанализа генератора А5/1 на кластере T-60. Наилучшие результаты приведены ниже.
1. Для декомпозиционного множества X*, построенного в соответствии с (8), и 144 бит выходной последовательности прогноз времени решения задачи криптоанализа А5/1 (нахождение инициализирующей последовательности) на T-60: 54 часа при интерконнекте Infiniband, 57 часов при интерконнекте Gigabit Ethernet.
2. Для декомпозиционного множества X, построенного в соответствии с (7), и 192 бит выходной последовательности прогноз времени решения задачи криптоанализа А5/1 на Т-60: 56 часов при интерконнекте Infiniband, 62 часа при интерконнекте Gigabit Ethernet.
Заключение
Описанные в данной работе подходы к обращению дискретных функций на многопроцессорных системах представляются весьма перспективными ввиду впечатляющего роста производительности вычислительной техники. Основной причиной этого, конечно же, следует считать многоядерные технологии, динамичное развитие которых делает возможным построение кластеров с гигантскими вычислительными мощностями (Т-60 [21], СКИФ Cyberia, [23]). Рассматриваемые в настоящей работе задачи и подходы к их решению интересны своей высокой масштабируемостью (прямая зависимость эффективности решения от числа процессоров/ядер).
В качестве дальнейших перспектив данного направления следует отметить удачно вписывающуюся в его контекст проблему анализа криптографических хэш-функций. Позитивной особенностью SAT-задач, кодирующих проблемы обращения хэш-функций, является тот факт, что соответствующие КНФ выполнимы более чем на одном наборе (как правило, число выполняющих наборов есть некоторая экспонента от длины входа). Это делает возможным использование новых алгоритмических подходов для решения такого рода SAT-задач (например, алгоритмы, базирующиеся на идеологии локального поиска).
ЛИТЕРАТУРА
1. Цейтин Г.С. О сложности вывода в исчислении высказываний // Зап. научн. семинаров ЛОМИ АН СССР. 1968. Т. 8. С. 234 - 259.
2. Заикин О.С., Семенов А.А. Технология крупноблочного параллелизма в SAT-задачах // Проблемы управления. 2008. № 1. С. 43 - 50.
3. Заикин О.С., Семенов А.А., Сидоров И.А., Феоктистов А.Г. Параллельная технология решения SAT-задач с применением пакета прикладных программ D-SAT // Вестник ТГУ. Приложение. 2007. № 23. С. 83 - 95.
4. Robinson J.A. A machine-oriented logic based on the resolution principle // J. ACM. 1965. V. 12. No. 1. P. 23 - 41. [Перевод: Робинсон Дж.А. Машинно-ориентированная логика, основанная на принципе резолюций // Кибернетический сборник. Новая серия. М.: Мир, 1970. Вып. 7. С. 194 - 218.]
5. Haken A. The intractability of resolution // Theoretical Computer Science. 1985. V. 39. P. 297 - 308. [Перевод: Хакен А. Труднорешаемость резолюций // Кибернетический сборник. Новая серия. М.: Мир, 1991. Вып. 28. С. 179 - 194.]
6. Tseitin G. On the complexity of derivation in propositional calculus // In Studies in Constructive Mathematics and Mathematical Logic, part 2. 1968. P. 115 - 125. Reprinted in J. Siekmann and G. Wrightson (editors). Automation of reasoning. Berlin: Springer Verlag, 1983. V. 2. P. 466 - 483.
7. Семенов А.А., Буранов Е.В. Погружение задачи криптоанализа симметричных шифров в пропозициональную логику // Вычислительные технологии (совместный выпуск с журналом «Региональный вестник Востока»). 2003. Т. 8. С. 118 - 126.
8. Семенов А.А. О сложности обращения дискретных функций из одного класса // Дискретный анализ и исследование операций. 2004. Т. 11. № 4. С. 44 - 55.
9. Simon J. On Some Central Problems in Computational Complexity: Doctoral Thesis, Dept. of Computer Science, Cornel University, Ithaca, NY, 1975.
10. Гэри М., Джонсон Д. Вычислительные машины и труднорешаемые задачи. М.: Мир, 1982. 416 с.
11. Семенов А.А. Логико-эвристический подход в криптоанализе генераторов двоичных последовательностей // Труды Междунар. науч. конф. ПАВТ’07. Челябинск: ЮУрГУ, 2007. Т. 1. С. 170 - 180.
12. Cook S.A. The complexity of theorem-proving procedures // Proc. 3rd Ann. ACM Symp. on Theory of Computing, Association for Computing Machinery, Ohio, 1971. P. 151 - 159. [Перевод: Кук С.А. Сложность процедур вывода теорем // Кибернетический сборник. Новая серия. М.: Мир, 1975. Вып. 12. С. 5 - 15.]
13. Буранов Е.В. Программная трансляция процедур логического криптоанализа симметричных шифров // Вестник ТГУ. Приложение. 2004. № 9 (1). С. 60 - 65.
14. Буров П.С., Игнатьев А.С., Отпущенников И.В. Программная трансляция алгоритмов в логические выражения в задачах диагностирования дискретных систем // Материалы IX школы-семинара «Математическое моделирование и информационные технологии». Иркутск, 2007. С. 33 - 35.
15. СеменовА.А., Заикин О.С. Неполные алгоритмы в крупноблочном параллелизме комбинаторных задач // Труды Междунар. науч. конф. ПАВТ’08. СПб., 2008. С. 232 - 244.
16. Заикин О.С. Пакет прикладных программ Distributed-SAT. Свидетельство об официальной регистрации программы ЭВМ № 2008610423, опубл. 23.01.2008.
17. Феоктистов А.Г., Сидоров И.А. Языковые средства описания распределенных вычислений в инструментальном комплексе DISCOMP // Труды Междунар. науч. конф. ПАВТ’08. СПб., 2008. С. 488 - 493.
18. MiniSat [http://minisat.se/MiniSat.html]
19. Biryukov A., Shamir A., Wagner D. Real Time Cryptanalysis of A5/1 on a PC. Fast Software Encryption Workshop 2000. April 10 - 12, 2000. New-York City.
20. Суперкомпьютерный центр ИДСТУ СО РАН [http://www.mvs.icc.ru]
21. Научно-исследовательский вычислительный центр МГУ им. М.В. Ломоносова [http://parallel.ru/cluster/]
22. Список суперкомпьютеров топ-50 [http://supercomputers.ru/]
23. Межрегиональный вычислительный центр ТГУ [http://skif.tsu.ru]