Научная статья на тему 'О реализации метода согласования в криптоанализе с помощью параллельных вычислений'

О реализации метода согласования в криптоанализе с помощью параллельных вычислений Текст научной статьи по специальности «Математика»

CC BY
321
57
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
Ключевые слова
МЕТОД СОГЛАСОВАНИЯ / КЛАСТЕР / РАСПРЕДЕЛЕННЫЕ ВЫЧИСЛЕНИЯ / MEET-IN-THE-MIDDLE ATTACK / CLUSTER COMPUTATIONS / DISTRIBUTED COMPUTATIONS

Аннотация научной статьи по математике, автор научной работы — Фомичев Владимир Михайлович

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

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

Three variants of implementation of the meet-in-the-middle attack based on clusters and distributed computations are considered for symmetric block cryptosystems. The average time of computations is estimated on the universal supposition of cryptosystem key equiprobability. It is shown that the reduction of the calculation time is proportional to the number of processors in the system.

Текст научной работы на тему «О реализации метода согласования в криптоанализе с помощью параллельных вычислений»

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.

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