2011 Вычислительные методы в дискретной математике №3(13)
ВЫЧИСЛИТЕЛЬНЫЕ МЕТОДЫ В ДИСКРЕТНОЙ МАТЕМАТИКЕ
УДК 519.6
О РЕАЛИЗАЦИИ МЕТОДА СОГЛАСОВАНИЯ В КРИПТОАНАЛИЗЕ С ПОМОЩЬЮ ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЙ1
В. М. Фомичев Институт проблем информатики РАН, г. Москва, Россия E-mail: fomichev@nm.ru
Оценено время реализации метода согласования применительно к анализу итеративных симметричных блочных шифров с использованием кластерных и распределенных вычислений. Показано, что по сравнению с однопроцессорной системой коэффициент сокращения времени может достигать числа используемых процессоров.
Ключевые слова: метод согласования, кластер, распределенные вычисления.
Введение
Метод согласования [1], или атака «встреча посередине» (meet-in-the-middle attack) [2-5], применяется для определения ключа шифра, как правило, по известным открытому и шифрованному текстам. Он менее трудоемок по сравнению с полным опробованием ключей, если функция шифрования E(q,x) открытого текста x по ключу q Е Vn = {0,1}п допускает декомпозицию на две функции как E(q, x) = g(q, g'(q, x)), где для множеств существенных ключевых переменных K и K1 соответственно функций g и g выполнено K \ K1 = 0 и K1 \ K = 0. Наибольший эффект от применения метода достигается, если множества K и K1 равномощны и KПK1 = 0. При этом опробование ключа выполняется как независимое опробование переменных из множеств K и K' и ключ q определяется с вычислительной сложностью порядка O(2n/2) операций типа зашифрования-расшифрования при использовании памяти, достаточной для хранения порядка O(2n/2) ключей.
Параллельные вычисления с использованием N процессоров позволяют сократить в N раз время решения некоторых задач, например полного опробования ключей. Вместе с тем применение параллельных вычислений для решения других задач не столь эффективно. Оценим эффективность различных моделей параллельных вычислений для реализации метода согласования в решении следующей задачи.
Для r-раундового симметричного блочного шифра требуется вычислить n-битовый ключ q по известным t-битовым блокам x и у открытого и шифрованного текстов, где t ^ n и ключ q по блокам x и у определяется однозначно, при следующих предположениях:
хРабота выполнена в рамках мероприятия 1.2.1 ФЦП «Научные и научно-педагогические кадры инновационной России» на 2009-2013 гг. по направлению «Распределенные вычислительные
системы».
1) ключ д есть конкатенация независимых ключей: д = V • ш, где V Е Ут, ш Е Уп-т и т ^ п/2;
2) функции шифрования первых I < г раундов и остальных г — I раундов шифрования суть подстановки соответственно дь и , определяемые бинарными ключами V и ш.
Тогда зашифрование блока х в блок у с помощью подстановки Еч имеет вид
у = Ея (х) = д^ гт (х) = гт (д^ (х)). (1)
Корректность предложенных ниже алгоритмов следует из (1).
Модель вычислительной системы предполагает использование N идентичных вычислителей с неограниченной памятью (размер памяти далее уточняется), где у вычислителей одинаковы производительность вычислений, скорости чтения/записи данных и др. Различаются два случая: кластерные вычисления (КВ) и распределенные вычисления (РВ). Преимущество модели КВ заключается в возможности достаточно активного обмена данными между вычислителями. Преимущество модели РВ, где координатор распределяет задания между процессорами — участниками вычислений и объединяет результаты вычислений, в том, что число участников РВ может заметно превышать число процессоров в кластере. При этом участник обменивается данными только с координатором.
1. Кластерные вычисления
Пусть кластерная система имеет 2к вычислителей, снабженных блоками памяти, к ^ т. Каждый вычислитель имеет номер, являющийся его адресом (число от 0 до 2к — 1, или в двоичной записи — вектор из Ук). Между блоками памяти вычислителей может выполняться интенсивный обмен данными. Для реализации алгоритма каждый вычислитель использует адресную память размера 2*-к ячеек, в ячейке могут быть записаны несколько вариантов ключей, то есть элементов УП. Адреса ячеек суть элементы У—, являющиеся значениями некоторой хеш-функции: У ^ У—. Хеш-функция может быть весьма простой, например выделение первых £ — к битов двоичного ¿-битового вектора.
Для любого двоичного вектора (а^а2,...) размерности больше к обозначим
^(аЪ а2, . . .) = (аЪ . . . , ак), ^(аЪ а2, . . .) = (ак+1, ак+2, . . .).
Для вектора а = (а1,... , ак) Е Ук и пространства векторов У5, где в ^ к, обозначим
К (а) = {£ Е К : ¿(£) = а}.
Алгоритм состоит из предварительного и оперативного этапов.
Предварительный этап (заполнение блоков памяти вычислителей)
Вычислитель с номером а Е Ук последовательно опробует ключи V из Ут(а) и вычисляет дь (х) для блока х. Затем пара (V, дь (х)) направляется вычислителю с номером $(д^ (х)), который записывает ключ V в свою память по адресу $(д^ (х)).
По завершении этапа множество ключей из Ут распределено по ячейкам памяти всех вычислителей. Обозначим через ф(а,в) множество ключей из Ут, записанных в памяти вычислителя с номером а по адресу в.
Оперативный этап (определение ключа)
1) Вычислитель с номером а Е Ук последовательно опробует ключи ш из УП-т(а) и вычисляет (£ш)-1 (у) для блока у, затем пара (ш, (^-1)(у)) направляется вычислителю с номером ^((^-1)(у)).
2) Вычислитель с номером ¿((¿-1)(у)) обращается в свою память по адресу $((г-1 )(у)). Конкатенация V • ш для каждого ключа V из множества Q = = Q(£((z-1)(y)), ^((^^-1)(у))) есть кандидат на значение искомого ключа д = V•ш. Если Q = 0, то выполняется отбраковка всех ключей вида V • ш (например, по критерию соответствия известным парам открытого и шифрованного текстов).
Характеристики метода
Оценим (в предположении, что ключ д выбирается случайно равновероятно из множества УП) среднее время Т (т) описанной реализации метода согласования через время реализации операций зашифрования, расшифрования, пересылки и обращения в память, обозначаемых соответственно тз, тр, тп, то. Положим, что работа алгоритма происходит в дискретные моменты времени (такты) и в каждый такт на первом этапе в любую ячейку памяти записывается не более одного варианта ключа V, на втором этапе из любой ячейки памяти извлекается не более одного варианта ключа V, т. е. замедления «из-за очередей» в работе вычислителей не происходит.
На первом этапе для ключа V из Ут(а) реализуется однократное зашифрование, пересылка и запись в память, отсюда среднее время Т1(т) работы вычислителя равно 2т-к(Гз + Гп + Го) . На втором этапе для ключа ш из УП-т(а) реализуется однократное расшифрование, пересылка и обращение в память. Следовательно, среднее время Т2(т) выполнения вычислителем второго этапа равно 2п-т-к (тр + тп + то) + Тбр, где Тбр — среднее время отбраковки кандидатов на значение ключа.
Оценим величину Тбр. В каждой ячейке памяти записано в среднем 2т— вариантов ключа V. Среднее число обращений в любую ячейку памяти на втором этапе равно 2п-т—*. Отсюда каждым вычислителем отбраковывается в среднем 2п-*-к кандидатов на значение ключа. Значит, Тбр = 2п-*-ктз, и отбраковка кандидатов на значение ключа вносит несущественный вклад в общую трудоемкость. Следовательно,
Т(т) = Т1(т) + Т2(т) « 2т-к(тз + тл + то) + 2п-т-к(тр + тл + То).
Отсюда, если тз ~ тр, то минимум трудоёмкости Т(т) достигается при т = |_п/2]:
Т = Т(|та/2_|) « 2п/2-к+1(тз + тп + то). (2)
Следовательно, среднее время Т оценивается величиной порядка 0(т2п/2-к), где т = тах{тз, Тп, То}.
Надёжность метода равна 1. В связи с минимизацией по т трудоемкости Т (т) уточним размер требуемой памяти: вычислителю достаточно иметь 2п/2-к ячеек, в которые записываются элементы Уп/2. Адресами ячеек являются элементы Уп/2-к.
При выборе оптимального (по времени реализации алгоритма) размера памяти следует учесть, что реализация алгоритма может замедляться «из-за очередей», когда в одну ячейку одновременно поступает несколько запросов в связи с необходимостью записи или извлечения информации. Это замедление тем несущественней, чем меньше соотношение то/тз.
Таким образом, время определения ключа блочного шифра методом согласования с использованием кластерных вычислений с числом процессоров 2к может быть сокращено до 2к раз по сравнению с однопроцессорной вычислительной системой, если время пересылки данных между вычислителями не слишком велико. Важно также, что совокупный объем требуемой памяти 2п/2 ячеек также распределяется между 2к процессорами.
2. Распределенные вычисления
В системе РВ с 2р участниками (вычислителями), р ^ т, каждый участник имеет номер, являющийся его адресом (число от 0 до 2р-1, или в двоичной записи — вектор из Ур). Алгоритм использует 2* ячеек адресной памяти координатора (адрес ячейки есть элемент У*), в каждую из них могут быть записаны несколько вариантов ключей— элементов Уп. Участники могут отправлять данные координатору, но не могут обращаться к его памяти.
Алгоритм состоит из предварительного и оперативного этапов.
Предварительный этап (заполнение памяти координатора)
Вычислитель с номером а Е Ур последовательно при каждом ключе V из Ут(а) вычисляет д^(х) для блока х и направляет пару ^,д^(х)) координатору, где ключ V записывается в память координатора по адресу д^ (х). По завершении этапа множество ключей из Ут распределено по ячейкам памяти координатора. Обозначим через Q(в) множество ключей из Ут, записанных в памяти координатора по адресу в.
Оперативный этап (определение ключа)
1) Вычислитель с номером а Е Ур последовательно при каждом ключе ш из Уп-т(а) вычисляет (¿-^(у) для блока у и направляет пару (ш, (^-1)(у)) координатору.
2) Координатор обращается в память по адресу (^-1)(у). Конкатенация каждого ключа V из Q((z-1)(y)) с ключом ш есть кандидат на значение искомого ключа д = v•w. Если Q((zW1)(y)) = 0, то координатор подвергает отбраковке все ключи вида V • ш (например, по критерию соответствия известным парам открытого и шифрованного текстов).
Характеристики метода
Оценим (ключ д выбирается случайно равновероятно из Уп) среднее время Т(т) описанной реализации метода согласования через время реализации операций зашифрования, расшифрования, пересылки и обращения в память. Положим, что в каждый такт на первом этапе в любую ячейку памяти записывается не более одного варианта ключа V, на втором этапе из любой ячейки памяти извлекается не более одного варианта ключа V, т. е. замедления «из-за очередей» в работе вычислителей не происходит.
Среднее время Т1у(т) выполнения первого этапа участниками равно 2т-р(тз + тп), так как для каждого ключа V из Ут(а) реализуется по одной операции зашифрования и пересылки. Среднее время Т1к (т) выполнения первого этапа координатором (записи в память) равно 2тто.
Следовательно, среднее время Т1(т) выполнения первого этапа равно
Т1(т) = Т1у (т) + Т1к (т) = 2т-р(т, + тп + 2рто).
Для ключа ш из Уп-т(а) участником реализуется по одной операции расшифрования и пересылки. Следовательно, среднее время Т2у(т) выполнения второго этапа каждым участником равно 2п-т-р (тр + тп). Среднее время Т2к (т) выполнения второго этапа координатором (записи в память и отбраковки) равно 2п-тто + Тбр, где Тбр — среднее время отбраковки кандидатов на значение ключа. Отсюда среднее время Т2(т) выполнения второго этапа равно 2п-т-р(тр + тп + 2рто) + Тбр.
Оценим величину Тбр. В каждой ячейке памяти записано в среднем 2т-* вариантов ключа V. Среднее число обращений в память на втором этапе равно 2п-т. Отсюда координатором отбраковывается в среднем 2п-* кандидатов на значение ключа. Значит, Тбр = 2п-*тз, и отбраковка кандидатов в ключи вносит несущественный вклад в общую трудоемкость. Следовательно,
Т(т) = Т1(т) + Т2(т) « 2т-р(тз + тп + 2рт>) + 2п-т-р(тр + тп + 2рто).
Отсюда, если тз ~ тр, то минимум среднего времени Т(т) достигается при т = [п/2]:
Т = Т([п/2]) « 2п/2-р(тз + тп + 2рто). (3)
В связи с минимизацией Т(т) по т уточним размер требуемой памяти: координатору достаточно иметь 2п/2 ячеек, в которые записываются элементы У^/2. Адресами ячеек являются элементы Уп/2. Следовательно, среднее время работы алгоритма согласования по сравнению с полным опробованием ключей сокращается не более чем в 2р раз, и сокращение зависит от соотношения величин то и тах{тз, тп}. Надёжность метода равна 1.
3. Комбинирование кластерных и распределенных вычислений
В данной модели РВ система использует 2р участников, р ^ т. Каждый участник имеет номер, являющийся его адресом (число от 0 до 2р-1, или в двоичной записи — вектор из Ур). Координатор располагает кластерной подсистемой 2к вычислителей, к ^ р, каждый вычислитель кластерной системы имеет номер, являющийся его адресом (число от 0 до 2к — 1, или в двоичной записи — вектор из Ук), и имеет блок памяти размера 2*_к ячеек (адрес ячейки есть элемент У*_к). В каждую ячейку могут быть записаны несколько вариантов ключей — элементов Уп. Участники РВ могут отправлять данные кластерным вычислителям, но не могут обращаться в память кластерных вычислителей.
Предварительный этап (заполнение памяти координатора)
Участник с номером а Е Ур последовательно при каждом ключе V из Ут(а) вычисляет д^ (х) для блока х и направляет пару (V, д^ (х)) кластерному вычислителю с номером $(д^ (х)), который записывает в память ключ V по адресу $(д^ (х)). По завершении этапа множество ключей из Ут распределено по блокам памяти кластерных вычислителей координатора. Обозначим через Q(а,в) множество ключей из Ут, записанных в блоке памяти вычислителя с номером а по адресу в.
Оперативный этап (определение ключа)
1) Вычислитель с номером а Е Ур последовательно при каждом ключе ш из Уп_т(а) вычисляет (^_1)(у) для блока у и направляет пару (ш, (^_1)(у)) кластерному вычислителю с номером ^((£_1)(у)).
2) Кластерный вычислитель с номером ^((^_1)(у)) вычисляет адрес ^((^_1)(у)) и обращается к своему блоку памяти по этому адресу. Конкатенация вида V • ш для каждого ключа V из множества Q = Q(£((z_1)(y)), ^((^^_1)(у)) есть кандидат на значение ключа. Если Q = 0, то вычислитель с номером ^((£—1)(у)) все ключи вида V • ш подвергает отбраковке (например, по критерию соответствия известным парам открытого и шифрованного текстов).
Характеристики метода
Оценим (ключ д выбирается случайно равновероятно из Уп) среднее время Т(т) описанной реализации метода согласования через время реализации операций зашифрования, расшифрования, пересылки и обращения в память.
Среднее время Т1у(т) выполнения первого этапа участником равно 2т-р(тз + тп), так как для каждого ключа V из Уш(а) реализуется по одной операции зашифрования и пересылки. Среднее время Т1к (т) выполнения первого этапа кластерным вычислителем оценивается величиной 2т-кто, так как запись в память 2т ключей V выполняется
2к вычислителями. Отсюда среднее время выполнения первого этапа алгоритма определяется величиной max{2m-p(r3 + тп), 2m-kто}.
Для ключа w из Vn-m(a) участником реализуется одно расшифрование и пересылка. Следовательно, среднее время T2y (m) выполнения второго этапа участником равно 2га-т—р(тр + тп). Среднее время Т2к (m) выполнения второго этапа кластерным вычислителем оценивается величиной 2n-m-kто + Тбр, так как запись в память 2n-m ключей w выполняется 2k вычислителями. Среднее время Тбр отбраковки кандидатов на значение искомого ключа вносит несущественный вклад в общую трудоемкость. Отсюда среднее время выполнения второго этапа определяется величиной max{2n-m-p(rp + тп), 2n-m-fcr0}. Следовательно, время T(m) определяется величиной порядка
max{2m-p(тз + тл), 2п-т-р(тр + Тп), 2m-kТо, 2n-m-kТо}. (4)
Тогда минимум T(m) достигается при m = |_n/2j и при тз = тр верны оценки
0((тз + Тп)2п/2-р) ^ minT(m) ^ 0(то2п/2-к).
Следовательно, min T(m) может быть сокращен в несколько раз по сравнению с КВ
и РВ (ср. с формулами (2), (3)). Коэффициент сокращения определяется соотношением скоростей шифрования, пересылки данных и обращения к памяти. Надёжность метода равна 1.
Уточним размер требуемой памяти: кластерному вычислителю достаточно иметь 2n/2-k ячеек, в которые записываются элементы V«/2. Адресами ячеек являются элементы K/2-fc.
Выводы
Время определения ключа блочного шифра методом согласования может быть существенно сокращено по сравнению с однопроцессорной вычислительной системой:
1) при использовании КВ с числом процессоров 2k — примерно в 2k раз;
2) при использовании РВ с 2р участниками — до 2р раз, сокращение определяется соотношением скоростей шифрования, пересылки данных и обращения к памяти координатора;
3) при использовании РВ с 2p участниками и подсистемы КВ координатора с числом процессоров 2k, где k ^ p — от 2k до 2р раз, сокращение определяется соотношением скоростей шифрования, пересылки данных и обращения к памяти кластерных вычислителей.
При использовании КВ память распределяется по вычислителям кластерной системы.
ЛИТЕРАТУРА
1. Фомичёв В. М. Методы дискретной математики в криптологии. М.: ДИАЛОГ-МИФИ, 2010.
2. Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си. М.: ТРИУМФ, 2002.
3. Словарь криптографических терминов / под ред. Б. А. Погорелова и В.Н. Сачкова. М.: МЦНМО, 2006. 94 с.
4. Б'рассар Ж. Современная криптология: пер. с англ. М.: Полимед, 1999. 173 с.
5. ГрушоА.А., Тимонина Е. Е., Применко Э. А. Анализ и синтез криптоалгоритмов. Курс лекций. Йошкар-Ола: МФ МОСУ, 2000.