Еще одна область применения SAT-подхода связана с задачами комбинаторной оптимизации. Имеются мощные коммерческие пакеты решения оптимизационных задач из семейства 0—1-целочисленного линейного программирования (ЦЛП). Соответствующие алгоритмы комбинируют технику ветвей, границ и отсечений с методами решения задач линейного программирования над полем рациональных чисел. Однако данные методы подходят далеко не ко всем задачам комбинаторной оптимизации. Современные решатели ЦЛП-задач, как правило, не работают с нелинейными и невыпуклыми целевыми функциями. Между тем и такие задачи допускают эффективную сводимость к булевым уравнениям и, в конечном счете, к SAT-задачам.
В работе приведены результаты решения задачи поиска неподвижных точек и циклов автоматных отображений в генных сетях дискретно-автоматной природы со сложными многофакторными механизмами внутреннего взаимодействия и результаты параллельного решения SAT-задач, кодирующих квадратичную задачу о назначениях, в отношении которой коммерческие решатели, основанные на методе ветвей и границ, оказываются низкоэффективными.
ЛИТЕРАТУРА
1. Хопкрофт Дж., Мотвани Р., Ульман Дж. Введение в теорию автоматов, языков и вычислений. М.: Вильямс, 2002.
2. Семенов А. А., Отпущенников И. В., Кочемазов С. Е. Пропозициональный подход в задачах тестирования дискретных автоматов // Современные технологии. Системный анализ. Моделирование. 2009. №4. С. 48-56.
3. http://www.satlive.org — Up-to-date links for the SATisfability Problem.
4. Системная компьютерная биология / под ред. Н. А. Колчанова, С. С. Гончарова, В. А. Лихошвая, В. А. Иванисенко. Новосибирск: Изд-во СО РАН, 2008.
5. Евдокимов А. А., Кочемазов С.Е., Семенов А. А. Применение символьных вычислений к исследованию дискретных моделей некоторых классов генных сетей // Вычислительные технологии. 2011. Т. 16. №1. С. 30-47.
УДК 519.6
О ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЯХ ПРИ РЕАЛИЗАЦИИ МЕТОДА СОГЛАСОВАНИЯ В КРИПТОАНАЛИЗЕ
В. М. Фомичев
Метод согласования [1-4] применяется для определения ключа криптосистемы, как правило, по известным открытому и шифрованному тексту. Он менее трудоемок по сравнению с полным опробованием ключей, если функция шифрования E(q,x) открытого текста x по ключу q Е Vn = {0,1}n допускает декомпозицию на две функции как E(q,x) = g(q, g'(q, x)), где для множеств существенных ключевых переменных K и K' соответственно функций g и g' выполнено K \ K' = 0 и K' \ K = 0. Наибольший эффект от применения метода достигается, если множества K и K' равномощны и K П K' = 0. При этом опробование ключа выполняется как независимое опробование переменных из множеств K и K' и ключ q определяется с вычислительной сложностью порядка O(2n/2) операций типа зашифрования-расшифрования при использовании памяти, достаточной для хранения порядка O(2n/2) ключей.
Оценим среднее время параллельных вычислений и размер памяти для реализации метода согласования применительно к некоторым итеративным симметричным блоч-
ным шифрам (СБШ) при условии, что ключ выбирается случайно равновероятно из ключевого множества.
Задача: для г-раундового СБШ вычислить п-битовый ключ д по известным ¿-битовым блокам х и у открытого и шифрованного текстов, где числа г, п,£ — натуральные, £ ^ п и ключ д по блокам х и у определяется однозначно. В условиях метода согласования сделаем следующие предположения и обозначения:
1) ключ д есть конкатенация независимых ключей: д = V • ш, где V Е Ут, ш Е Уп-т и т ^ п/2;
2) функции шифрования первых I раундов и остальных г — I раундов шифрования суть подстановки соответственно д^ и , определяемые бинарными ключами V и ш, где I < г.
Тогда зашифрование блока х в блок у с помощью подстановки Ея имеет вид
у = Ея (х) = д^ (х) = (д^ (х)). (1)
Корректность предлагаемых алгоритмов следует из (1).
В модели вычислительной системы используются N идентичных вычислителей с неограниченной памятью, с одинаковыми производительностью и скоростью чтения/записи данных и др. Различаются два случая: кластерные вычисления (КВ) и распределенные вычисления (РВ). Преимущество модели КВ заключается в возможности активного обмена данными между вычислителями. Преимущество модели РВ, где координатор распределяет задания между процессорами — участниками вычислений и объединяет результаты выполнения заданий, в том, что число участников РВ может заметно превосходить число процессоров в кластерной системе. Вместе с тем обмен данными участник осуществляет только с координатором.
Кластерные вычисления
Пусть кластерная система имеет 2к вычислителей, снабженных блоками памяти, к ^ т. Каждый вычислитель имеет номер, являющийся его адресом (число от 0 до 2к — 1). Для реализации алгоритма каждый вычислитель использует адресную память размера 2*-к ячеек, в ячейке могут быть записаны несколько вариантов ключей — элементов Уп. Адреса ячеек суть элементы У—.
Для любого двоичного вектора (а^а2,...) размерности больше к обозначим
£(а1,а2 ,...) = (а1, . . . , ак), ^(аЪ а2, . . .) = (ак+1 ,ак+2,...).
Для вектора а = (а1,... , ак) Е Ук и пространства векторов У,, где в ^ к, обозначим
У,(а) = {£ Е У, : ¿(£) = а}.
Алгоритм состоит из предварительного и оперативного этапов.
Предварительный этап (заполнение блоков памяти вычислителей).
Вычислитель с номером а Е Ук последовательно опробует ключи V из Ут(а) и вычисляет д^ (х) для блока х. Затем пара (V, д^ (х)) направляется вычислителю с номером $(д^ (х)), который записывает ключ V в свою память по адресу $(д^ (х)).
По завершении этапа множество ключей из Ут распределено по ячейкам памяти всех вычислителей. Обозначим через ф(а,в) множество ключей из Ут, записанных в памяти вычислителя с номером а по адресу в.
Оперативный этап (определение ключа).
1) Вычислитель с номером а Е Ук последовательно опробует ключи ш из УП-т(а) и вычисляет (£ш)-1 (у) для блока у, затем пара (ш, (^-1)(у)) направляется вычислителю с номером ¿((¿-1)(у)).
2) Вычислитель с номером ¿((¿-1)(у)) обращается в свою память по адресу $((г-1 )(у)). Конкатенация V • ш для каждого ключа V из множества ф = = ф(^((г-1)(у)), ^((¿-^(у))) есть кандидат на значение искомого ключа д = V•ш. Если ф = 0, то вычислитель отбраковывает все ключи вида V • ш (например, по критерию соответствия известным парам открытого и шифрованного текстов).
Характеристики метода.
Пусть тз, тп, то — время реализации зашифрования, пересылки и обращения в память в некоторых условных единицах, и тах{тз, тп, то} = т. Тогда минимум среднего времени реализации метода Т(т) достигается при т = [п/2]:
Т = Т ([п/2]) = 0(т 2п/2-к). (2)
Надёжность метода равна 1. Каждому вычислителю достаточно иметь порядка 2п/2-к ячеек, в которые записываются элементы УП/2. Таким образом, совокупный объем требуемой памяти 2п/2 ячеек также распределяется между 2к процессорами.
Распределенные вычисления
В системе РВ с 2Р участниками (вычислителями), р ^ т, каждый участник имеет номер, являющийся его адресом (число от 0 до 2Р-1). Алгоритм использует 2* ячеек адресной памяти координатора, в каждую из которых может быть записано несколько вариантов ключей — элементов УП. Участники могут отправлять данные координатору, но не могут обращаться к его памяти.
Алгоритм состоит из предварительного и оперативного этапов.
Предварительный этап (заполнение памяти координатора).
Вычислитель с номером а Е Ур последовательно при каждом ключе V из Ут(а) вычисляет дь(х) для блока х и направляет пару ^,д^(х)) координатору, где ключ V записывается в память координатора по адресу дь (х). По завершении этапа множество ключей из Ут распределено по ячейкам памяти координатора. Обозначим через ф(в) множество ключей из Ут, записанных в памяти координатора по адресу в.
Оперативный этап (определение ключа).
1) Вычислитель с номером а Е Ур последовательно при каждом ключе ш из Уп-т(а) вычисляет (¿-^(у) для блока у и направляет пару (ш, (^-1)(у)) координатору.
2) Координатор обращается в память по адресу (^-1)(у). Конкатенация каждого ключа V из ф((^-1)(у)) с ключом ш есть кандидат на значение искомого ключа д = v•w. Если ф((£-1)(у)) = 0, то координатор подвергает отбраковке все ключи вида V • ш (например, по критерию соответствия известным парам открытого и шифрованного текстов).
Характеристики метода.
Положим, что в каждый такт на 1-м этапе в любую ячейку памяти записывается не более одного варианта ключа V, на 2-м этапе из любой ячейки памяти извлекается не более одного варианта ключа V, т. е. замедления «из-за очередей» в работе вычислителей не происходит.
Тогда среднее время Т(т) алгоритма достигает минимума при т = [п/2]:
Т = Т([п/2]) « 2п/2-р(тз + тп + 2рТо). (3)
Координатору достаточно иметь 2n/2 ячеек, в которые записываются элементы V^/2-Отсюда среднее время алгоритма согласования по сравнению с полным опробованием ключей сокращается не более чем в 2Р раз и сокращение зависит от соотношения величин то, тз и тп. Надёжность метода равна 1.
Комбинирование кластерных и распределенных вычислений
В данной модели РВ система использует 2Р участников, р ^ m. Каждый участник имеет номер, являющийся его адресом (число от 0 до 2Р — 1). Координатор располагает кластерной подсистемой 2k вычислителей, k ^ р, каждый вычислитель кластерной системы имеет номер, являющийся его адресом (число от 0 до 2k — 1), и блок памяти размера 2t-k ячеек (адрес ячейки есть элемент Vt-k). В каждую ячейку могут быть записаны несколько вариантов ключей — элементов V^. Участники РВ могут отправлять данные кластерным вычислителям, но не могут обращаться в память кластерных вычислителей.
Предварительный этап (заполнение памяти координатора).
Участник с номером а Е Vp последовательно при каждом ключе v из Vm(a) вычисляет (x) для блока x и направляет пару (v,gv(x)) кластерному вычислителю с номером $(gv (x)), который вычисляет адрес $(gv (x)) и записывает по этому адресу ключ v. По завершении этапа множество ключей из Vm распределено по блокам памяти кластерных вычислителей координатора. Обозначим через Q(a,e) множество ключей из Vm, записанных в блоке памяти вычислителя с номером а по адресу ß.
Оперативный этап (определение ключа).
1) Вычислитель с номером а Е Vp последовательно при каждом ключе w Е Е Vn-m(a) вычисляет (z-1)^) для блока у и направляет пару (w, (z-:)(y)) кластерному вычислителю с номером i((z^-1)(y)).
2) Кластерный вычислитель с номером $((z-1)(y)) обращается к своему блоку памяти по адресу ^((zW-1)(y)). Конкатенация каждого ключа v из множества Q = Q(£((z-1)(y)), $((z-1)(y)) с ключом w есть кандидат на значение ключа. Если Q = 0, то вычислитель с номером ^((zW-1)(y)) все ключи вида v • w подвергает отбраковке (например, по критерию соответствия известным парам открытого и шифрованного текстов).
Характеристики метода.
Минимум T(m) достигается при m = |_n/2j, и верны оценки 0((тз + Тп)2п/2-Р) ^ minT(m) ^ О(то2n/2-k).
Следовательно, min T(m) может быть сокращен в несколько раз по сравнению с КВ и РВ (ср. с формулами (2), (3)). Коэффициент сокращения определяется соотношением скоростей шифрования, пересылки данных и обращения к памяти. Надёжность метода равна 1.
Кластерному вычислителю достаточно иметь 2n/2-k ячеек, в которые записываются элементы V^/2.
Выводы
Время определения ключа блочного шифра методом согласования может быть существенно сокращено по сравнению с однопроцессорной вычислительной системой:
1) при использовании КВ с числом процессоров 2k — примерно в 2k раз;
2) при использовании РВ с 2Р участниками — до 2Р раз, сокращение определяется соотношением скоростей шифрования, пересылки данных и обращения к памяти координатора;
3) при использовании РВ с 2Р участниками и подсистемы КВ координатора с числом процессоров 2к, где к ^ р, — от 2к до 2Р раз, сокращение определяется соотношением скоростей шифрования, пересылки данных и обращения к памяти кластерных вычислителей.
При использовании КВ память распределяется по вычислителям кластерной системы.
Подробное изложение представленных результатов можно найти в [5].
ЛИТЕРАТУРА
1. Брассар Ж. Современная криптология / пер. с англ. М.: Полимед, 1999.
2. Грушо А. А., Тимонина Е. Е, Применко Э. А. Анализ и синтез криптоалгоритмов. Курс лекций. Йошкар-Ола: МФ МОСУ, 2000.
3. Фомичёв В. М. Методы дискретной математики в криптологии. М.: ДИАЛОГ-МИФИ, 2010.
4. Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си. М.: ТРИУМФ, 2002.
5. Фомичёв В. М. О реализации метода согласования в криптоанализе с помощью параллельных вычислений // Прикладная дискретная математика. 2011 (в печати).