Научная статья на тему 'Реализация процедур прогнозирования трудоемкости параллельного решения SAT-задач'

Реализация процедур прогнозирования трудоемкости параллельного решения SAT-задач Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
197
60
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
SAT-ЗАДАЧИ / ОБРАЩЕНИЕ ДИСКРЕТНЫХ ФУНКЦИЙ / ПРОГНОЗИРОВАНИЕ ТРУДОЕМКОСТИ / ПАРАЛЛЕЛЬНЫЙ SAT-РЕШАТЕЛЬ / НЕБЛОКИРУЮЩИЕ ОБМЕНЫ / SAT-TASKS / REVERSAL OF THE DISCRETE FUNCTIONS / LABOR INPUT FORECASTING / PARALLEL SAT-RESHATEL / NON-BLOCKING EXCHANGES

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Заикин Олег Сергеевич

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Implementation of predicting procedures of SAT-problems parallel solving laboriousness

Coarse-grained parallel technology of SAT-problems solving (problems of searching solutions of equations in the form of «CNF = 1», where CNF is conjunctive normal form) in distributed computational environment was developed and implemented as MPI-program. In the context of the given technology a decomposition of initial SAT-problem to a family of subproblems is constructed. Statistical predicting procedure of SAT-problems parallel solving laboriousness allows to determine optimal (by prediction) parameters of decomposition. Using of decomposition parameters, which were founded by means of predicting procedures, allows to successfully solve SAT-problems, which code problems of some cryptographic discrete functions inversion.

Текст научной работы на тему «Реализация процедур прогнозирования трудоемкости параллельного решения SAT-задач»

Ъ&ошьыо QjrAQngj

Уфа : УГАТУ, 2010_Sri_Sri_Т. 14, №4(39). С. 210-220

УПРАВЛЕНИЕ, ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА И ИНФОРМАТИКА

УДК 519.7

О. С. Заикин

РЕАЛИЗАЦИЯ ПРОЦЕДУР ПРОГНОЗИРОВАНИЯ ТРУДОЕМКОСТИ ПАРАЛЛЕЛЬНОГО РЕШЕНИЯ SAT-ЗАДАЧ

Разработана и реализована в виде MPI-программы крупноблочная параллельная технология решения SAT-задач (задач поиска решений уравнений вида «КНФ = 1», где КНФ - конъюнктивная нормальная форма) в распределенных вычислительных средах. В рамках данной технологии осуществляется декомпозиция исходной SAT-задачи на семейство подзадач. Используется процедура статистического прогнозирования трудоемкости параллельного решения SAT-задач, которая позволяет определить оптимальные (по прогнозу) параметры декомпозиции. Использование параметров декомпозиции, найденных с помощью процедур прогнозирования, позволяет успешно решать SAT-задачи, кодирующие задачи обращения ряда криптографических дискретных функций. SAT-задачи; обращение дискретных функций; прогнозирование трудоемкости; параллельный SAT-решатель; неблокирующие обмены

Многие значимые в практическом отношении комбинаторные проблемы допускают эффективные сводимости к задачам поиска решений булевых уравнений вида «КНФ = 1» (КНФ - конъюнктивная нормальная форма) (см. [1]). Задачи поиска решений таких уравнений называются 8АТ-задачами, для их решения используются специальные программные комплексы, называемые 8АТ-решателями (см. [2]). В последнее время высокими темпами развиваются параллельные 8АТ-решатели (см., например, [3] и [4]). Как правило, в таких 8АТ-решателях используется концепция мелкозернистого параллелизма (см. [5]). Такой поход вполне оправдывает себя на многих классах тестов, например для КНФ, кодирующих задачи верификации в микроэлектронике (см. [6]). Применительно же к задачам обращения дискретных функций (например, к задачам криптоанализа поточных систем шифрования) высокую эффективность показала представленная в серии работ [7-11] крупноблочная параллельная технология решения 8АТ-задач в распределенных вычислительных средах (РВС). В рамках данной технологии осуществляется декомпозиция исходной 8АТ-задачи на семейство подзадач. Наилучшие результаты показали различные варианты декомпозиции по перемен-

Контактная информация: (3952) 45-30-54 Статья рекомендована к публикации программным комитетом международной научной конференции «Параллельные вычислительные технологии-2010» Работа выполнена при поддержке гранта "Лавренть-евский конкурс молодежных проектов СО РАН 20102011"

ным, кодирующим вход дискретной функции, задачу обращения которой требуется решить. Для определения наилучших (по прогнозу) параметров декомпозиции используется процедура прогнозирования трудоемкости параллельного решения SAT-задач. Каждому варианту значений параметров декомпозиции соответствует случайная выборка SAT-задач. Прогноз заведомо быстро вычисляется для одной из выборок, затем он итеративно улучшается при обработке остальных выборок. Решение некоторых SAT-задач может быть прервано при превышении порогового значения. Изначально данная технология была реализована в виде пакета прикладных программ (ППП) D-SAT [12], который функционирует под управлением инструментального комплекса DISCOMP (см. [10]). Функциональное наполнение ППП D-SAT включает процедуры решения SAT-задач и процедуры прогнозирования трудоемкости решения SAT-задач. Дальнейшим развитием данной параллельной технологии стала ее реализация в виде MPI-программы. Подробности данной реализации рассматриваются в настоящей статье.

В MPI-программе в режиме прогнозирования все SAT-задачи по всем случайным выборкам объединяются в единый параллельный список. В результате достигается равномерная загрузка РВС, но усложняется обработка данных. Для своевременного прерывания решений SAT-задач используются неблокирующие обмены (см. [13]), что позволяют каждому процессу эффективно использовать свое рабочее время: управляющий процесс занимается отправкой заданий и обработкой решений, вычислительные процессы решают SAT-задачи. В данной работе впервые приведены результаты параллельного логического криптоанализа сумми-

рующего генератора на основе четырех регистров сдвига с линейной обратной связью. Также приведены улучшенные результаты логического криптоанализа ряда других генераторов.

1. КРУПНОБЛОЧНАЯ ПАРАЛЛЕЛЬНАЯ ТЕХНОЛОГИЯ РЕШЕНИЯ 8АТ-ЗАДАЧ

Далее приведено краткое описание крупноблочной параллельной технологии решения 8ЛТ-задач, представленной в работах [7-9].

Под распределенной вычислительной средой (РВС) понимается совокупность вычислительных единиц, объединенных коммуникационной сетью. В качестве вычислительной единицы РВС выступает программно-аппаратный ресурс, требуемый для решения некоторой вычислительной задачи. В качестве вычислительной единицы далее рассматривается одно ядро процессора, часть общей оперативной памяти и памяти жесткого диска, а также системное программное обеспечение. Рассматривается произвольная конъюнктивная нормальная форма (КНФ) С над множеством булевых переменных X = {хь х2,..., хп}. ВX выбирается некоторое подмножество {х,,...,х, }, |/1 ,...,1а }с{1,...,п},

йе {1,...,п} . Множество X' = {х; ,...,х{ } называется декомпозиционным множеством, а й - размерностью декомпозиционного множества. Дополнительно полагается, что при й = 0 декомпозиционное множество пусто. Декомпозиционному множеству X ': |Х '| = й, й > 0 ставится в соответствие множество У(X ') = {Уь...,Ук}, состоящее из к = 2й различных двоичных векторов длины й, каждый из которых является набором значений переменных из множества X '. Декомпозиционным семейством, порожденным из КНФ С множеством X ', называется множество DX,(С) КНФ, полученных подстановками в С векторов У,, у е {1,. ,к}:

Л^ (С) = С1 = С\Г1,...,Ск = С\Г1}, Д0(С )=={С}. КНФ, полученная подстановкой в С вектора У,, обозначается через С, = С .

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

одна КНФ семейства ДX ' (С). Таким образом, решение исходной 8ЛТ-задачи для КНФ С сводится к решению, вообще говоря, к = 2й 8ЛТ-задач для КНФ Сь...,Ск соответственно. Если исходная КНФ С выполнима, то по набору, выполняющему некоторую КНФ семейства ДX' (С), можно эффективно перейти к набору, выполняющему исходную КНФ С. Пусть имеется РВС, состоящая из г е N вычислительных единиц. Возможны следующие два случая.

1) к < г - число КНФ в семействе ДX' (С) не превосходит числа вычислительных единиц РВС. В этом случае для каждой КНФ из семейства ДX' (С) 8ЛТ-задача решается на отдельной вычислительной единице РВС.

2) к > г - число КНФ в семействе ДX ' (С) больше числа вычислительных единиц РВС.

Крупноблочное распараллеливание 8ЛТ-задач для случая к < г рассматривается, например, в работе [14]. Для случая к > г предлагается следующая процедура.

Процедура 1. Поставим в соответствие каждому вектору У, у е {1,...,к} натуральное число Ыу, двоичным представлением которого является вектор У,. Данное число назовем натуральным индексом КНФ С,. Семейство КНФ ДX. (С) упорядочивается некоторым образом (например, по возрастанию натуральных индексов соответствующих векторов). Произвольная КНФ из ДX' (С) называется связанной, если в рассматриваемый момент времени 8ЛТ-задача для нее либо уже решена, либо решается на некоторой вычислительной единице РВС. Остальные КНФ называются свободными. Выбираются первые г КНФ Сь...,Сг из семейства ДX > (С). Для каждой из выбранных КНФ Сь...,Сг решается 8ЛТ-задача на отдельной вычислительной единице РВС. Как только освобождается некоторая из г вычислительных единиц РВС, на ней запускается процедура решения 8ЛТ-задачи для первой (в смысле введенного выше порядка) свободной КНФ семейства ДX' (С). Данный процесс продолжается до тех пор, пока не будет найден выполняющий набор некоторой КНФ из ДX ' (С), либо пока не будет доказана невыполнимость всех КНФ из ДX ' (С). Описанная процедура решает 8ЛТ-задачу для произвольной КНФ С корректно. Пусть выбрано некоторое декомпозиционное множество X'. Представляет интерес построение такого X~ с X', использование которого в качестве декомпозиционного множества делает декомпозицию более эффективной, чем на основе X '. Данная проблема весьма нетривиальна. Если мощность X мала, то 8ЛТ-задачи, получаемые при декомпозиции КНФ, как правило, весьма сложны. Если мощность X~

велика, то велика и мощность декомпозиционного семейства Д (С), и в этом случае простота 8ЛТ-задач КНФ данного семейства мало что дает. Для решения данной задачи предлагается следующая процедура статистического прогнозирования (см. [7]).

Процедура 2. Используется натуральное число Д0, от значения которого зависит, имеется необходимость формирования случайной выборки или нет. Например, за Я0 можно принять число вычислительных единиц в РВС. Если при

некотором Х~ с Х',\Х~ |= 1 мощность семейства Д Х~ (С) слишком велика, то представление

0 времени соответствующего параллельного вычисления можно составить на основе знания среднего времени решения 8ЛТ-задач для серии КНФ, выбранных случайным образом из ДХ~ (С). Через обозначаем объем такой выборки. Через У1 обозначается множество, образованное всеми различными векторами значений переменных из Х~ : \ Х~ = 1. Каждому значению параметра 1 е{0,1,...,\Х'\} такому, что 21 > Л0, ставится в соответствие множество векторов }, выбираемых из У(Х') в соответствии с равномерным распределением, а также выборка КНФ 01 = = {С. = С\У ,...,С= С\У }. Каждому значению

параметра 1 е {0,1,..., \ Х'\} такому, что 21 < Л0, ставится в соответствие множество У(Х') и множество КНФ 01 =ДХ,(С) . Множество выборок {01}1е{01 Х'\} обозначается через 0.

Фиксируется 8ЛТ-решатель 5". Обозначим через ') время работы 8ЛТ-решателя 5 на произвольном входе С'. Вводится в рассмотрение функция

т5: 0®Н, (01 )= ^Ф),

С'евй

значением которой при каждом фиксированном

1 е {0,1,..., \ Х'\} является суммарное время работы 8ЛТ-решателя 5 по всем КНФ из 01. При некоторых значениях параметра 1 (например, при 1=0) КНФ из 01 могут оказаться очень сложными для 8ЛТ-решателя, и в этом случае время подсчета соответствующего значения прогнозной функции может превысить разумные границы. Для учета данного факта вводится в рассмотрение специальная функция g(C) = рх х (т п), здесь т - число дизъюнктов в КНФ С, а р(-) - некоторый полином, степень которого больше 1. Допустим, что в соответствии с пере-

численными правилами построено семейство выборок 0 = {01 }1е{01 Х'} (при фиксированном Л0). Прогнозная функция определяется следующим образом.

Т (01 ) =

(01 ),21 > (01 )< g(C);

41

*8 (01 ),21 < (01 )< g(C); ¥, (01 )> g(C).

51

Запись «Т(01) = да» означает, что функция не определена на выборке 01. Рациональное число Т(01) является прогнозом времени, требуемого для решения исходной 8ЛТ-задачи при декомпозиции КНФ С на семейство КНФ, порожденное множеством Х1. Тем самым задача прогнозного планирования оптимального по трудоемкости параллельного вычисления сводится к задаче минимизации функции Т на множестве ^шТ с 0. Идея оптимизации функции Т состоит в том, что значение Т(0\Х'\) вычисляется

заведомо эффективно. Затем значение Т итеративно улучшается при обработке остальных выборок из ёош Т. Если время обработки выборки превышает пороговое значение, обработка данной выборки прерывается. Результатом работы описанной процедуры является наилучшее (по прогнозу) значение 1* е ^шТ мощности декомпозиционного множества Х ', а также соответствующее прогнозное время Т(0Д). Эффективность процедуры 1 существенным образом зависит от структуры декомпозиционного множества. Выбор декомпозиционного множества -это отдельная нетривиальная проблема. Некоторые общие стратегии построения декомпозиционных множеств с ориентацией на задачи криптоанализа генераторов ключевого потока были рассмотрены в [10].

2. ОПИСАНИЕ МР1-ПРОГРАММЫ РБ-8АТ

Приведенная в разделе 1 технология была реализована в виде МР1-программы РБ-8ЛТ, которую можно также назвать параллельным 8ЛТ-решателем. РБ^ЛТ может функционировать в режиме решения 8ЛТ-задачи (см. раздел 2.1) и в режиме прогнозирования трудоемкости решения 8ЛТ-задачи (см. раздел 2.2). Следует особо отметить принципиальные различия данных, обрабатываемых в указанных режимах. Если в режиме решения заданиями являются списки 8ЛТ-задач, то в режиме прогнозирования заданиями являются конкретные 8ЛТ-задачи.

Рис. 1. Пример выполнения этапа 2 режима решения SAT-задачи

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

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

Все сказанное позволяет выделить следующие классы заданий:

• свободные задания - задания, процесс решения которых на текущий момент не был запущен;

• связанные незавершенные задания - задания, которые решаются на текущий момент;

• связанные завершенные задания - задания, которые на текущий момент уже решены.

2.1. Реализация режима решения SAT-задачи

Данный режим основан на процедуре 1, приведенной в разделе 1. Вычисления разделены на три этапа.

Этап 1. PD-SAT запущен на n процессах: процесс номер 1 управляющий, процессы с номерами 2,...,n - вычислительные. Управляющий

процесс по входным данным формирует список заданий, вычислительные процессы при этом простаивают. Число заданий В равно ближайшей справа степени двойки от числа (п - 1)С. Здесь С - константа, влияющая на загрузку вычислительных процессов. Данная константа определяется эмпирически; в вычислительных экспериментах, описанных в разделе 3, использовалась С = 4.

Пусть, например, дана РВС, состоящая из четырех вычислительных единиц. В МР1-программе один управляющий процесс и три вычислительных. Пусть С = 2. В соответствии со сказанным выше управляющий процесс сгенерирует В = 8 заданий.

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

Пример: 1 управляющий процесс, 3 вычислительных процесса, 8 заданий. Схема выполнения второго этапа для данного примера приведена на рис. 1, управляющий процесс обозначен «УП», вычислительные - «ВП».

Первые два этапа являются подготовительными, выполняются очень быстро, и время их выполнения не вносит значительного вклада в общее время работы.

Этап 3. После выполнения этапов 1-2 управляющий процесс переходит в состояние ожидания решений заданий с вычислительных процессов. Если на управляющий процесс приходит ответ «Ц^ЛТ», то задание, ответ на которое был прислан, становится связанным за-

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

В этапах 1-3 используются только блокирующие функции обмена MPI_Send и MPI_Recv (см. [15]). Безусловно, приведенная схема решения проста и присуща многим задачам, допускающим крупноблочное распараллеливание, но ее описание полезно для понимания работы PD-SAT в режиме прогнозирования (раздел 2.2).

2.2. Реализация режима прогнозирования трудоемкости параллельного решения SAT-задачи

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

Далее используются обозначения, введенные в работе [11]. Через dmin и dmax обозначаются натуральные числа, определяющие соответственно нижнюю и верхнюю границы интервала, в котором изменяются значения d, где d - размерность декомпозиционного множества (см. раздел 1). Через q обозначается жестко заданное значение, определяющее число КНФ в произвольной случайной выборке, а через r - число вычислительных единиц РВС, относительно которого строится прогноз. В режиме прогнозирования на вход PD-SAT подаются параметры dmin, dmax, q, r.

Этап 1. Как и в режиме решения SAT-задачи, PD-SAT использует n процессов. На управляющем процессе формируется список заданий. Для каждого значения

dе {dmm,...,dmax } строится отдельная выборка

заданий. В случае 2d > q в выборку заданий включаются SAT-задачи для q случайным образом выбранных КНФ из декомпозиционного семейства. Если 2d < q, то в выборку включаются SAT-задачи для всех КНФ из декомпозиционного семейства. Задания из всех выборок объединяются в единый параллельный список, притом первыми в списке располагаются задания из выборки, полученной при d = dmax. Далее зада-

ния располагаются по убыванию значения d, последними в списке расположены задания из выборки, полученной при d = dmin.

Этап 2. Подобно режиму решения SAT-задачи, на данном этапе с управляющего процесса отсылаются первые n - 1 свободных заданий из списка: 7-е задание (7 = 1,., n - 1) отсылается на вычислительный процесс с номером 7 + 1.

Этап 3. На данном этапе осуществляется параллельная обработка различных выборок заданий с целью построения прогнозов трудоемкости решения исходной SAT-задачи при использовании соответствующей декомпозиции. Основной на данном этапе является процедура прогнозирования GetPredict, работающая на управляющем процессе. Данная процедура, во-первых, определяет параметры лучшего на текущий момент прогноза трудоемкости решения исходной SAT-задачи. Во-вторых, она определяет, обработка каких выборок заданий должна быть прервана, ввиду превышения соответствующими процессами текущих ограничений на время работы. Процедура GetPredict запускается через малые временные интервалы (на практике использовался двухсекундный интервал). На входе GetPredict получает следующие массивы:

• cnf_real_time_arr (в данном массиве содержится получаемая от вычислительных процессов информация о времени обработки связанных завершенных заданий);

• cnf_appr_time_arr (данный массив строится на управляющем процессе и содержит информацию о времени обработки связанных незавершенных заданий);

• cnf_status_arr - массив статусов заданий;

• set_status_arr - массив статусов выборок заданий.

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

В текущий момент статус задания может принимать следующие значения:

• WAIT, если задание свободное или связанное незавершенное;

• STOP, если задание находится в выборке, обработка которой прерывается. Задания, получившие статус STOP (в том числе и свободные на текущий момент), в дальнейшем не обрабатываются;

• UNSAT, если задание связанное завершенное и соответствующая ему КНФ оказалась невыполнимой;

• SAT, если задание связанное завершенное и соответствующая ему КНФ оказалась выполнимой.

В текущий момент статус выборки заданий может принимать следующие значения:

• WAIT, если в выборке имеются задания со статусом WAIT, но нет ни одного задания со статусом SAT;

• SAT, если хотя бы одно задание из выборки получило статус SAT;

• STOP, если счет для выборки прерван;

• UNSAT, если все задания из выборки имеют статус UNSAT.

На выходе GetPredict выдает измененные массивы cnf_appr_time_arr, cnf_status_arr, set_status_arr, а также массив cnf_to_stop_arr, содержащий номера вычислительных процессов, на которых должна быть прервана обработка текущих заданий (данный массив может быть пустым). Прерывание обработки заданий достигается за счет отправки с управляющего процесса неблокирующих сообщений (используются функции MPI_Isend) о прерывании на вычислительные процессы с номерами из массива cnf_to_stop_arr (если данный массив не пуст).

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

Между периодическими запусками процедуры прогнозирования управляющий процесс переходит в состояние ожидания ответов от вычислительных. Если от вычислительного процесса присылается ответ «UNSAT», на приславший этот ответ вычислительный процесс отправляется очередное свободное задание из списка, время решения SAT-задачи заносится в массив cnf_real_time_arr. Процедура прогнозирования завершает свою работу, если управляющий процесс получил ответ «SAT» (в этом случае SAT-задача для исходной КНФ решена в режиме прогнозирования, исходная КНФ выполнима) или если для всех заданий получены ответы «UNSAT».

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

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

В PD-SAT используются следующие SAT-решатели, основой которых является известный решатель Minisat (см. [16]):

• dminisat, основанный на MiniSat-C_v1.14.1. (версия на языке C), оптимизирован для решения SAT-задач, кодирующих задачи обращения дискретных функций (см. [10]);

• minisat2, без существенных изменений;

• minisat2_mod, основан на minisat2, внесены изменения в ключевые параметры-константы, добавлено увеличение активности ядровых переменных.

Изначально SAT-решатели семейства Minisat предназначены только для работы под Unix-подобными операционными системами (ОС). В исходный код всех используемых в PD-SAT SAT-решателей были внесены изменения, обеспечивающие платформонезависимость (в смысле переносимости на уровне исходного кода, см. [17]). Тем самым, PD-SAT может функционировать как под управлением Unix-подобных ОС, так и под управлением ОС семейства Windows.

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

В данном разделе приведены результаты криптоанализа ряда генераторов ключевого потока, полученных, в том числе, с использованием программы PD-SAT.

Последовательный логический криптоанализ, реализованный на обычном персональном компьютере (ПК), оправдал себя применительно к генераторам Геффе и Вольфрама (см. [18],

[19]). Применение комплекса Тга^Л^ (см. [20]) позволило получить более экономные КНФ-представления ряда криптографических алгоритмов в сравнении с полученными ранее посредством ЬС-комплекса (см. [21]). Данный факт, а также адаптация 8ЛТ-решателей к задачам обращения дискретных функций (см. [10]), позволили осуществить последовательный логический криптоанализ суммирующего генератора (см. [22], [23], [24]) на основе трех регистров сдвига с линейной обратной связью (РСЛОС), задаваемых следующими полиномами: X19 + X18 + X17 + X14 + 1; X22 + X21 + 1; X23 + + X22 + X21 + X + 1. Длина инициализирующей последовательности составляет 66 бит (64 бита - начальное заполнение РСЛОС 1-3 и 2 бита -начальное заполнение регистров сумматора), анализировался фрагмент ключевого потока длиной 180 бит. В табл. 1 приведены результаты последовательного логического криптоанализа суммирующего генератора данной конфигурации для всех трех используемых в РБ^ЛТ 8ЛТ-решателей (см. раздел 2).

Таблица 1

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Результаты последовательного логического криптоанализа 66-битного суммирующего генератора на основе трех РСЛОС (серия тестов)

SAT- Мин. Макс. Среднее

реша- время время время

тель решения решения решения

minisat2 1 мин. 4 ч. 40 мин. 1 ч. 17 мин.

minisat2 mod 4 мин. 1 ч. 30 мин. 58 мин.

dminisat 21 мин. 2 ч. 37 мин. 2 ч. 51 мин.

Несмотря на все сказанное, в отношении перечисленных ниже генераторов (см. [24]) последовательный логический криптоанализ по-прежнему неэффективен.

72-битный пороговый на основе пяти РСЛОС, задаваемых следующими полиномами: X11 + X9 + X4 + X2 + 1; X13 + X4 + X3 + X + 1; X15 + + X5 + X19 + X4 + X2 + 1; X16 + X6 + X4 + X + 1; X17 + X6 + X4 + X2 + 1. Анализировался фрагмент ключевого потока длиной 150 бит. Размер соответствующих КНФ: 972 переменных, 15000 дизъюнктов.

80-битный пороговый на основе пяти РСЛОС, задаваемых следующими полиномами: X13 + X10 + X8 + X5 + 1; X15 + X13 + X3 + X + 1; X16 + X13 + X8 + X2 + 1; X17 + X6 + X4 + X2 + 1; X19 + X18 + X17 + X14 + 1. Анализировался фраг-

мент ключевого потока длиной 150 бит. Размер КНФ: 980 переменных, 15000 дизъюнктов.

63-битный суммирующий на основе четырех РСЛОС, задаваемых следующими полиномами: X13 + X4 + X3 + X + 1; X15 + X5 + X4 + X2 + 1; X16 + X6 + X4 + X + 1; X17 + X6 + X4 + X2 + 1. Анализировался фрагмент ключевого потока длиной 180 бит. Размер КНФ: 1683 переменных, 19266 дизъюнктов.

Для параллельного логического криптоанализа перечисленных генераторов была использована описанная в разделе 2 MPI-программа PD-SAT. Вычислительные эксперименты осуществлялись на кластере Blackford Multicore ИДСТУ СО РАН (см. [25]), который имеет следующие основные характеристики: 20 вычислительных узлов; 40 четырехъядерных процессоров Intel Xeon Quad-Core E5345 2.33 GHz; пиковая производительность - 1,493 TFlops; наивысшая производительность по Linpack - 924,4 GFlops; интерконнект 2 x Gigabit Ethernet; ОС Gentoo Linux.

При проведении вычислительных экспериментов кластер Blackford Multicore рассматривался как РВС (далее «РВС Blackford»), вычислительная единица которой состоит из одного ядра процессора Intel Xeon Quad-Core E5345 2,33 GHz, общей оперативной памяти и жесткого диска. В целях единообразного представления далее приводятся сравнительные результаты последовательного решения SAT-задачи на одной вычислительной единице РВС Blackford и результаты параллельного решения SAT-задачи при помощи программы PD-SAT в данной РВС. При параллельном решении SAT-задач, кодирующих криптоанализ 63-битного суммирующего генератора на основе четырех РСЛОС, использовались 129 вычислительных единиц РВС Blackford. Для остальных генераторов использовались 72 вычислительные единицы. Для каждого генератора представлены примеры оптимизации прогнозной функции (см. рис. 2-4), полученные при использовании в PD-SAT SAT-решателя dminisat (он оказался лучшим по прогнозу среди SAT-решателей). Заштрихованные сеткой столбцы означают, что соответствующие вычисления прогнозной функции были прерваны из-за превышения текущего порогового значения (см. раздел 1).

9000 п

8000

6000

<5 5000

2 4000

3 зэоо

X

о о.

2000

О 1 г 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 13 19 20 21 22 23 24 25 26 Мощность декомпозиционного множества

Рис. 2. Пример оптимизации прогнозной функции для 72-битного порогового генератора

180000 п

160000

о а

с

140000

5 100000

80000

60000

40000

20000

0 -

0 12345 5 78 0 10 1112 13 1415 16 17 10 19 20 2122 23 24 25 26 27 28 20 30 Мощность декомпозиционного множества

Рис. 3. Пример оптимизации прогнозной функции для 80-битного порогового генератора (один тест)

160000

120000

о 100000

80000

60000

40000

3-

0123456789 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Мощность декомпозиционного множества

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

четырех РСЛОС (один тест)

Таблица 2

Результаты прогнозирования

БЛТ-решатель ш^а!2 ш^а!2 шоё ёшшэа!

Пороговый, 5 РСЛОС, 72 бита, 72 единицы РВС 7 мин. 38 с. 13 переменных 8 мин. 17 с. 16 переменных 6 мин. 55 с. 15 переменных

Пороговый, 5 РСЛОС, 80 бит, 72 единицы РВС 4 ч. 20 мин. 14 переменных 4 ч. 9 мин. 24 переменных 4 ч. 4 мин. 26 переменных

Суммирующий, 4 РСЛОС, 63 бита, 129 единиц РВС 42 ч. 4 мин. 28 переменных 14 ч. 18 мин. 25 переменных 13 ч. 9 мин. 24 переменных

Таблица 3

Результаты криптоанализа некоторых генераторов (серия тестов)

Время параллельногорешения Время последовательного решения

Мин. Макс. Среднее

Пороговый, 5 РСЛОС, 72 бита, 72 единицы РВС

3 мин. 57 сек. 13 мин. 4 сек. 6 мин. 29 сек. > 1 суток (вычисление прервано)

Пороговый, 5 РСЛОС, 80 бит, 72 единицы РВС

34 мин. 3 ч. 17 мин. 1 ч. 34 мин. > 1 суток (вычисление прервано)

Суммирующий, 4 РСЛОС, 63 бита, 129 единиц РВС

12 мин. 5 ч. 2 ч. 6 мин. > 2 суток (вычисление прервано)

В табл. 2 приведены результаты прогнозирования трудоемкости параллельного логического криптоанализа рассматриваемых генераторов и соответствующие прогнозу параметры декомпозиции. С использованием параметров декомпозиции, найденных при помощи процедур прогнозирования (см. табл. 2), осуществлен криптоанализ перечисленных генераторов, результаты приведены в табл. 3.

ЗАКЛЮЧЕНИЕ

В работе представлена реализация крупноблочной параллельной технологии решения SAT-задач в виде MPI-программы PD-SAT.

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

На серии численных экспериментов продемонстрировано успешное использование PD-SAT в решении задач логического криптоанализа ряда поточных систем шифрования, последовательный логический криптоанализ в отношении которых не дал приемлемых результатов.

Предполагается дальнейшее развитие представленной в работе технологии и ее применение в параллельном логическом криптоанализе других систем шифрования.

Автор благодарит Семенова Александра Анатольевича за внимание к работе и участие в обсуждении основных результатов.

СПИСОК ЛИТЕРАТУРЫ

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

2. Семенов А. А., Беспалов Д. В. Технологии решения многомерных задач логического поиска II Вестник Томского гос. ун-та. Приложение. 2005. № 14. С. б 1 -7 3.

3. Luís Gil, Paulo Flores, Luís Miguel Silveira.

PMSat: a parallel version of MiniSAT. Journal on Satisfiability, Boolean Modeling and Computation, 2008. Volume б. P. 71-98.

4. Tobias Schubert, Matthew Lewis, Bernd Becker. PaMiraXT: Parallel SAT Solving with Threads and Message Passing II Journal on Satisfiability, Boolean Modeling and Computation. 2009. Vol. б. P. 203-222.

5. Бандман О. Л. Мелкозернистый параллелизм в вычислительной математике II Программирование. 2001. № 4. С. 5-20.

6. Miroslav N. Velev, Randal E. Bryant. Effective use of Boolean satisfiability procedures in the formal

verification of superscalar and VLIW microprocessors // Journal of Symbolic Computation. 2003. Vol. 35, Issue 2. P. 73-106.

7. Заикин О. С., Семенов А. А. Технология крупноблочного параллелизма в SAT-задачах // Проблемы управления. 2008. № 1. С. 43-50.

8. Семенов А. А., Заикин О. С. Неполные алгоритмы в крупноблочном параллелизме комбинаторных задач // Вычислительные методы и программирование. 2008. Т. 9. С. 108-118.

9. Параллельная технология решения SAT-задач с применением пакета прикладных программ D-SAT / О. С. Заикин [и др.] // Вестник ТГУ. Приложение. 2007. № 23. С. 83-95.

10. Решение задач обращения дискретных функций на многопроцессорных вычислительных системах / А. А. Семенов [и др.] // Тр. Четвертой Между-нар. конф. «Параллельные вычисления и задачи управления» PAC0'2008 (Москва, 26-29 октября 2008). С. 152-176.

11. Заикин О. С. Декомпозиционные представления данных в крупноблочном параллелизме SAT-задач // Прикладные алгоритмы в дискретном анализе. Иркутск: ИГУ, 2008. Серия: Дискретный анализ и информатика, вып. 2. С. 49-69.

12. Заикин О. С. Пакет прикладных программ Distributed-SAT: Свид-во об офиц. рег. программы для ЭВМ № 2008610423. 2008.

13. Гришагин В. А., Свистунов А. Н. Параллельное программирование на основе MPI: Учеб. пособие. Нижний Новгород: ННГУ им. Н. И. Лобачевского, 2005.

14. Опарин Г. А., Богданова В. Г., Сидоров И. А. Интеллектуальный решатель задач в булевых ограничениях в распределенной вычислительной среде // Информационные и математические технологии в науке и управлении. Иркутск: ИСЭМ РАН, 2007. C. 32-40.

15. Воеводин В. В., Воеводин Вл. В. Параллельные вычисления. СПб.: БХВ-Петербург, 2002. 608 с.

16. SAT-решатель MiniSat: сайт. 2010. URL: http://minisat.se/MiniSat.html (дата обращения: 01.04.2010).

17. Олейников А. Я. Методика тестирования на соответствие стандартам, обеспечивающим переносимость прикладных программ (POSIX). М., 1999. 31 с.

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

19. SAT-подход в криптоанализе некоторых систем поточного шифрования / А. А. Семенов [и др.] // Вычислительные технологии. 2008. Т. 13, № 6. С. 134-150.

20. Буров П. С., Игнатьев А. С., Отпущенников И. В. Программная трансляция алгоритмов в логические выражения в задачах диагностирования

дискретных систем // Материалы IX шк.-семинара «Математическое моделирование и информационные технологии», Иркутск, 2007. С. 33-35.

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

22. 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: Springer-Verlag, 1986.

23. Menezes A., Van Oorschot P., Vanstone S.

Handbook of Applied Cryptography. CRC Press, 1996. 657 с.

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

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

25. Суперкомпьютерный центр ИДСТУ СО РАН: сайт. 2010. URL: http://www.mvs.icc.ru (дата обращения: 01.04.2010).

ОБ АВТОРЕ

Заикин Олег Сергеевич, мл.

науч. сотр. лаб. дискр. анализа и прикл. логики ин-та динамики систем и теории управления СО РАН, ст. преп. каф. теории алгоритмов и программирования Иркутск. гос. ун-та. Дипл. ма-тем. (Иркутск. гос. ун-т, 2005). Канд. техн. наук по системн. анализу, упр-ю и обработке информации (Томск. гос. ун-т, 2009). Иссл. в обл. обработки информации.

i Надоели баннеры? Вы всегда можете отключить рекламу.