Технология крулооблочного параллеллзма о SAT-задачах

И нформационные технологии в управлении

УДК 519.7

ТЕХНОЛОГИЯ КРУПНОБЛОЧНОГО ПАРАЛЛЕЛИЗМА 0 ВДТ-ЗАДАЧАХ1

О.С. Заикин, А.А. Семенов Институт динамики систем и теории управления СО РАН, г. Иркутск

Предложен новый подход к решению SAT-задач, основанный на концепции крупноблочного параллелизма, свойственного многочисленным задачам большой размерности. В рамках данного подхода строится декомпозиция исходной конъюнктивной нормальной формы (КНФ) на семейство КНФ с последующим решением SAT-задачи для каждой КНФ полученного семейства на отдельном вычислительном узле кластера. Планирование оптимального по трудоемкости вычисления осуществляется через решение задачи оптимизации специальной прогнозной функции. Эффективность подхода подтверждена на примере задач криптоанализа суммирующего и порогового генераторов.

ВВЕДЕНИЕ

В последнее время отмечен реальный прогресс в построении программных решателей в задачах поиска на булевых структурах большой размерности (далее используется термин «логический поиск»). Наиболее известные задачи логического поиска — это так называемые SAT-задачи (boolean satisfiability problem — или просто SAT), прототипом которых служит задача о выполнимости произвольной конъюнктивной нормальной формы (КНФ). К SAT-задачам сводятся многие практически важные проблемы: задачи синтеза и верификации дискретных управляющих систем, задачи теоретического программирования, а также многочисленные криптографические задачи.

Высокая вычислительная сложность SAT-задач делает их привлекательными объектами с позиций теории параллельных вычислений. Далее мы описываем подход к решению SAT-задач, использующий концепцию крупноблочного параллелизма. Особо отметим, что одной из первых работ по крупноблочному распараллеливанию вычислительных задач большой размерности была статья [1].

1 Работа выполнена при поддержке РФФИ, гранты № 07-01-00400-а и НШ-9508.2006.1 (государственная поддержка ведущих научных школ).

В основе предлагаемой в настоящей работе технологии лежит декомпозиция исходной SAT-задачи на семейство SAT-задач, в результате которой область поиска разбивается на непересекающиеся подобласти. Проблема выбора оптимальных параметров декомпозиции решается с помощью процедуры статистического прогнозирования, представляющей собой последовательность статистических экспериментов, результатом каждого из которых служит некоторая случайная выборка КНФ. На множестве таких выборок определяется специальная прогнозная функция. Прогноз минимального времени параллельного решения SAT-задачи строится на основе знания глобального минимума прогнозной функции на рассматриваемом множестве случайных выборок КНФ.

1. ОСНОВНЫЕ ОПРЕДЕЛЕНИЯ

Переменные, принимающие значения в множестве {0, 1}, называются логическими или булевыми. Пусть X = {Хр ..., хп} — множество булевых

переменных, термы х; и хг-, i е {1, ..., и}, называются литералами над X (через х обозначается логическое отрицание х). Литералы х и х называются контрарными. Дизъюнктом над X называется дизъюнкция различных литералов, среди которых нет контрарных. Конъюнктивной нормальной

формой над X называется конъюнкция различных дизъюнктов над X. Если А — произвольная формула, реализующая некоторую функцию алгебры логики над X [2], то запись «А|(а а ) = в,

в є {0, 1}», означает, что А принимает значение в при подстановке х1 = ар ..., хп = аи, аг є {0, 1},

і є {1, ..., и}.

Пусть С — КНФ над множеством булевых переменных X = {х1, ..., хп}, двоичный вектор (а1, ..., аи) называется набором, выполняющим С,

если C| (

= 1. Конъюнктивная нормальная

форма над X, для которой существует выполняющий набор, называется выполнимой, в противном случае — невыполнимой. К SAT-задачам относится задача распознавания выполнимости произвольной КНФ, а также задача поиска выполняющего набора произвольной выполнимой КНФ. Данные задачи являются вычислительно трудными — задача распознавания выполнимости произвольной КНФ NP-полна [3].

Для решения SAT-задач применяются специализированные программы, называемые SAT-решателями. Характерные особенности архитектуры современных эффективных SAT-решателей приведены в обзоре [4].

Пусть L(xj, ..., xn) — произвольная формула, реализующая некоторую функцию алгебры логики от булевых переменных Xj, ..., xn. Выражения вида L(Xj, ..., xn) = 0, L(Xj, ..., xn) = 1 называются логическими уравнениями. Решить логическое уравнение L(Xj, ..., xn) = в, в е {0, 1}, означает найти такой набор (aj, ..., an), a;. е {0, 1}, i е {1, ..., п},что L(xj, ..., xn)|(a a ^ = в. Если такого набора не существует, то говорят, что логическое уравнение не имеет решений.

Формальной вычислительной моделью, рассматриваемой далее, служит машина Тьюринга с

входным алфавитом £ = {0, 1}. Через {0, 1}”, n е N, обозначается множество всех двоичных последовательностей длины n. Также используется обозначение {0, 1}* = U {0, 1}”. Дискретной функци-

” е N

ей называется произвольная (вообще говоря, частичная) функция вида f”: {0, 1}” ^ {0, 1}*, n е N. Через domf” с {0, 1}” обозначается область определения функции f”, а через range f с {0, 1}* ее область значений. Дискретную функцию f” назовем всюду определенной или кратко «тотальной», если domf” = {0, 1}”. Пусть M — программа машины Тьюринга (МТ-программа), которая останавливается на произвольном слове из {0, 1}*, причем в

заключительном состоянии на ленте записано некоторое двоичное слово. Очевидно, что данная программа вычисляет семейство тотальных дискретных функций, которое обозначим через ^ = = {ЛМ }п е N. Под алгоритмически вычислимыми семействами тотальных дискретных функций понимаются именно семейства вида fм. Далее индекс М в обозначении таких семейств опускается. Вычислительная сложность МТ-программы, останавливающейся на произвольном двоичном входе, определяется стандартным образом [5].

2. КРУПНОБЛОЧНЫЙ ПАРАЛЛЕЛИЗМ В БДТ-ЗАДАЧАХ

Высокая вычислительная сложность SAT-задач придает принципиальное значение проблеме использования для их решения параллельных вычислительных технологий. В данном контексте SAT-задачи могут исследоваться по двум направлениям: построение SAT-решателей с параллельной вычислительной архитектурой; общая концепция «распараллеливания по данным», когда область поиска разбивается на непересекающиеся подобласти, каждая из которых обрабатывается SAT-решателем на отдельном вычислительном узле. Первое направление представляется технически труднореализуемым, поскольку SAT-решатели представляют собой довольно сложные программы в плане многообразия используемых в них технологий. В настоящей работе развивается второе направление. Результатом является описанная ниже параллельная технология решения SAT-задач на вычислительных кластерах. Ключевой момент этой технологии состоит в моделировании параметров параллельного вычисления, оптимального по временным затратам.

Опишем используемую далее общую схему крупноблочного распараллеливания SAT-задач. Рассматривается произвольная КНФ С над множеством булевых переменных X = {хх, ..., хп}, состоящая из т дизъюнктов. Выбираем в множестве X некоторое подмножество

Xй = {x.

x, }, {/р ..., /й} с {1, ..., n}, d є N.

Через Ур ..., Ук, к = 2 , обозначим различные двоичные векторы длины d, каждый из которых рассматривается как набор значений булевых переменных из множества 2^; используем обозначение У^ = {71, ..., у} Каждому вектору у є У^, j є {1, ..., к}, поставим в соответствие КНФ С. = С| „ ,

. У

полученную подстановкой в С значений перемен-

ных х,- V е {1, ..., d}, из вектора У.. В результате

‘'V .

имеем семейство КНФ А^(С) {С1, ..., С*},

которое называем семейством, порожденным из С множеством Xd. Дополнительно полагаем, что X0 = 0 и семейство, порожденное из С множеством X0, состоит из единственной КНФ С.

Пусть семейство КНФ А^ (С) = {С1, ..., С*} порождено из КНФ С множеством Xd (к = 2^). Несложно видеть, что всякому набору, выполняющему исходную КНФ С, соответствует набор, выполняющий некоторую КНФ из семейства АД С). Наоборот, произвольному набору, выполняющему некоторую КНФ из АД С), соответствует единственный набор, выполняющий КНФ С. Следовательно, С выполнима тогда и только тогда, когда выполнима хотя бы одна КНФ семейства АД С). Таким образом, решение исходной SAT-задачи для КНФ С сводится к решению к SAT-задач для КНФ С1, ..., С*.

Пусть имеется кластер, состоящий из г процессоров, где г е N. Возможны следующие два случая.

• к < г — число КНФ в семействе, порожденном

Xd, не превосходит числа процессоров кластера. В этом случае для каждой КНФ из семейства АД С) SAT-задача решается на отдельном процессоре кластера.

• к > г — число КНФ больше числа процессоров кластера. В данном случае каждому вектору У., j е {1, ..., к}, ставится в соответствие натуральное число ^, двоичное представление которого вектор У.. Данное число назовем натуральным индексом КНФ С.. Семейство КНФ АД С) упорядочивается по возрастанию их натуральных индексов. Произвольную КНФ из АД С) назовем связанной, если в рассматриваемый момент времени SAT-задача для нее либо уже решена, либо решается на некотором процессоре кластера. Остальные КНФ называем свободными. Выбираются первые г КНФ С1, ..., Сг из семейства АД С). Для каждой КНФ С1, ..., Сг решается SAT-задача на отдельном процессоре кластера. Как только освобождается некоторый из г процессоров кластера, на нем запускается процедура решения SAT-задачи для первой (в смысле введенного выше порядка) свободной КНФ семейства АД С). Данный процесс продолжается до тех пор, пока не будет найден выполняющий набор некоторой КНФ из АД С) либо пока не будет доказана невыполнимость всех КН^^^ из АД С). В силу изложенного выше, описанная процедура решает SAT-задачу для произвольной КНФ С корректно (т. е. находит набор, выполняющий С, либо доказывает ее невыполнимость).

3. ПЛАНИРОВАНИЕ ВЫЧИСЛИТЕЛЬНОГО ЭКСПЕРИМЕНТА. ОПТИМИЗАЦИЯ ПРОГНОЗНОЙ ФУНКЦИИ ВРЕМЕНИ РЕШЕНИЯ

Случай, когда число КНФ в семействе, порожденном множеством X ^, не превосходит числа процессоров, тривиален. Как правило, для относительно маломощных кластеров такое распараллеливание SAT-задачи мало что дает, поскольку получаемые КНФ остаются очень сложными для SAT-решателей.

Гораздо больший интерес представляет ситуация, когда к > г. Подстановка значительного числа переменных может дать КНФ, которые существенно проще для SAT-решателя, чем исходная, однако общее число таких КНФ (к = 2^) может потребовать для полного решения задачи нереализуемого перебора.

Выход из данной ситуации состоит в прогнозировании параметров оптимального (в смысле вычислительной трудоемкости) разбиения области поиска. Процедура прогнозирования представляет собой последовательность случайных тестов, результатом которых служит специальная прогнозная функция. Термином «прогнозная функция» мы обозначаем семейство функций, параметрически зависящих от выбранного SAT-решателя. Аргументами данных функций являются случайные выборки КНФ. Прогнозная функция является частично определенной на заданном множестве выборок и каждой «точке» своей области определения ставит в соответствие некоторое положительное рациональное число. Знание глобального минимума данной функции на ее области определения позволяет получить представление (прогноз) относительно минимального общего объема вычислений, требуемого для решения распараллеленной исходной задачи.

Введем в рассмотрение натуральное число ^0, предназначенное для разделения ситуаций — когда есть необходимость формирования случайной выборки и когда такой необходимости нет. Например, за ^0 можно принять число, близкое к числу процессоров в кластере. Если при некотором разбиении области поиска мощность семейства АД С) слишком велика, то представление о времени соответствующего параллельного вычисления можно составить на основе знания среднего времени решения SAT-задач для серии КНФ, выбранных случайным образом из АД С). Через qd обозначаем объем такой выборки.

Каждому значению параметра d е {0, 1, ..., п} такому, что 2^ > ^0 ставится в соответствие множест-

во векторов { У , ..., У }, выбираемых из У в со-

.1 jqd

ответствии с равномерным распределением, а также множество (выборка) КНФ = {С. = С| ^ ,

..., С. = С|у }. Каждому значению параметра

qd

qd

d е {0, 1, ..., и} такому, что 2 < Л0, ставится в соответствие множество У и множество КНФ © , =

= {C1 = Cl у

C d = C| у } (в данном случае

2 2d

©</ = А^(С)). Множество выборок {©^ е {0, ^ ..., п} обозначим через ©.

Фиксируем некоторый SAT-решатель Обозначим через ?(С') время работы (число битовых операций) SAT-решателя ^ на произвольном входе С. Введем в рассмотрение функцию т: © ^ N

т^(©^) = X ?(С).

С'е ©d

Значением данной функции при каждом фиксированном d е {0, 1, ..., и} является суммарное время (число битовых операций) работы SAT-решателя ^ по всем КНФ из ©^.

Следует учитывать, что при некоторых значениях параметра d (например, при d = 0) КНФ из ©^ могут оказаться очень сложными для SAT-решателя, и в этом случае время подсчета соответствующего значения прогнозной функции может превысить разумные границы. Для учета данного факта вводится в рассмотрение специальная функция £(С) = р(т • и), здесь т — число дизъюнктов в КНФ С, а р(0— некоторый полином, степень которого больше 1.

Допустим, что в соответствии с перечисленными правилами построено семейство выборок {©^Ь е {0 1 п} (при фиксированном Л0). Прогнозную функцию определим следующим образом:

T(©d) =

^Ts(©d), 2d > R0,Ts(©d)< g(C), qd

т^(©d), 2d < R0,ts(©d)< g(C),

[<», TS(©d)> g(C).

Запись «Т(©^) = то» означает, что функция не определена на выборке ©^. Рациональное число Т(©^) является прогнозом общего объема битовых операций, требуемого для решения исходной SAT-задачи при декомпозиции КНФ С на семейство

КНФ, порожденное множеством Xd. Тем самым задача прогнозного планирования оптимального по трудоемкости параллельного вычисления сводится к задаче минимизации функции Т на мно-

жестве domT с ©. Знание глобального минимума функции T на domT дает представление о возможности параллельного решения SAT-задачи для КНФ C «за разумное время».

Далее для упрощения рассуждений рассматриваем прогнозные функции описанного типа, в которых объем случайной выборки (когда она осуществляется) есть постоянное число q. Относительно данных прогнозных функций справедлив следующий результат.

Теорема 1. Пусть C — произвольная КНФ над множеством булевых переменных мощности n, состоящая из m дизъюнктов, и пусть {©d}d е {0 j п} —

произвольное семейство выборок КНФ, сформированное согласно перечисленным выше правилам. Для прогнозной функции T: © ^ Q вида (1), в которой объем произвольной случайной выборки есть постоянное число q, справедливы следующие свойства:

1) domT ф 0;

2) глобальный минимум T на domT находится в общем случае за время, ограниченное полиномом от m • n.4

Доказательство см. в Приложении.

4. SAT-ПОДХОД В ЗАДАЧАХ ОБРАЩЕНИЯ ДИСКРЕТНЫХ ФУНКЦИЙ

Постановка задач обращения дискретных функций как SAT-задач приведена в работах [4, 6, 7]. Здесь мы кратко остановимся лишь на основных понятиях и результатах.

Определение (см., например, работу [8]). Класс

3 образован всеми такими алгоритмически вычислимыми семействами тотальных дискретных функций, которые могут быть вычислены МТ-про-граммами с полиномиальной от n вычислительной сложностью. Проблема обращения дискретной функции f семейства f е 3 ставится следующим образом: дано двоичное слово у е range f”, требуется найти такое слово x е {0, 1}”, что f”(x) = у. ♦

Формулы алгебры логики, рассматриваемые как слова над конечными алфавитами, при помощи взаимно-однозначных кодирований могут быть преобразованы в двоичные слова [5]. При этом под объемом логического уравнения понимается длина двоичного слова, кодирующего данное уравнение в некоторой фиксированной кодировке. Далее рассматриваются только «разумные» (в терминологии работы [5]) кодировки.

Следующее утверждение в своей основе аналогично теореме Кука [3], поэтому его доказательство здесь не приводится (достаточно полное доказательство теоремы Кука имеется, например, в работе [5]).

Теорема 2. Рассмотрим произвольное семейство дискретных функций f = {fr}n е N, f е 3. Проблема обращения функций данного семейства за полиномиальное от n время преобразуется в проблему поиска решений логических уравнений вида L(xp ..., xp(n)) = 1, где p(-) — некоторый полином, а формула L(x1? ..., xp(n)) есть КНФ над X = {/1? ..., xp(n)|. Объем двоичных кодировок получаемого при этом семейства КНФ ограничен полиномом от п. ♦

Эффективный (полиномиальный по сложности) переход от достаточно произвольных логических уравнений к формату «КНФ = 1» оказывается возможным благодаря вводу дополнительных логических переменных. В работе [9] описана схема приведения произвольных систем логических уравнений к данному формату, позволяющая гарантировать, что вычисляемый набор x' е {0, 1|n действительно является прообразом у е range fn.

Все сказанное означает, что задача обращения произвольной функции из класса 3 может быть решена следующим образом. Алгоритм вычисления произвольной функции fn семейства f = {fn}n е N, f е 3, преобразуется в логическое уравнение вида L(x1, ..., xp(n)) = 1, в левой части которого находится КНФ над множеством булевых переменных X = {/р ..., xp(n)|. Затем в это уравнение подставляется известный вектор у е range fn. Полученная в результате КНФ C|y является выполнимой, а из выполняющего ее набора можно выделить компоненты вектора x е {0, 1}n такого, что fn(x) = у. Тем самым задача обращения функции fn в точке у е range fn оказывается сведенной к задаче поиска выполняющего набора КНФ C|y.

Успех той или иной технологии всегда должен подтверждаться адекватными тестами. Под адекватностью тестов здесь понимается их аргументированно высокая сложность. Аргументация сложности может состоять в том, что решение тестового примера за приемлемое время означает решение некоторой сложной в вычислительном отношении задачи, например, задачи криптоанализа. Подход к задачам криптоанализа симметричных шифров как к SAT-задачам был развит в работах [6, 10] и получил название «логический криптоанализ». В данной работе мы используем описанную выше параллельную SAT-технологию для решения задач криптоанализа ряда генераторов двоичных последовательностей, «последовательный подход» в отношении которых оказался неэффективным.

Генератор двоичной последовательности (генератор) — это семейство дискретных функций

g = {gnln 6 n вида g„: {0, 1|n ^ {0, 1}*, n е N, g е 3.

Рис. 1. Схема работы суммирующего генератора

Двоичная последовательность, подаваемая на вход генератора, называется инициализирующей. Последовательность, получаемая на выходе генератора, называется выходной последовательностью или ключевым потоком. Алгоритм вычисления функций gn называется порождающим алгоритмом

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

Конъюнктивные нормальные формы, кодирующие алгоритмы генераторов, на практике получаются с помощью специального программного комплекса, в который входят LC-язык и LC-транслятор [11]. Порождающий алгоритм генератора записывается на LC-языке, после чего LC-транслятор переводит его в КНФ. Реализованный на обычном персональном компьютере SAT-подход к криптоанализу оправдал себя применительно к генераторам Геффе и Вольфрама [7] и оказался неэффективным в отношении суммирующего и порогового генераторов.

Суммирующий генератор (рис. 1) впервые был описан в работе Р. Рюппеля [12] (см. также [13]). Он состоит из Я 1 2 регистров сдвига с линейной обратной связью (РСЛОС) [14] и специального суммирующего регистра, называемого далее сумматором. Сумматор представляет собой одномерный массив ячеек памяти размерности [^Я]. В каждый момент времени ґ, ґ є {1, 2, ...}, в ячейках сумматора записана последовательность бит, являющаяся двоичным представлением некоторого натурального числа С,. Начальное заполнение сумматора служит частью секретного ключа. В каждый такт синхронно снимаемые с выходов РСЛОС биты подаются на вход сумматора, где целочисленно складываются с числом С,. Полученное натуральное число обозначим через St. Выходом генератора в момент ґ является младший бит двоичного представления числа £,, т. е. остаток от деления

(13, х13 + х9 + х8 + х2 + 1), (15, х15 + х14 + х12 +

+ х2 + 1), (16, х16 + х14 + х8 + х3 + 1) и (17, х17 +

+ х15 + х13 + х12 + х11 + х10 + 1). Длина инициализирующей последовательности 72 бита. Анализировался фрагмент ключевого потока длиной 150 бит. Результаты успешного криптоанализа данного генератора в открытой литературе нами не обнаружены.

Рис. 2. Схема работы порогового генератора

числа на 2. Двоичное представление частного от деления числа St на 2 образует новое заполнение ячеек сумматора (число С + 1). Для суммирующего генератора на основе двух РСЛОС (сумматор состоит из одной ячейки) известны корреляционные атаки [13]. Для Я 1 3 данный генератор считается довольно стойким, поскольку шифрующее преобразование обладает высокими показателями корреляционной иммунности и линейной сложности.

Параллельный логический криптоанализ был применен к суммирующему генератору на основе

следующих трех РСЛОС: (19, х19 + х5 + х + 1),

(22, х22 + х + 1) и (23, х23 + х15 + х2 + х + 1). Длина инициализирующей последовательности 64 бита. Анализировался фрагмент ключевого потока длиной 180 бит. При постановке задачи криптоанализа данного генератора как SAT-задачи были использованы его канонические уравнения в классе полиномов над GF(2), приведенные в работе [15].

Пороговый генератор (рис. 2) был предложен Дж.О. Брюером в 1984 г. [16], (см. также работу [13]). В каждый момент времени t е {1, 2, ...}, биты, снимаемые синхронно с РСЛОС Я 1 3, подаются на вход мажоритарной функции /, значением которой является бит выходной последовательности, имеющий номер £ Мажоритарная функция выдает бит 1, если среди битов, поступивших ей на вход, большинство составляют единицы, и выдает бит 0 в противном случае. При Я = 3 пороговый генератор представляет собой усиленный вариант генератора Геффе [7, 13]. Полиномиальное представление функции / при Я = 5 [15] имеет следующий вид:

/(х1, х2, х3, х4, х5) =

= х1х2х3 0 х1х2х4 0 х1х2х5 0 х1х3х4 0 х1х3х5 0 х1х4х5 0

0 х2х3х4 0 х2х3х5 0 х2х4х5 0 х3х4х5 0 х1х2х3х4 0 0 х1х2х3х5 0 х1х2х4х5 0 х1х3х4х5 0 х2х3х4х5.

Параллельный логический криптоанализ был применен к пороговому генератору на основе следующих пяти РСЛОС: (11, х11 + х10 +х8 + х3 + 1),

5. ВЫЧИСЛИТЕЛЬНЫЙ ЭКСПЕРИМЕНТ

Описанная параллельная SAT-технология была использована для криптоанализа порогового и суммирующего генераторов с перечисленными выше параметрами. Была выбрана простейшая

стратегия формирования множества Xй — в него включались переменные х1, ..., хй, соответствующие первым й неизвестным компонентам инициализирующей последовательности.

Для проведения вычислительного эксперимента была организована распределенная вычислительная среда (РВС) на основе вычислительного кластера МВС-1000/16. На управляющем узле кластера располагался работающий под ОС Linux сервер РВС с установленными модулями декомпозиции, прогнозирования и анализа результатов. На вычислительных узлах кластера SAT-задачи решались SAT-решателем minisat [17]. Архитектура РВС для решения SAT-задач подробно описана в работе [18].

На рис. 3 и 4 приведены графики оптимизации прогнозных функций для суммирующего и порогового генераторов. Заштрихованные столбцы означают, что для соответствующих значений пара-

Рис. 3. Пример оптимизации прогнозной функции для суммирующего генератора с инициализирующей последовательностью 64 бита и выходом 180 бит

некоторых систем поточного шифрования (суммирующего и порогового генераторов). Описанный подход может быть применен в решении многочисленных комбинаторных проблем, допускающих эффективную сводимость к SAT-задачам. К таковым можно отнести проблемы верификации дискретных управляющих систем, верификацию в программных логиках (model checking), а также различные задачи с криптографическим подтекстом (криптоанализ, верификация протоколов аутентификации и многое другое).

Авторы выражают благодарность И.А. Сидорову и А.Г. Феоктистову за помощь в программной реализации и проведении вычислительного эксперимента.

Рис. 4. Пример оптимизации прогнозной функции для порогового генератора с инициализирующей последовательностью 72 бита и выходом 150 бит

метра й вычисление прогнозной функции было прервано, так как превышалось текущее пороговое значение (см. § 3).

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

ЗАКЛЮЧЕНИЕ

Представлена новая технология решения SAT-задач, базирующаяся на концепции крупноблочного параллелизма. В основе технологии лежит процедура прогнозирования оптимального по трудоемкости вычисления с помощью специальной прогнозной функции. Для класса прогнозных функций, используемого в работе, приведен алгоритм решения соответствующей оптимизационной задачи полиномиальной сложности. Практическая ценность технологии подтверждена аргументированно сложными тестами — технология успешно апробирована на задачах криптоанализа

ПРИЛОЖЕНИЕ

Доказательство теоремы 1.

Найдем значение прогнозной функции при d = п. Поскольку Хп = X, то для любого вектора У є {0, 1}” SAT-задача применительно к КНФ С|7 заключается в подстановке компонент вектора У в С. Данная процедура требует 0(п • т) битовых операций. Но тогда вычисление величины 1 у ^С') требует в общем слу-

9 сувя

чае времени 0(п • т) (9 — не зависящая от входа константа). Умножение полученного числа на 2” потребует еще О(п) битовых операций. Таким образом, общая сложность вычисления т5(п) и Т(©п) ограничена величиной 0(п • т). Данный факт говорит о том, что функция Т определена хотя бы при d = п.

Далее мы описываем алгоритм итеративного улучшения значений функции Т на множестве domT, являющийся алгоритмом типа «динамического программирования».

Через і будем обозначать номер итерации алгоритма. Результатом начальной (і = 0) итерации алгоритма являются значения т^(©п) и Т(©п). Основная идея алгоритма состоит в том, что целесообразность продолжения вычислений на итерации с номером і, і є {1, 2, ..., п}, определяется на основе «пороговых» значений функций т5, Т, найденных на предыдущих итерациях. Например, если обозначить через т0 значение т^(©п) и пе-

Результаты криптоанализа суммирующего и порогового генераторов

Вид генератора Время решения на однопроцессорном персональном компьютере Прогноз времени решения на МВС 1000/16 с найденными параметрами декомпозиции Реальное время решения на МВС 1000/16 с найденными параметрами декомпозиции

Суммирующий (инициализирующая последовательность 64 бита, выход 180 бит) 21...23 ч Около 1 ч 1...1,5 ч

Пороговый (инициализирующая последовательность 72 бита, выход 150 бит) Более 28 сут 10...30 мин 1...1,5 ч

рейти к следующей итерации, то неравенство т5(©п _ 1) >

> 2- т( при 2” - 1 > означает, что T(&n - 1) > Д©п). Очевидно, что в этом случае глобальный минимум T на domT заведомо не может достигаться при d = и — 1.

Тем самым справедливость неравенства тД©” _ 1) > 2- т( означает, что соответствующую итерацию можно прервать и перейти к следующей, оставив текущее пороговое значение функции T неизменным. Таким образом, на каждой итерации с номером I е {1, ..., и} происходит сравнение величины т^(©п _ ) с некоторым теку-

I -1

щим пороговым значением т* , подсчитанным на

предыдущей итерации. По аналогии с T вводим следующую функцию:

т*(, = Ц©”),

T‘ =

^n - І .

т*, 2(n - г) > ^0,т* < g(С),

і т

< < g( С), i є {1, ..., n},

да,т* > g(С).

Числа T*, i є {О, 1, ..., n}, определяются из следую-

щих рекуррентных соотношений:

т0 = т5(0п),

тіп{т5(п - і), 2т*-1, g(С)}, 2(п-11 > Я0; тіп {т5(п - і), ТІ-1, g(С)}, 2(п-1} < Я0, і є {1, ..., п}.

Величина Т* представляет собой пороговое значение прогнозной функции при фиксированном і є {0, 1, ... , п}.

Результатом работы алгоритма является число d* = п — і*. Здесь і* — такой наименьший номер, что,

ггіІ* • \ •

во-первых, Т* определено, а во вторых, для всех 7 > і*

либо Т* > Т**, либо Т* = го. Несложно видеть, что при выполнении данных условий (©^*, Т(©^*)) — «точка» глобального минимума функции Т на множестве

domT. Для подсчета т*, і є {0, 1, ..., п}, достаточно отслеживать суммарное время работы SAT-решателя £ на соответствующей выборке. При каждом і є {0, 1, ..., п} данное время не должно превосходить некоторой полиномиальной границы (иначе функция не определена), таким образом, сложность процедуры поиска глобального минимума Т на domT в общем случае ограничена полиномом от т • п. Теорема доказана.

2. Яблонский С.В. Введение в дискретную математику. — М., Наука, 1986. — 384 с.

3. 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].

4. Семенов А.А., Беспалов Д.В. Технологии решения многомерных задач логического поиска // Вестник Томского гос. ун-та / Приложение. — 2005. — № 14. — С. 61—73.

5. Гэри М., Джонсон Д. Вычислительные машины и труднорешаемые задачи. — М.: Мир, 1982. — 416 с.

6. Семенов А.А., Буранов Е.В. Погружение задачи криптоанализа симметричных шифров в пропозициональную логику // Вычислительные технологии (совместный выпуск с журн. «Региональный вестник Востока»). — 2003. — Т. 8. — С. 118—126.

7. Семенов А.А., Ушаков А.А., Буранов Е.В. Эвристический поиск в криптоанализе генераторов двоичных последовательностей // Вестник Томского гос. ун-та. — Приложение. — 2006. — № 17. — С. 127—133.

8. Семенов А.А. О сложности обращения дискретных функций из одного класса// Дискретный анализ и исследование операций. — 2004. — Т. 11. — № 4. — С. 44—55.

9. Семенов А.А. Логико-эвристический подход в криптоанализе генераторов двоичных последовательностей // Труды Междунар. науч. конф. ПАВТ’07, Челябинск, ЮУрГУ, 2007. — Т. 1. — C. 170—180.

10. Massacci F., Marraro L. Logical Cryptoanalysis as a SAT Problem: the Encoding of the Data Encryption Standard // Preprint. Dipartimento di Imformatica e Sistemistica, Universita di Roma «La Sapienza», 1999.

11. Буранов Е.В. Программная трансляция процедур логического криптоанализа симметричных шифров // Вестник Томского гос. ун-та / Приложение. — 2004. — № 9 (1). — С. 60—65.

12. Rueppel R.A. Correlation immunity and the summation combiner / in Lecture Notes in Computer Science 218; Advances in Cryptology: Proc. Crypto'85, H. C. Williams Ed., Santa Barbara, CA, Aug. 18—22, 1985, p. 260—272. — Berlin: Spring-er-Verlag, 1986.

13. Поточные шифры. Результаты зарубежной открытой криптологии. — М.: Мир, 1997. — 389 с.

14. Menezes A., Van Oorschot P., Vanstone S. Handbook of Applied Cryptography. — CRC Press, 1996. — 657 c.

15. Агибалов Г.П. Логические уравнения в криптоанализе генераторов ключевого потока // Вестник Томского гос. ун-та // Приложение. — 2003. — № 6.— С. 31—41.

16. Bruer J.O. On pseudo random sequences as crypto generators // Proc. Int. Zurich Seminar on Digital Communication. — Switzerland, 1984.

17. MiniSat: (http://www.cs.chalmers.se/Cs/Research/Formal-Methods/MiniSat/MiniSat.html).

18. Заикин О.С., Сидоров И.А. Технология крупноблочного распараллеливания в криптоанализе некоторых генераторов двоичных последовательностей // Труды Междунар. науч. конф. ПАВТ'07, Челябинск, юУрГУ, 2007. — Т. 1. — C. 158—169.

*

ЛИТЕРАТУРА

1. Фаддеев Д.К., Фаддеева В.Н. Параллельные вычисления линейной алгебры // Кибернетика. — 1977. — № 6. — С. 28—40.

8 (3952) 51-15-08,

e-mail: oleg.zaikin@icc.ru, biclop@rambler.ru

Статья представлена к публикации членом редколлегии С.Н. Васильевым.