УДК 519.1
DOI: 10.14529/ mmp210302
0 КРИПТОАНАЛИЗЕ СИСТЕМЫ BBCRS НА ДВОИЧНЫХ КОДАХ РИДА - МАЛЛЕРА
Ю.В. Косолапое1, А.А. Лелюк1
1 Южный федеральный университет, г. Ростов-на-Дону, Российская Федерация
В работе рассматривается система система BBCRS - модификация криптосистемы Мак-Элиса, предложенная М. Балди и др. В модификации матрица Gpub публичного ключа представляет собой произведение трех матриц: невырожденной (k х к)-матрицы S, порождающей матрицы G секретного [n, k]q-кода Csec и невырожденной (n х n)-матрицы Q специального вида. Отличие системы BBCRS от системы, предложенной Р. Мак-Элисом, состоит в том, что подстановочная матрица, используемая в системе Мак-Элиса, заменена матрицей Q, представляющей сумму подстановочной матрицы P и матрицы R малого ранга r(R). Позже В. Готье и др. построили атаку, позволяющую дешифровать сообщения в случае, когда Csec - обобщенный код Рида - Соломона (ОРС-код) и r(R) = 1. Ключевыми этапами построенной атаки являются, во-первых, нахождение пересечения линейных оболочек L(Gpub) = Сриъ и L(GP) = C, натянутых соответственно на строки матриц Gpub и GP, а во-вторых, нахождение кода по под-коду СриЪ П С .В настоящей работе строится атака в случае, когда Csec = RM(r, m) -двоичный код Рида - Маллера порядка r и длины 2m при r(R) = 1. В построенной в настоящей работе атаке этапы нахождения кодов Cpub П C и C полностью отличаются от соответствующих этапов для ОРС-кодов, а остальные шаги атаки адаптируют известные результаты криптоанализа системы BBCRS на ОРС-кодах.
Ключевые слова: криптосистема BBCRS; коды Рида - Маллера; криптоанализ.
Введение
Первой асимметричной кодовой криптосистемой считается система на кодах Гоп-пы, предложенная Робертом Мак-Элисом в 1978 г. [1]. В основе криптосистем типа Мак-Элиса лежит использование помехоустойчивого [n, k]q-кода Csec размерности к и длины n над конечным полем Fq. Матрица G публичного ключа имеет вид
G = SGP, (1)
где S - невырожденная (k х к)-матрица, G - порождающая матрица кода Csec, P - подстановочная (n х п)-матрица. Далее такую криптосистему будем обозначать McE(Csec). Исследования показывают, что стойкость асимметричных кодовых криптосистем зависит от используемых кодов и от конструкции ключа. В [2] построен алгоритм расщепления носителя, который может быть использован для нахождения подходящего секретного ключа в случае, когда Csec не является секретным. Сложность этого алгоритма экспоненциально зависит от размерности остова (hull) используемого в криптосистеме кода - пересечения Csec и дуального к нему Cs^c. При случайном выборе кода эта размерность небольшая, поэтому в среднем алгоритм расщепления носителя считается эффективным. Для некоторых кодов размерность остова сопоставима с размерностью кода, и поэтому алгоритм расщепления носителя в этом случае не является эффективным. В частности, для двоичного кода Рида - Маллера Csec размерность остова равна минимуму между dim(Csec) и dim(Csec). Тем не менее в [3]
и [4] построены эффективные алгоритмы нахождения подходящих секретных ключей для криптосистемы типа Мак-Элиса на двоичных кодах Рида - Маллера. Когда используемый в криптосистеме Сзес является секретным, задача нахождения подходящего секретного ключа считается сложнее. Однако в случае применения в системе типа Мак-Элиса обобщенных кодов Рида - Соломона в [5] найден полиномиальный алгоритм восстановления подходящего секретного ключа по публичному ключу. Модификация матрицы Б О в (1) или применение известных кодовых конструкций не всегда усиливает стойкость. В частности, в работах [6] и [7] для обобщенных кодов Рида - Соломона и бинарных кодов Рида - Маллера соответственно показано, что в некоторых случаях подходящий секретный ключ для системы из [8], в которой в отличие от систем типа Мак-Элиса ранг матрицы Б меньше к, может быть найден за полиномиальное время. В [9] Сидельниковым В.М. было предложено усилить стойкость кодовой криптосистемы за счет использования вместо Б О в (1) конкатенации случайно выбранных порождающих матриц кода Сзес. Эта конструкция обобщена в [10] за счет конкатенации порождающих матриц разных кодов С1, ..., Си. В ряде случаев криптоанализ таких систем может быть эффективным образом сведен к анализу систем типа Мак-Элиса МсЕ(С^, ..., МсЕ(Си) [11].
Заметим, что для оригинальной системы Мак-Элиса на кодах Гоппы до настоящего момента не найдено эффективного алгоритма нахождения подходящего секретного ключа по публичному ключу. Однако эта система характеризуется большим размером публичного ключа. В [12] с целью уменьшения размера ключа и повышения стойкости системы типа Мак-Элиса предложено вместо подстановочной матрицы Р в (1) для маскировки порождающей матрицы кода использовать невырожденную матрицу Q = Р + Я, где Я - матрица ранга 1. В случае применения обобщенных кодов Рида - Соломона это означает, что атака из [5] для такой криптосистемы неприменима. Однако в [14] был найден эффективный способ сведения криптоанализа системы из [12] на обобщенных кодах Рида - Соломона (ОРС-кодах) к применению криптоаналитического алгоритма из [5]. Одним из ключевых этапов атаки является нахождение пересечения линейных оболочек L(БGQ) = Сриь и С(ОР) = С, натянутых соответственно на строки матриц БGQ и ОР, и нахождение кода по подкоду Сриь П С. Настоящая работа посвящена адаптации алгоритма из [14] к системе из [12], построенной на бинарном коде Рида - Маллера Сзес = И,М(г, т) порядка г и длины 2т. В построенной в настоящей работе атаке этапы нахождения кодов Сриь П С и С полностью отличаются от соответствующих этапов для ОРС-кодов, а остальные шаги атаки адаптируют известные результаты криптоанализа, примененные в случае использования ОРС-кодов.
Кроме введения и заключения работа содержит три раздела. В первом разделе приводятся необходимые сведения о линейных кодах и двоичных кодах Рида - Мал-лера, свойствах произведения Шура - Адамара для кодов, а также доказывается теорема о некоторых свойствах степени подкода кода ИМ(1,т). Во втором разделе описывается криптосистема ВВСИБ из [12], и излагаются в удобном виде основные этапы атаки из [14]. Третий раздел посвящен реализации этапов атаки в случае, когда в основе системы ВВСИБ лежит код И,М(г, т).
1. Предварительные сведения и результаты 1.1. Линейные коды
Пусть - поле Галуа мощности д и [к] = {1,...,к} для к € N. Носителем вирр(х) вектора х = (х1, ...,хп) из пространства называется множество номеров его ненулевых координат, а весом '1(х) этого вектора - количество ненулевых координат. В частности, для нулевого вектора 0 € имеем: вирр(0) = 0, '1(0) = 0. Линейным [п, к,й]д-кодом С С называется подпространство ^ размерности к, для которого й = ттсеС\{о} '1(с) - кодовое расстояние. Далее предполагается, что исеСвирр(с) = [п] для [п, к,й]д-кода С, то есть С не имеет фиктивных координат. Иногда [п, к, -код называют [п, к]д-кодом и кодом коразмерности
n — k. Дуальным или ортогональным кодом к [n, k]q-коду C называется [n, n — k]q-код C± = {y £ F^ : Vc £ C (c, y) = 0}, где (c, y) = У - скалярное произведение
векторов из F^. Пусть Sn - симметрическая группа подстановок элементов множества [n], а(£ Sn) - некоторая подстановка, подстановочную (n х ^-матрицу, соответствующую а, обозначим Pa. Для [n, k, d]q-кода C код D = {(cCT(1),..., cCT(n)) : (c1,..., cn) £ C} называется перестановочно эквивалентным к C (будем писать C ~ D). Множество PAut(C) = {а : a(C) = C} называется группой перестановочных автоморфизмов C.
Для векторов a = (a1,...,an) и b = (b1 ,...,bn) из Fn рассмотрим покоординатное умножение а * b = (a1b1,..., an bn), также называемое произведением Шура - Адамара [13]. Произведением Шура - Адамара матриц A и B называется матрица A * B, строки которой имеют вид а * b, где а пробегает все строки матрицы A, а b - все строки матрицы B. Для [n, k1]q-кода C1 и [n, k2]q-кода C2 их произведение Шура -Адамара определяется как линейная оболочка, натянутая на множество векторов {а * b : а £ C1, b £ C2}: C1 * C2 = L ({a * b : a £ C1, b £ C2}) . Квадратом кода C называется пространство (код) C * C = C2. Аналогично может быть определена любая степень s кода C: Cs = Cs-1 * C. Некоторые свойства произведения Шура - Адамара для векторов и кодов можно найти в [13]. В частности, известно, что Cs = L(Gs) для любого s £ N и любой порождающей матрицы G кода C.
Над полем F2 рассмотрим кольцо полиномов F2 [X1,..., Xm] от m переменных. Для полинома f = f (X1,...,Xm) рассмотрим вектор eval(f) := (f (0,..., 0), f (0,..., 1),..., f (1,..., 1)), составленный из значений полинома f, вычисленных для всех возможных наборов значений переменных X1,..., Xm (наборы значений переменных упорядочены в естественном порядке). Двоичный [n, к,^]2-код Рида -Маллера RM(r, m) порядка r для n = 2m, k = dim(RM(r, m)) = ^[=0 C^, d = 2m-r определяется так: RM(r, m) = {eval(f) : f £ F2[X1, ...,Xm], deg(f) ^ r}. Получим, что для каждого c(£ RM(r, m)) найдется единственный полином из F2[X1, ...,Xm]
fc = f C(X1,...,Xm)= £ f(«1;...;«m)Xri ■ ... ■ Xmm , f(ei ,...,am) £ F2, (2)
(ai,...,am)€{0,1}m
wt((ai ,...,am))^r
что c = eval(fc). Полином (2) состоит из Г=0 Cm слагаемых. Через M(RM(r, m)) обозначим подмножество из F2 [X1,..., Xm], соответствующих кодовым словам из RM(r,m). Из теории двоичных кодов Рида - Маллера известно, что RM(r,m) С RM(min{r + 1; m}, m) и RM(r, m)x = RM(m — r — 1, m). Тогда остов (hull) кода Рида -Маллера, определяемый как пересечение кода с ортогональным к нему кодом, также
код Рида - Маллера:
ИМ(г, т) П ИМ(г, т) = ИМ(шт{г; т - г - 1}, т). (3)
1.2. Свойства произведения Шура — Адамара для подкодов коразмерности один кода И,М (1, т)
Из определения кодов Рида - Маллера вытекает, что если Сх, с2 € И,М(г, т), то С1 *с2 = еуа1(/С1 • /С2). Таким образом, вектору сх *с2 соответствует полином /С1 • /С2 степени не выше шт{2г, т}. Так как с * с = с для любого вектора над двоичным полем, то из равенства с * с = еуа1(/С • /С) = с = еуа1(/С) легко получить, что
/С • /С = /С, /С • (1 + /С) = 0. (4)
В [4] доказано, что ЯМ(гх, т) * И,М(г2, т) = ЯМ(ш1п{гх + г2; т},т), в [7], что квадрат подкода размерности к — 1 кода Рида - Маллера ЯМ(г, т) для г ^ [т/2] часто совпадает с И,М(2г, т). Найдем условия, когда степень в € N любого собственного подкода С кода ЯМ(1,т) не совпадает ни с одним кодом ЯМ(г, т), г € [т]. Так как ^ш(И,М(1,т)) = т +1, достаточно рассмотреть случай, когда ^ш(С) = т. Обозначим г(А) ранг матрицы А
Лемма 1. Пусть / = /¿(Хь..., Х„) = а0 + а1 Хх + ... + а^Хт € Е2[Х ,...,Хт] -ненулевой полином степени не выше 1, г = 1,...,п. Равенство deg(/1 • ... • /п) = п выполняется, тогда и только тогда, когда г(Мп) = п, где
Мп = (аг,-), I = 1,...,п,^' = 1,...,т. (5)
Доказательство. Докажем по индукции, что из равенства deg(/1 •.../) = п вытекает равенство г(Мп) = п. Пусть п = 2 и deg(/1 • /2) = 2. Из (4) получаем, что /х = /2 + 1. Предположим, что строки (а1, ...,ат) и (а1, ...,атт) линейно зависимые. В поле это означает, что эти строки совпадают. А из /1 = /2 + 1 тогда получаем, что /1 = /2. Но из (4) вытекает, что /1 • /2 = /1 = /2 и deg(/1 • /2) ^ 1, что противоречит условию. Поэтому ранг матрицы М2 равен двум. Пусть теперь утверждение верно для п > 2. Докажем, что утверждение справедливо для случая п+1. Предположим, что матрица
М = ( М
Мп+1 = I ап+1 ап+1 \а1 , ..., ат
имеет ранг п, но при этом deg(/1 • ... • /п+1) = п +1. Без потери общности можно полагать, что матрица Мп имеет ранг п. Тогда существуют такие Л1,...,Лп € Е2, что коэффициенты аП+1, -^а^1 полинома /п+1 = /га+1(Х1, ...,Хт) = ап+1 + аП+1Х1 + ... + ат+1Хт представимы в виде: а™+1 = Ла^, г = 1, ...,т. В этом случае, либо
/п+1 = Л/ + ... + Л/, либо /п+1 = Л/ + ... + Лп/п + 1. Из (4) для Ь € получаем
/1 • ... • Уп+1 = Л1(/1 • ... • Уп) + ... + МЛ • ... • /п) + Ь(/1 • ... • Л).
Но тогда deg(/1 • ... • /п+1) ^ п, что противоречит условию.
Докажем, что deg(/1 •... • /п) = п, если ранг матрицы (5) равен п. Так как г(Мп) = п, то найдутся такие п переменных ,...,Х^п, т = {г1,...,гп}, что МТ = (а^.), где
I = 1,..., п,] = 1,..., п, полного ранга. Пусть А - коэффициент при мономе Х^•...•Х^ в произведении п полиномов /1г...,/га. Несложно заметить, что А = • ... •
ага,гст(п). Так как (—1)5 = 1 для любого натурального в в Е2, то определитель (п х п)-матрицы МП по определению равен
) = (-1)*• аМст(1) • ... • ^(п) = аМст(1) • ... • ап,гст(„) ,
где N (а) - четность подстановки а. Таким образом, ёе^МГ) = А. Так как г(МТ) = п, то А = 1, откуда получаем, что • ... • /га) = гг. □
Лемма 2. Пусть С С ИМ(1,т). Тогда Сп = ИМ(п,т) для любого 1 ^ п ^ т.
Доказательство. Без потери общности, рассмотрим случай &ш(С) = т. Пусть С = (ёг)г=1;...,т - порождающая матрица С. Оценим &т(Сга). Заметим, что Сп = £(Сга). Строки Сп имеют вид gil *• • • *gin, где ¿1,..., гп € {1,..., п}. Так как разных (по набору множителей) произведений всего х = ^п=1 , то ^т(Сга) ^ X. С другой стороны, сЦт(11М(гг, т)) = 1 + х, поэтому Сп ф ВМ(п,т). □
Теорема 1. Пусть С С ИМ(1,т), dim(C) = т. Если в М(С) найдутся такие полиномы /1,...,/т, что ранг матрицы Мп вида (5) при п = т равен т, то С5 = ИМ^,т) для любых 1 ^ V ^ в ^ т.
Доказательство. Пусть С - произвольная порождающая матрица кода С. Так как каждому вектору из С соответствует полином из Е2 [Х1,..., Хт] степени не выше одного, то из Сп = £(Сга) получаем, что для любого натурального в код С5 не содержит векторов, соответствующих полиному из Е2[Х1, ...,Хт] степени выше в. Отсюда С5 = ИМ(г, т) для г > в. Из условия теоремы и леммы 1 получаем, что в коде С5 найдется вектор, соответствующий полиному степени в. Отсюда С5 = ИМ(г, т) для г < в. А из леммы 2 вытекает, что ф КМ(8,т). □
2. Система ББСИБ и известные результаты ее криптоанализа 2.1. Криптосистема ББСИ.8
В [12] с целью противодействия известным структурным атакам построена модификация системы Мак-Элиса, в которой в публичном ключе вместо подстановочной матрицы Р используется невырожденная матрица. Опишем эту криптосистему. Пусть С5ес - [п, к, -код с полиномиальным алгоритмом декодирования Вессзес : ^ ^ . Секретным ключом системы является набор (С5ес, Б, где С5ес - порождающая (к х п)-матрица С5ес, Б - невырожденная (к х к)-матрица над полем , Q = П + Я - невырожденная (п х п)-матрица, где П - подстановочная (п х п)-матрица, Я -случайная (п х п)-матрица ранга 1 над полем . Публичный ключ — (к х п)-матрица
СрмЬ = Б С«ес
Q-1. (6)
Шифрование сообщения т(€ ) выполняется по правилу
с = тСр„ь + е, ^;(б) ^ Ь := [(^ - 1)/2]. (7)
При расшифровании с сначала умножается на секретную матрицу ф: сф = -1С5ес + еП + еЯ. Так как г(Я) = 1, то Я можно представить в виде Я = в • а, где в, а € Fn. Поэтому вектор еЯ имеет д возможных значений а^а, которые можно перебрать за полиномиальное по д число операций, а1 ,...,ад - попарно различные элементы Fq. Расшифрование с заключается в переборе возможных значений а^а неизвестного еЯ и проверке неравенства
"№1(с — ш*Сриь) ^ ш* = ВесСзес(сф — а*а)£. (8)
Вектор сф — а^а = шб"-1 С5ес + еП является зашумленным кодовым слово кода С5ес при а^а = еЯ, при этом вес ошибки еП не больше Тогда ш^ = ш и (8) будет выполнено. Однако возможно ошибочное расшифрование, когда (8) выполняется для разных ш^ и ш^. Описанную криптосистему обозначим ВВСК8(С5ес).
2.2. Известные результаты криптоанализа
2.2.1. Представление матрицы СрмЬ Единичную матрицу порядка к обозначим /^.
Лемма 3. Публичный ключ системы ББСЯБ(Сзес) представим в виде
СрмЬ = С(/п — А), £(С) - С^ес, г(А) = 1. (9)
Доказательство. Представим ф-1 из (6) в виде ф-1 = П-1 + Я, где Я - неизвестная матрица. Тогда из равенства = /п + П-1Я + ЯП + ЯЯ = /п получаем Я(П + Я) = —П-1Я, откуда Я = —П-1Я(П + Я)-1 = —П-1Яф-1. Из (6) вытекает СрмЬ = 5-1С5есП-1(/п — Яф-1). Очевидно, что £(5-1С5есП-1) ~ С5ес. Так как г {Я) = 1 и г(Я~1) = п, то г(ЯЯ~1) = 1. Полагая С = ^С^П"1 и А = Я€}~\ получим доказываемое утверждение. □
Из ф-1 = П-1(/п — Яф-1) и г(ф-1) = г(П-1) = п вытекает, что г(/п — Яф-1) = п. Пусть
СрмЬ = ^СрмД С = £(^-1С«есП-1) = £(0«есП-1) = ^^ес^ (10)
где подстановка п-1 соответствует П-1 = Рп-1. Представим А из (9) в виде
А = Ьт • а, Ь, а € Fn. (11)
Пара (ао, Ьо) называется подходящей, если для Ао = Ь^ • ао найдется такая порождающая матрица С' кода С, что
СрмЬ = С'(/п — А0). (12)
2.2.2. Представление векторов кода СрмЬ
Лемма 4. Для любого вектора с из СрмЬ найдется единственный вектор р из С, такой, что с = р — (р, Ь)а, где (р, Ь) - скалярное произведение векторов р и Ь.
Доказательство. Для любого с из СрмЬ найдется единственный ш из Fk, такой, что, учитывая (9) и (11), имеет место представление с = шСрмь = р — (р, Ь)а. Единственность р = тС вытекает из единственности т и того, что г(С) = к. □
Если (а0, Ь0) - подходящая пара, то для каждого кодового вектора с(€ СрмЬ) найдется такой уникальный вектор р, что с = р — (р, Ь0)а0.
2.2.3. Схема атаки из [14]
В [14] на ВВСИ^С^) построена атака в случае, когда С5ес - обобщенный код Рида - Соломона и г(Я) = 1. Атака состоит из трех этапов: на первом этапе находится код
Сь = Ср„ь П С = {р — (р, Ь)а : (р, Ь) = 0, р € С}; (13)
на втором этапе к коду СЬ применяется криптоаналитический алгоритм Сидельнико-ва - Шестакова [5] и находится код С; на третьем этапе находится подходящая пара (а0, Ь0). Успех нахождение кода (13) и кода С во многом, как представляется, зависит от используемого кода С5ес. В частности, технику, примененную в [14], не удалось адаптировать авторами настоящей статьи для случая С5ес = И,М(г, т). В то же время найдены другие способы нахождения Сь и С в этом случае. Описанию этих способов посвящены подразделы 3.1 и 3.2.. Нахождение же подходящей пары (а0, Ь0), во многом совпадает с алгоритмом из [14]. Этот алгоритм с некоторыми упрощениями и полным обоснованием приведен в разделе 3.3..
2.2.4. Некоторые соотношения кодов СрмЬ и С
Далее приводятся соотношения для Срмь и С, используемые при нахождении Сь и (а0, Ь0). В [14] многие свойства не доказываются. Здесь приводятся их доказательства.
Лемма 5. Пусть С, СрмЬ и Сь - коды, определенные в соответствии с (10) и (13), Ь € С±, а € С. Тогда
1) Сь = {р € С : (р, Ь) = 0};
2) а1ш(Ср„ь п С) = к — 1;
3) С1 П Срмь = {х € С1 : (х, а) = 0};
4) а1ш(Сх пСмь) = п — к — 1;
5) (С П СрмЬ)_1" = С± + СрмЬ;
6) (С1 П СДь)± = С + Срмь.
Доказательство. Утверждение 1) вытекает непосредственно из определения (13). Докажем 2). Из равенства (р, Ь) = 0 в определении (13) вытекает, что
Срмь п С = С П£(Ь)Х. (14)
Учитывая условие Ь € С1-, имеем: С П ^(Ь)1 = С. Так как ^ш^ф)1) = п — 1, то £(Ь)- + С = Fn. Поэтому из (14) следует а1ш(Срм6 П С) = &ш(С) + а1ш(£(Ь)-) — &ш(С+^(Ь)1) = к — 1. Докажем 3). В С1 ПС^ лежат векторы из С1, ортогональные векторам из СрмЬ:
С1 П С-Мь = {х € С1 : (х, р) — (х, (р, Ь)а) = 0, Ур € С} = {х € С1 : (х, (р, Ь)а) = 0, Ур € С} = {х € С1 : (р, Ь)(х, а) = 0, Ур € С}.
Так как а € С, то найдется р'(€ С), что (р', Ь) = 0. Тогда С1 П С^ = {х € С1 : (х, а) = 0}. Свойства 4), 5) и 6) вытекают из свойств ортогонального дополнения. □
Если Ь € С^ или а € С, то Сриь = С .В этом случае матрица публичного ключа ВВСИ^С^) представляет собой матрицу публичного ключа МсЕ(С5ес). Поэтому известные для МсЕ(С5ес) структурные атаки применимы к ВВСК8(С5ес). К таким атакам относятся алгоритмы, построенные, в [3-5]. Далее предполагается, что
Ь € Сх, а € С. (15)
3. Криптоанализ в случае Сзес = ИМ(г, т) 3.1. Нахождение подкода Сь
Пусть С5ес - бинарный [п, к,^]2-код Рида - Маллера ИМ(г, т), п = 2т, к = Е1=0 (™), ^ = 2т-г. Рассмотрим фактор-множество СриЬ/(СриЬ П С) = СриЬ/Сь. Так как dim(Cpub) = к, dim(Cpub П С) = к — 1, то
СРиь/Сь = {С1 = Сь, С2}, Сг = Ь + Сь = {Ь + с : с € Сь}, г =1, 2.
3.1.1. Случай нечетного -^(а)
Лемма 6. Пусть С5ес = ИМ(г, т), для векторов а и Ь в (11) выполняется (15) и -^(а) - нечетное. Тогда все векторы из С2 имеют нечетный вес.
Доказательство. Из леммы 4 и (15) получаем, что в СриЬ найдется вектор вида р + а. Так как -—;(р + а) = -—;(р) + -^(а) — 2|вирр(р) П вирр(а)| в Е2, то -1(р + а) - нечетное. Так как для г = 0, ...,т — 1 ненулевые векторы из ИМ(г, т) имеют четный вес, то ненулевые векторы из Сь также имеют четный вес. Следовательно в С2 найдется хотя бы один вектор а0 нечетного веса. Из представления С2 = а + Сь получаем, что векторы из С2 имеют нечетный вес. □
Замечание 1. При выполнении условий леммы 6, для нахождения Сь достаточно в Сриь найти к — 1 линейно независимых векторов четного веса.
3.1.2. Случай четного -—;(а), г ^ т — г — 1
При четном -^(а) в ряде случаев можно найти подкод кода Сь размерности к — 2, вычислив СриЬ П Сриь. Чтобы показать это, рассмотрим следующую задачу.
Задача 1. Пусть у € ИМ(г, т), -—;(у) - четное, К С £(у+ИМ(г, т)) - подпространство размерности dim(RM(r,т)), К = ИМ(г, т). Найти размерность К П К±.
Из г ^ т — г — 1 и (3) вытекает, что ИМ(г,т) С ИМ(г,т)х = ИМ(т — г — 1,т).
Теорема 2. Пусть у € , у € ИМ(г, т), -—;(у) - четное, г ^ т — г — 1, К С £(у + ИМ (г, т)), dim(K) = dim(RM(r, т)), К = ИМ(г,т). Тогда
, ,К, у € и±,и = ИМ(г,т) П К, , л
К П Кх = { ' 1 ' ; ' (16)
1 W С ИМ(г, т) П К, у € и±, ^(Ж) = dim(RM(г, т)) — 2.
Доказательство. Найдем размерность U = RM(r, m) П K:
dim(U) = dim(RM(r, m) П K) = dim(RM(r, m)) + dim(K) - dim(RM(r, m) + K)
= 2 dim(RM(r, m)) - dim(L(y) + RM(r, m)) = = dim(RM(r, m)) — 1.
Теперь представим K в виде: K = U U{y + U}. Тогда Kx = Ux П {y + U. Так как {y + U}± = U± П L(y)x, то Kx = U± П L(y)x. Поэтому
K П Kx = (U U {y + U}) П (Ux П L(y)x)
= (U П (Ux П L(y)x)) U ({y + U} П (Ux П L(y)x)) .
Так как U С RM(r, m) и r ^ m — r — 1, то RM(m — r — 1,m) С U± и U С Ux. Рассмотрим два случая: y G Ux и y G Ux. Пусть y G Ux. Его вес четный, поэтому (U U {y + U}) С Ux, U С L(y)x и y G L(y)x Следовательно {y + U} С L(y)x и K П Kx = (U U{y + U}) = K.
Пусть теперь y G Ux, откуда U С L(y)x и dim(U + L(y)x) = 2m. Тогда
dim (U П (Ux П L(y)x)) = dim (U П L(y)x)
= dim(U) + dim(L(y)x) — dim(U + L(y)x) = dim(U) — 1.
Покажем, что {y + U} П (U± П L(y)x) = 0. Действительно, {y + U} П U± = {y + c, c G U С U± : y + c G U±}. Отсюда y G U±, что противоречит условию. Поэтому К П К1- С U для у £ и±, причем dim (К П К-1) = dim([/) - 1. □
Рассмотренная выше задача эквивалентна поиску условий на вектор а, при которых СриЬ П Cpub С Сь, причем U соответствует Сь. Пусть а четного веса выбирается случайно и равновероятно из Fg™ \ С (где С определен в (10)), при этом выполняется (15). Обозначим вероятность того, что a G С^. Учитывая, что
Cb С С С Сх С С^, получим
2dim(Cb-) — 2dim(C) 22m-dim(C)+1 — 2dim(C) 1
Pa£C^ — 22"1 — 2dim(c) ~~ 22"1 — 2dim(c) ^ 2а™(км(г'т))-1'
Таким образом, с вероятностью не менее 1 — paeCJ- код СриЬ П С^ является под-кодом кода Сь размерности k — 2. Чтобы найти Сь по СриЬ П С^ следует, например, случайно выбирать векторы из Сриь. С одинаковой вероятностью 1/2 выбираемый вектор принадлежит Сь или СриЬ П СДь. Тогда с вероятностью 1/4 выбранный вектор принадлежит Сь \ (СриЬ П СДь). Таким образом, потребуется в среднем четыре попытки для нахождения базиса Сь.
3.1.3. Случай четного wt(a), r > m — r — 1
В этом разделе рассматривается способ нахождения кода
Сь = Сх П СДь, (17)
в общем случае, отличного от Сь. Однако, как показано в далее в лемме 8, этот код также может использоваться для нахождения секретного кода С.
В рамках условий задачи 1 рассмотрим случай г > т — г — 1. В частности, имеем: И,М(г,т) Э ИМ(г, т)- = И,М(т — г — 1,т). Из у € ЯМ(г,т) получаем: £(у)- Э И,М(т — г — 1,т). Обозначим V = £(у)- П ЯМ(т — г — 1,т), dim(V) = п — к — 1. Заметим, что И,М(т — г — 1, т) С и- для и из (16). Для К- = и- П £(у)- получаем: V С К -. Так как dim(K -) = п — к, то К - представим в виде объединения смежных классов: V и V + х, где х € К - \ И,М(т — г — 1,т), т — г — 1 < г, и -^(х) - четное число. Таким образом, используя теорему 2, можно описать пересечение К - П К:
К - П К
К х € V-
IV С ИМ(т — г — 1, т) П К х € V-,
где dim(WУ) = dim(RM(m — г — 1, т)) — 2. Получим, что с вероятностью 1/4 случайно выбранный вектор из К - принадлежит V \ (К - П К). Поэтому в среднем один из четырех случайно выбранных векторов позволяет построить Сь.
3.2. Нахождение кода С
В [7] показано, что квадрат подкода коразмерности один кода И,М(г, т) с большой вероятностью равен И,М(2г, т). Леммы 7 и 8 позволяют перейти от С2 и С2 к С.
3.2.1. Случай г > 1
Лемма 7. Пусть 2 ^ 2г ^ т — 2, а СриЬ, С и Сь определенны в (10) и (13), причем
а(С2) = ИМ(2г,т),а € ^. (18)
Тогда п-1 о а € РАи^ИМ(г,т)).
Доказательство. Из определения (10) кода С вытекает, что в С5ес = ЯМ(г, т) найдется такой подкод размерности dim(RM(r,т)) — 1, что Сь = п-1(£0). Из (18) и С ИМ(2г,т) вытекает, что £2 = ИМ(2г,т). Так как а(С2) = ИМ(2г,т), то
ЯМ(2г,т) = а(С2) = а((п-1(До))2) = а(п-1(Д2))
= а(п-1(И,М(г,т)2)) = а(п-1(И,М(2г, т))).
Отсюда п-1 о а € РАи^ИМ(2г,т)). Так как РАи^ИМ(1,т)) = ... = РАи1(И,М(т — 2,т)), то тг"1 о а Е РА\й(ИМ(г,т)). □
Лемма 8. Пусть 2 ^ 2(т — г — 1) ^ т — 2, а СриЬ, С и Сь из (10) и (17), причем
а(С2) = ИМ(2(т — г — 1),т),а € ^. (19)
Тогда п-1 о а € РАи^ИМ(г,т)).
Доказательство. Из (10) вытекает, что С- = п-1(ЯМ(ш — г — 1,т)) и в С^с = И,М(т — г — 1, т) найдется такой подкод размерности dim(RM(m — г — 1, т)) — 1, что Сь = п-1(Д0). Из (19) и £2 С ЯМ(2г, т) вытекает, что £0 = ИМ(2г, т). Повторяя выкладки из леммы 7, получим 7Г-1 о а Е РАШ;(11М(г, т)). □
Из a(n-1(RM(r,m))) = RM(r,m), для а из (18) или (19), и (10) получаем
C = n-1(CSec) = п-1 (RM(r,m)) = a-1(RM(r,m)). (20)
Поэтому с помощью а по произвольной порождающей матрице кода RM(r, m) может быть найдена порождающая матрица кода C (см. (10)). Заметим, что нахождение такой а, что a(Cb) = RM(2r,m), может быть выполнено эффективно (см. [3,4]).
3.2.2. Случай r = 1
Из теоремы 1 вытекает, что Ds = RM(v,m) для любого D С RM(1,m) размерности m, такого, что в M(D) найдутся m линейно независимых полиномов /1r..,/m, коэффициенты которых при X1, ...,Xm образуют невырожденную (m х щ^-матрицу. Заметим, что любые m линейно независимых векторов из D образуют его порождающую матрицу, причем G1 = TG2 для любых порождающих матриц G1 и G2 кода D, где r(T) = m. Поэтому, если для линейно независимых /1,...,/m матрица (5) при n = m имеет ранг m — 1, то и для любых m линейно независимых полиномов из M(D) ранг такой матрицы равен m - 1 .
Заметим, что Сь - подкод кода C, перестановочно эквивалентного RM(1, m), причем перестановка, переводящая RM(1,m) в C, неизвестна. Поэтому невозможно найти M(Cb) и по рангу матрицы (5) при n = m, составленной из полиномов множества M(Cb), проверить выполнение условий теоремы 1. Рассмотрим случай, когда по коду Cb можно определить, выполняются ли условия теоремы 1. Напомним, что код D С Fn называется самодополнительным, если вектор из всех единиц 1 содержится в D [15]. Например, двоичные коды Рида - Маллера и коды Хэмминга являются самодополнительными кодами.
Лемма 9. В M(Cb) найдутся такие /1 , ...,/m, что ранг Mn вида (5) при n = m равен m, тогда, и только тогда, когда Cb не является самодополнительным кодом.
Доказательство. Вектору 1 £ F^m соответствует полином /(X1, ...,Xm) = 1. Если Cb - самодополнительный код, то для любого полинома / £ M(Cb) имеем: 1+/ £ M(Cb).
Сначала докажем, что при r(Mm) = m код Cb не является самодополнительным. Предположим, что это не так. Тогда M(Cb) можно представить в виде объединения непересекающихся равномощных классов: M(Cb) = M0 U M1, где M0 содержит все полиномы с нулевым свободным коэффициентом, а M1 - с ненулевым. Заметим, что M0 - группа по сложению, поэтому M(Cb) = M0 U {1 + M0}. Так как M(Cb) можно рассматривать, как векторное подпространство размерности m в пространстве размерности m + 1 над полем F2, то в M0 можно выбрать m — 1 линейно независимых полиномов /1,..., /m-1. Добавим к этому набору любой /m из M1 и получим m линейно независимых полиномов. Тогда в m х (m + 1)-матрице M0 = (aj), l = 1,... ,m, j = 0,..., m, составленной из коэффициентов этих полиномов, первый по счету столбец будет иметь везде нулевые значения, кроме нижнего элемента a^T, а последняя строка матрицы (5) при n = m будет линейно выражаться через первые m — 1 строк, что противоречит условию r(Mm) = m.
Докажем теперь, что если Cb - не самодополнительный код, то r(Mm) = m. Предположим, что матрица (5) при n = m имеет ранг m — 1. Отсюда следует, что первая строка матрицы Mm линейно выражается через остальные m — 1 строк при
использовании подходящих коэффициентов ^1,...,^т-1 € Но так как г(Мо) = т, то £тТЦ1 ^«0+1 = ао. Следовательно, в М(Сь) существуют f и 1 + f. Так как М(Сь) - группа, то 1 € М(Сь) и код Сь - самодополнительный, что противоречит предположению. Поэтому г(Мт) = т. □
Из леммы 9 получаем, что в случае, когда С не самодополнительный, исследуемый способ атаки неприменим. В силу теоремы 1, степени С не позволяют получить код Рида - Маллера и найти а, используемую при нахождении С (см. (20)). Выяснить, является ли С самодополнительным, можно путем проверки на принадлежность вектора 1 этому коду.
3.3. Нахождение подходящей пары (а0, Ь0)
Из (13) получаем, что Ь € (С^ПС)-, а из утверждения 3) леммы 5, что а € (Ср^ЬП С-. Тогда из (15) и утверждений 5) и 6) леммы 5 следует, что Ь € (С П СриЬ)- \ Си а € (С- П Ср^)- \ С. Пусть Ь0 и а0 - произвольные векторы из (С П С^)- \ С- и (С-ПСриЬ)-\С соответственно. Так как dim((CpuЬПС)-) = п — к + 1, dim(C-L) = п — к, то (СриЬ П С/С- = {С = С-, <С2}, причем неизвестные Ь и Ь0 лежат в классе
С2 = Ь + С- = Ьо + С-. (21)
Аналогично, неизвестные а и а0 лежат в одном смежном классе фактор-множества (С- П СриЬ)-/С. Поэтому существуют такие р0(€ С-) и яо(€ С), что
Ьо = Ро + Ь, ао = яо + а. (22)
Для всех р € С П СриЬ верно равенство с = р — (р, Ьо)ао, так как (р, Ьо) = (р, ро + Ь) = (р, ро) + (р, Ь) = 0 из (22) и (13). В этом случае (р, Ьо) = 0 не зависит от ао. Пусть теперь р € С\Сриь. Найдем условия на ао и Ьо, при которых р — (р, Ьо)ао ортогонален Сиь, то есть (р — (р, Ьо)ао) € СрадЬ. Пусть г € С-^, тогда (р — (р, Ьо)ао, г) = (р, г) — (р, Ьо)(ао, г). Так как
р € С \ Сриь = С \ Сь, (23)
то из определения Сь получаем (р, Ь) = 0, и поэтому (р, Ьо) = 0. Так как (р —
1± урмЬ
(р, Ьо)ао, г) = (р, г) — (ао, г) в Е2, то рассмотрим два случая: г € С-^ П С- и г €
СриЬ \ С-. Пусть г € С^ П С-. Тогда, с одной стороны, (р, г) = 0, а с другой стороны, (ао, г) = (а, г) + (яо, г) = 0 (п. 3 леммы 5). В этом случае (р — (р, Ьо)ао, г) = 0 для любых ао и Ьо из (С-ПСг-иЬ)±\С и (СПСриЬ)-\С- соответственно. Пусть г € С^\С-. Из пункта 5) леммы 5 имеем: С?-иЬ С (СриЬ П С)-, поэтому г € С2 (см. (21)), и существует такой уг € С-, что г = уг+Ь = уг+Ьо — ро. Тогда (р, г) = (р, уг) + (р, Ь) = 1, так как (р, Ь) = 1 из (13) и (23). Таким образом, (р, г) — (ао, г) = 1 — (ао, г). Поэтому ао следует выбрать так, чтобы (ао, г) = 1 для всех г € СДь \ С-.
Лемма 10. Пусть С С СриЬ, тогда найдется ао € (С- П С-иЬ)± \ С, что (ао, г) = 1 для всех г € С-иЬ \ С-.
ур«Ь
ур«Ь)
Доказательство. Заметим, что г принадлежит классу из С^ь/(СриьПС ), отличному П С-. Следовательно существует го € С?-иЬ
ур«Ь
от С-иЬ П С-. Следовательно существует го € С?-иЬ \ С -, что для каждого г найдется € С-иЬ П С-, для которого выполняется г = го + . Поэтому (ао, г) = (ао, го) +
(a0, zr) = (a0, r0) и a0 следует выбрать так, чтобы (a0, r0) = 1 хотя бы для одного r0 из Cpub \ C±. Покажем, что такой a0 существует. Предположим, что (a0, r0) = 0 для каждого a0 G (С± П С^)^ \ С. Тогда в фактор-множестве (Сх П С^ц^/С = {С = С, С2} класс С2 ортогонален СДЬ и все векторы из С ортогональны Откуда
С С Сриь, что противоречит условию леммы. □
Теорема 3. Пусть b0 G (CpubП С\ Сa0 G (Сх П СД^ \ С такой, что (a0, r) = 1 хотя бы для одного вектора r G СДЬ \ С±. Тогда (a0, b0) - подходящая пара.
3.4. Использование (a0, b0) и С при дешифровании
Пусть публичный ключ Gpпредставим в виде (12), где матрица A0 = b^ a0 известна, (a0, b0) - подходящая пара. Если в (12) матрица r(/n — A0) = n, то G' = Gpub(In — A0)-1. Рассмотрим случай, когда не делается предположений о ранге матрицы /га — A0. Тогда G' неизвестна, однако код С = L(G') ~ RM(r, m) известен. Поэтому можно выбрать произвольную порождающую матрицу G кода С. Известно (см., например, [3], [4]), что по G для фиксированной порождающей матрицы GrmiV,™) кода Рида - Маллера можно найти такую невырожденную (k х к)-матрицу Б, подстановочную (n х п)-матрицу Р, что G = SGrm^,™) Р• Принятый шифртекст c вида (7) может быть представлен в виде
c = mGpub + e = mG'(/n — A0) + e = mG' — mG' A0 + e = mG' — a • a0 + e, a = (mG', b0) G F2.
Так как матрицы G' и G порождают один и тот же код, то существует такой m, что mG' = mG. Тогда c = m'SGR^^P — a • a0 + e. Так как a G {0,1}, то по c можно построить два вектора: z0 = c + 0 • a0, z1 = c + 1 • a0. Учитывая, что b0 G С получаем dim(C П L(b0)^) = k — 1. Другими словами, для одной половины векторов из С имеем a = 0, а для другой половины - a = 1 . Поэтому при равновероятности информационных сообщений значения a = 0 и a = 1 равновероятны. Используя подходящий ключ (1s, Р) и быстрый декодер для кода Рида - Маллера, по z0 и z1 соответственно могут быть найдены два возможных вектора ошибок e1 и e2, где
et = zt — (Dec(zi Р-1)S-1)G •
Тот ej, для которого wt(e^) ^ t, выбирается в качестве вектора, который использовался как вектор ошибок e при шифровании по правилу (7). Используя найденный ej, по вектору c — ej и матрице Gpрешая систему уравнений mGp= c — ej может быть найден m. Если вес e1 и e2 не превышает t, то в этом случае не представляется возможным определить, какой из них использовался при шифровании. При возникновении такой ситуации возможным решением является сохранение двух вариантов дешифрования. Стоит отметить, что вероятность такой ситуации равна вероятности того, что вектор a0 + e попадает в шар радиуса t некоторого кодового слова кода С, при условии, что e выбирается случайно среди векторов веса не выше t, при этом на a0 накладываются условия из теоремы 3. В настоящей работе эта вероятность не оценивается, однако заметим, что при шифровании часто для большей маскировки используют векторы ошибок максимального веса t. В частности, если wt(e) = t в правиле (7), то при криптоанализе эта информация о весе может использоваться для выбора из векторов e0 и e1 того, который использовался при шифровании.
Заключение
В настоящей работе получены результаты, которые могут применяться для определения слабых ключей криптосистемы BBCRS(Csec) в случае Csec = RM(r,m). В частности, представляется, что к слабым ключам следует относить те, для которых найдется такое s G N, что C£ совпадет с каким-нибудь кодом Рида - Маллера RM(r,m) для r < m (обобщенное условие (19)). Из теоремы 1 вытекает, что в качестве кандидатов на сильные ключи могли бы рассматриваться ключи, построенные на коде RM(1,m), так как среди подкодов коразмерности 1 этого кода найдутся те, для которых любая их степень не совпадает ни с каким двоичным кодом Рида - Маллера. Однако представляется, что криптосистема на кодах первого порядка является малоперспективной, так как имеет малую скорость передачи данных: длина кода экспоненциально зависит от размерности кода.
Литература / References
1. McEliece R.J. A Public-Key Cryptosystem Based On Algebraic Coding Theory. DSN Progress Report, 1978, pp. 42-44.
2. Sendrier N. Finding the Permutation Between Equivalent Linear Codes: the Support Splitting Algorithm. IEEE Transactions on Information Theory, 2000, vol. 46, no. 4, pp. 1193-1203.
3. Minder L., Shokrollahi A. Cryptanalysis of the Sidelnikov Cryptosystem. Advances in Cryptology, 2007, vol. 4515, pp. 347-360. DOI: 10.1007/978-3-540-72540-4_20
4. Borodin M.A., Chizhov I.V. Efficiency of Attack on the McEliece Cryptosystem Constructed on the Basis of Reed-Muller Codes. Discrete Mathematics and Applications, 2014, vol. 24, no. 5, pp. 273-280. DOI: 10.1515/dma-2014-0024
5. Sidel'nikov V.M., Shestakov S.O. On an Encoding System Constructed on the Basis of Generalized Reed-Solomon Codes. Discrete Mathematics and Applications, 1992, vol. 2, no. 4, pp. 439-444. DOI: 10.1515/dma.1994.4.3.191
6. Wieschebrink C. Cryptanalysis of the Niederreiter Public Key Scheme Based on GRS Subcodes. Post-Quantum Cryptography, Darmstadt, 2010, pp. 61-72. DOI: 10.1007/978-3-642-12929-2_5
7. Chizhov I.V., Borodin M.A. Hadamard Products Classification of Subcodes of Reed-Muller Codes Codimension 1. Discrete Mathematics and Applications, 2020, vol. 32, no. 1, pp.115-134.
8. Berger T., Loidreau P. How to Mask the Structure of Codes for a Cryptographic Use. Designs, Codes and Cryptography, 2005, vol. 35, no. 1, pp. 63-79.
9. Sidelnikov V.M. Public-Key Cryptosystem Based on Binary Reed-Muller Codes. Discrete Mathematics and Applications, 1994, vol. 4, no. 3, pp. 191-208. DOI: 10.1515/dma.1994.4.3.191
10. Egorova E., Kabatiansky G., Krouk E., Tavernier C. A New Code-Based Public-Key Cryptosystem Resistant to Quantum Computer Attacks. Journal of Physics, 2019, no. 1163, pp. 1-5. DOI: 10.1088/1742-6596/1163/1/012061
11. Deundyak V.M., Kosolapov Yu.V. On the Strength of Asymmetric Code Cryptosystems Based on the Merging of Generating Matrices of Linear Codes. Proceedings of the XVI International Symposium Problems of Redundancy in Information and Control Systems, Moscow, 2019, pp. 143-148.
12. Baldi M., Bianchi M., Chiaraluce F., Rosenthal J., Schipani D. Enhanced Public Key Security for the McEliece Cryptosystem. Available at: https://arxiv.org/abs/1108.2462 (accessed 28 July 2021).
13. Randriambololona H. On Products and Powers of Linear Codes Under Componentwise Multiplication. Available at: http://arxiv.org/abs/1312.0022 (accessed 28 July 2021).
14. Gauthier V., Otmani A., Tillich J.-P. A Distinguisher-Based Attack on a Variant of McEliece's Cryptosystem Based on Reed-Solomon Codes. Available at: https://arxiv.org/abs/1204.6459 (accessed 28 July 2021).
15. Betten A., Braun M., Fripertinger H., Kerber A., Kohnert A., Wassermann A. Error-Correcting Linear Codes: Classification by Isometry and Applications, Heidelberg, Springer, 2006.
Юрий Владимирович Косолапов, кандидат технических наук, кафедра «Алгебра и дискретная математика:», Южный федеральный университет (г. Ростов-на-Дону, Российская Федерация), [email protected].
Анастасия Андреевна Лелюк, студент, кафедра «Алгебра и дискретная математика», Южный федеральный университет (г. Ростов-на-Дону, Российская Федерация), [email protected].
Поступила в редакцию 14 марта 2021 г.
MSC 94A60, 68P25 DOI: 10.14529/mmp210302
CRYPTANALYSIS OF THE BBCRS SYSTEM ON REED-MULLER BINARY CODES
Yu.V. Kosolapov1, A.A. Lelyuk1
1 Southern Federal University, Rostov-on-Don, Russian Federation
E-mail: [email protected], [email protected]
The paper considers the BBCRS system which is a modification of the McEliece cryptosystem proposed by M. Baldi and some others. In this modification matrix Gpub of the public key is the product of three matrices: a non-singular (k x k)-matrix S, a generator matrix G of a secret [n, k]q-code Csec, and a non-singular (n x n)-matrix Q. The difference between the modified system and the original system is that the permutation matrix used in the McEliece system is replaced by a non-singular matrix Q. The matrix Q is obtained as the sum of a permutation matrix P and a matrix R of small rank r(R). Later, V. Gauthier and some others constructed an attack that allows decrypting messages in the case when Csec is a generalized Reed-Solomon code (GRS code) and r(R) = 1. The key stages of the constructed attack are, firstly, finding the intersection of the linear span L(Gpub) = Cpub and L(GP) = C that spanned on the rows of the matrices Gpub and GP respectively, and secondly, finding the code C by the subcode Cpub n C. In this paper we present an attack in the case when Csec is the Reed-Muller binary code of order r, length 2m and r(R) = 1. The stages of finding the codes Cpub n C and C in this paper are completely different from the corresponding steps in attack by V. Gauthier and some others and other steps are the adaptation of the known results of cryptanalysis that applied in the case of GRS codes.
Keywords: BBCRS cryptosystem; Reed-Muller codes; cryptanalysis.
Received March 14, 2021