7
из У32, то вероятность линейной независимости системы равна П(1 — 2г-32), то есть
г=0
превышает 1 — 224.
ЛИТЕРАТУРА
1. Фомичев В. М. Методы дискретной математики в криптологии. М.: Диалог-МИФИ, 2010. 424 с.
2. Романько Д. А., Фомичев В. М. О способах построения криптографических генераторов с заданным показателем бесповторности выходных последовательностей // Прикладная дискретная математика. Приложение. 2016. №9. С. 65-67.
УДК 004.056.55 Б01 10.17223/2226308Х/9/29
КРИПТОАНАЛИЗ КРИПТОСИСТЕМЫ МАК-ЭЛИСА, ПОСТРОЕННОЙ НА (к — 1)-ПОДКОДАХ КОДА РИДА — МАЛЛЕРА
И. В. Чижов, М. А. Бородин
Описаны два вида криптосистем Мак-Элиса, построенных на подкодах кода Рида— Маллера. Изучен вопрос эквивалентных ключей для этих криптосистем. Получен результат о сводимости одной криптосистемы к другой. Приведены алгоритмы, которые позволяют применить атаку Чижова — Бородина к рассматриваемым криптосистемам для некоторых параметров кодов Рида — Маллера.
Ключевые слова: криптосистема Мак-Элиса, подкоды Рида — Маллера, автоморфизмы кодов Рида — Маллера, произведение Шура, квадрат кода.
Криптосистема Мак-Элиса предложена в 1978 г. Р. Дж. Мак-Элисом. Её стойкость основана на предположении сложности декодирования кода общего положения. Оригинальная криптосистема Мак-Элиса строится на двоичных кодах Гоппы. Для повышения эксплуатационных характеристик В. М. Сидельников предложил использовать коды Рида — Маллера [1]. Однако в 2007 г. Л. Миндера и А. Шокроллахи предложили достаточно эффективную атаку на такую криптосистему [2]. Кроме того, в 2013г. Бородин и Чижов ещё больше понизили стойкость этой криптосистемы, а также построили полиномиальную атаку в случае использования кода Рида — Маллера ЯМ(г,т) с такими параметрами, что (г,т — 1) = 1 [3].
Бывает, что атаки на кодовые криптосистемы, работающие в случае использования полного кода, оказываются бесполезными в случае использования некоторых подкодов кода. Так была предложена криптосистема Бергера — Луадро, построенная на подко-дах кода Рида — Соломона. В работе рассматриваются два аналога криптосистемы Бергера —Луадро, построенных на (к — 1)-подкодах кода Рида —Маллера ЯМ (г, т).
Пусть Уп — множество всех двоичных векторов длины п. Известно, что с каждой булевой функцией f (х1,х2,... ,хт) : Ут ^ У1 можно связать вектор значений Qf = ^(0, 0,..., 0), f (0,0,..., 1),..., f (1,1,..., 1)). В дальнейшем не будем делать различий в обозначениях между булевой функцией и её вектором значений. Каждая булева функция может быть представлена полиномом Жегалкина: f (х1, х2,... , хт) = = 0 9f (и)хи, здесь хи = х^1 х^2 ... х^^ и х^ = хг, если иг = 1, и х^ = 1,
«=(«1,«2 ,...,ит)еУт если иг = 0, а gf(и) —некоторая булева функция.
Определение 1. Степенью булевой функции называется наименьшее целое положительное число й, такое, что gf(и) = 0 для всех и веса больше й, т. е. '^(и) > й.
74
Прикладная дискретная математика. Приложение
Определение 2. Кодом Рида — Маллера RM(r, m) называется множество всех векторов значений булевых функций от m переменных, степень которых не превосходит r.
Базисом кода являются все мономы степени r от m переменных:
1 x1, . . . , xm—^ x1x2, • • • , xm—1xm, • • • , x1x2 • • • xr, • • • , xm—r—1 • • • xm. (1)
Для двоичного набора а = (ат—1,... ,а0) символом |а| обозначим представление двоичной строки в виде десятичного числа а, т.е. |а| = а0 + 2а1 + ... + 2m— 1ат— 1. Введём отношение порядка для векторов а, в G Vm. Будем считать, что а < ß, если либо wt^) < wt(ß), либо wt^) = wt(ß) и |а| < |ß|. Тогда можно ввести отношение порядка на множестве мономов: xa < xß, если а < ß.
Определение 3. Стандартной формой порождающей матрицы кода RM(r, m) будем называть матрицу, составленную из всех векторов значений мономов (1), стоящих в порядке возрастания.
Обозначим также символом A(r, m) множество всех таких наборов а = (ат—1, ...,а0), что моном xa входит в стандартную форму порождающей матрицы кода RM(r, m).
Устройство криптосистемы первого типа McE/RM 1(r,m). Для генерации ключей строится стандартная форма порождающей матрицы R кода RM(r, m). Далее выбирается случайная двоичная невырожденная (k х п)-матрица H = (hj) и случайная подстановка а G Sn, представленная в виде перестановочной (n х п)-матрицы Ра. Затем вычисляется матрица G' = H • R • Ра = H • Ra и из неё удаляется первая строка, получается ((k — 1) х п)-матрица G. Секретным ключом криптосистемы является набор (H, Ра) = (H, а), а открытым ключом — матрица G и (r,m) —параметры кода Рида — Маллера, однако, ради удобства, параметры в открытый ключ не включены.
Устройство криптосистемы второго типа McE/RM2(r,m). Для генерации ключей строится стандартная форма порождающей матрицы R кода RM(r, m). Далее выбирается случайный номер i, 1 ^ i ^ k. Из матрицы R удаляется строка с номером i. Получившуюся в результате матрицу обозначим через R[i]. Выбирается случайная двоичная невырожденная ((k — 1) х п)-матрица H = (hij) и случайная перестановочная (n х п)-матрица Ра = (pij). Вычисляется матрица G = H • R[i] • Ра = H • (R[i])CT. Секретным ключом криптосистемы является набор (H, Ра, i) = (H, а, i), а открытым ключом — матрица G.
Определение 4. Два секретных ключа (H1 ,a1) и (H2,a2) называются эквивалентными, если соответствующие им открытые ключи G1 и G2 равны.
В работе решается задача восстановления секретного ключа криптосистемы или эквивалентного ему по открытому ключу.
Пусть (H, а) —некоторый секретный ключ криптосистемы McE/RM 1(r, m); G — соответствующий ему открытый ключ; адь — некоторый автоморфизм кода Рида — Маллера. Тогда для порождающей матрицы R кода Рида — Маллера существует единственная матрица (невырожденная), что Ha,öR = RaA,b.
Теорема 1. Пусть [(H, а)] —класс эквивалентности секретного ключа (H, а) криптосистемы McE/RM 1. Тогда {(HHA,b, а—1ba) : aA,b G Aut(RM(r,m))} С [(H,a)].
Пусть C — произвольный (k — 1)-подкод кода Рида — Маллера RM(r, m). Рассмотрим такой моном /min = xamin , что для всех а' < ат;п моном xa G C, а /min G C. Такой
моном существует и единственный. Пусть а = am¡n. Для всех а' > а либо моном xa Е C, либо xa ф xa Е C, т.е. xa ф a (a') Е C для некоторого а(а') Е {0,1}. Введём вектор а = (а(а') : а' Е A(r, m)). Тогда код C однозначно определяется векторами а и а. Будем в дальнейшем такой код обозначать символом Ca,a(r, m), причём а(а') = 0 для всех а' < а и а(а) = 1. Отметим, что открытый ключ G криптосистемы первого типа — это порождающая матрица кода Caa для некоторого а и а.
Для построения атаки на криптосистему первого типа используем идеи работы [3].
Определение 5. Пусть C и B — два линейных [n, к]-кода. Произведением C о B назовём код, состоящий из всех возможных произведений кодовых слов c • b, c Е C, b Е B. Здесь c • b = (ci • bi, c2 • b2,..., cn • bn), если c = (ci,..., cn) и b = (bb ..., bn).
Доказаны следующие теоремы.
Теорема 2. Пусть r1 + r2 ^ m. Пусть также а1 Е A(r1,m), а2 Е A(r2,m), причём выполнено одно из двух условий:
1) а1 = а2, а1, а2 > 0;
2) а1 = а2 = а и wt^) ^ 2.
Тогда для любых а1 и а2 выполняется равенство
Cal,ai(r1, m) о Ca2,a2(r2,m) = RM(n + r2,m).
Теорема 3. Пусть 2r < m. Тогда для любых а, таких, что wt^) = 1, либо Ca,a(r, m) о Ca,a(r, m) = RM(2r, m), либо существует такой автоморфизм кода Рида —Маллера RM(r, m), что Ca,a(r, m) о Ca,a(r, m) = C^o'6 (2r, m).
Общая схема атаки на криптосистему первого типа McE/RM 1(r, m): Шаг 1. По матрице G построить порождающую матрицу кода RM(r, m). Шаг 2. Применить атаку Чижова — Бородина к этой матрице. Для реализации первого шага предложен полиномиальный по сложности алгоритм, корректность работы которого доказывается при помощи теорем 2 и 3. Входным значением для алгоритма является открытый ключ криптосистемы McE/RM 1(r, m) — матрица G, которая соответствует подкоду C^a. Выходным значением является порождающая матрица кода RM(r, m). Алгоритм применим для следующих параметров: 2r ^ m — 1 при любом wt^) и для 2r ^ m при wt(a) ^ m — r — 1.
ЛИТЕРАТУРА
1. Сидельников В. М. Открытое шифрование на основе двоичных кодов Рида — Маллера // Дискретная математика. 1994. Т. 6. №2. C.3-20.
2. Minder L. and Shokrollahi A. Cryptanalysis of the Sidelnikov cryptosystem // LNCS. 2007. V. 4515. P. 347-360.
3. Бородин М. А., Чижов И. В. Эффективная атака на криптосистему Мак-Элиса, построенную на основе кодов Рида — Маллера // Дискретная математика. 2014. Т. 26. №1. С.10-20.