УДК 517.9
БО!: 10.14529/ ттр190308
АНАЛИЗ СТОЙКОСТИ НЕКОТОРЫХ КОДОВЫХ КРИПТОСИСТЕМ, ОСНОВАННЫЙ НА РАЗЛОЖЕНИИ КОДОВ В ПРЯМУЮ СУММУ
В.М. Деундяк1'2, Ю.В. Косолапое1
1 Южный федеральный университет, г. Ростов-на-Дону, Российская Федерация
2 Научно-исследовательский институт <Специализированные вычислительные устройства защиты и автоматика:», г. Ростов-на-Дону, Российская Федерация
Строится полиномиальный алгоритм разложения произвольного линейного кода С в прямую сумму неразложимых подкодов с попарно непересекающимися носителями. В основе построенного алгоритма лежит нахождение базиса линейного кода, состоящего из минимальных кодовых векторов, то есть таких векторов, носители которых не содержатся в носителях других кодовых векторов этого линейного кода. Такой базис находится за полиномиальное от длины кода число операций. По найденному базису, используя сцепленность носителей минимальных кодовых векторов, за полиномиальное от длины кода число операций далее находятся базисные векторы неразложимых подкодов, в прямую сумму которых раскладывается исходный линейный код. На базе построенного алгоритма строится алгоритм структурной атаки на кодовую асимметричную криптосистему типа Мак-Элиса, основанную на коде С, который полиномиально зависит от сложности структурных атак на криптосистемы типа Мак-Элиса, основанные на подкодах, в прямую сумму которых раскладывается код С. Таким образом, показано, что использование прямой суммы кодов не позволяет существенно усилить стойкость криптосистемы типа Мак-Элиса к атакам на ключ.
Ключевые слова: прямая сумма кодов; криптосистема типа Мак-Элиса; атака па ключ.
Введение
В постквантовую эпоху одной из альтернатив современным криптосистемам рассматриваются кодовые криптосистемы типа Мак-Элиса [1]. Для практического применения используемые в таких криптосистемах коды должны быть трудно отличимыми от случайных кодов, но при этом эти коды должны иметь быстрый декодер. Первое свойство, как правило, необходимо для обеспечения высокой стойкости криптосистем к атакам на ключ, а второе - для обеспечения высокой скорости расшифрования данных легальными получателями. С точки зрения стойкости, наилучшими для использования являются случайные коды, однако сложность легального расшифрования в таких криптосистемах будет сравнима со сложностью взлома этой криптосистемы. С другой стороны, многие коды с быстрыми декодерами обладают алгебраической структурой, позволяющей провести эффективную атаку на ключ. Например, в настоящее время известны эффективные атаки на ключ для криптосистем типа Мак-Элиса на кодах Рида - Соломона и двоичных кода Рида - Маллера (см. [2-6]).
Одним из возможных подходов в построении новых кодов является использование конструкций на основе известных кодов. В [7] предложена криптосистема на основе индуцированного кода С, который в категории линейных пространств изоморфен I-кратной прямой сумме одного базового кода с быстрым алгоритмом декодирования. В [7] предположена высокая стойкость такой криптосистемы к структурным атакам, так как найденный авторами способ криптоанализа неполиномиально зависит от длины
базового кода. В [8] подтверждена высокая стойкость этой криптосистемы к атаке, основанной на применении алгоритма расщепления носителя индуцированного кода.
В настоящей статье рассматривается кодовая криптосистема типа Мак-Элиса на коде С, представляющем собой прямую сумму неразложимых кодов С\, ..., Су. Такая криптосистема является обобщением криптосистемы, предложенной в [7]. Для рассматриваемой криптосистемы строится алгоритм структурной атаки, отличный от алгоритмов, построенных в [7,8]. В работе показано, что стойкость системы типа Мак-Элиса на коде С сравнима со стойкостью криптосистемы типа Мак-Элиса на коде Сг, где Сг - такой код, что криптосистема на этом коде обладает наибольшей стойкостью среди всех криптосистем типа Мак-Элиса на кодах С1, ..., С^.
Статья имеет следующую структуру. В первом разделе рассматриваются необходимые свойства прямых сумм кодов. Алгоритмы структурных атак для кодовых криптосистем, основанных на прямой сумме неразложимых кодов, строятся в третьем разделе, а второй раздел посвящен построению вспомогательного эффективного алгоритма разложения произвольного кода в прямую сумму неразложимых кодов.
1. Прямая сумма кодов
Сначала приведем необходимые предварительные сведения. Пусть - поле Галуа мощности [п] = {1,..., п}, - гг-мерное линейное пространство над полем Под тензорным произведением (к х гг)-матрицы А = (а^) и произвольной матрицы В над полем будем понимать, как обычно, матрицу вида:
В пространстве Е™ рассмотрим линейный [п, к, (¿]д-код С размерности к, длины п, имеющий кодовое расстояние [9]. Пусть С с и Не - порождающая и проверочная матрицы этого кода. Группу перестановочных матриц размера (п х п) обозначим МРга, а симметрическую группу перестановок множества [п] обозначим <5>га. Отметим, что произвольной перестановке <т(Е ¿>га) можно поставить в соответствие перестановочную (п х гг)-матрицу, которую будем обозначать Ра. Код И длины п называется перестановочно-эквивалентным коду С, если существует такая перестановка <т(Е 6>п), что Со = СсРа] ПРИ этом будем писать Б = а (С). Пусть РАи1(С)(С МРга) - группа перестановочных автоморфизмов [п, к, (¿]д-кода С, то есть группа таких матриц, что для любой порождающей матрицы С с и любой матрицы Р £ РАи^С) матрица СсР также является порождающей для С.
Носителем вектора х = {х1,...,хп) € назовем множество вирр(х) = {г € [п] : Хг ф 0}, а носителем множества А С Г™ будем называть множество номеров
Для множества т С [п] рассмотрим проектор 7ГТ : —> Е™, который вектору х = (ж1, ...,хп)(Е Е") ставит в соответствие вектор 7гг(х), г-ая координата которого имеет вид:
А® В
ia^iB ... а1}ПВ\ а2,\В ... а,2,пВ
(1)
\akiiB ... ак>пВ J
SUPP(A) = UaeAsupp(a).
если г6г: иначе.
Отметим, что supp("7rr(x)) С т. Напомним, что (к х гг)-матрица G ранга к имеет систематический вид, если существует такое упорядоченное множество т, |т| = к, что 7tt(G) = Ik, где 7tt(G) - матрица, составленная из столбцов матрицы G с номерами, принадлежащими множеству т.
Рассмотрим конструкцию прямой суммы кодов. Пусть Ci - [ /. /гу;. I/у; |К( V L с ПОрождающей матрицей Gq , |SUPP(Ci)| = щ > 0, % = 1, ...,v. Рассмотрим код:
С= Сг 0 ... ®CV = {с = (ci || ... || с„) :Ci£Ci,i = 1,...,г;}, (2)
где а || b - конкатенация векторов а и Ь. Код С будем называть внешней прямой суммой кодов Ci, ..., Cv. Очевидно, что С является [n,k,d]q-кодом, причем d = min{<ii,..., dv}, п = k = h, а порождающая матрица Gc кода С
может быть представлена в виде:
Gc = diag(G6l,...,G6v) ■=
( G6l \
\ Gc„ /
Пусть П = {!,...,Пг}, т2 = {щ + 1,...,П1 + п2}, ..., т„ = + Коду С1
сопоставим подкод С г = 7Г п{С) кода С. Тогда
С=С1 + ... + С.€, 8иРР(Сг)П8иРР(С,-), (4)
где I ф ]. В этом случае говорят, что С - прямая сумма подкодов С г.
Рассмотрим простые свойства суммы кодов. Следующая лемма легко вытекает из определений.
Лемма 1. Пусть Сг - [щ, д^-код, |8иРР(С*г)| = щ, г = С - [п, к, д]я-код
вида (2) представлен в виде (4). Тогда
1) если а € <5>га - перестановка, действующая на [а], то
а(С) = а(С1) + ... + а(С,€)] (5)
2) код С1-, дуальный коду С, представим в виде: С1- = С^1 + ... + С^;
3) если
0! = {сЦаё(£>ь..., А,) : Ог е РАи1((7г)},
то ©1 С РАиЬ(С).
Для ] = 1,2 рассмотрим [щ, ¿¿]я-код К) с порождающей матрицей СкГ Код с порождающей матрицей Скг <8> Ск2 является тензорным произведением кодов К\ и К2, т.е. [п\п2) к\к2, (¡^(¡Уд-кодом К\ ® К2 [10]. Код С вида (2), где коды С^ для всех ] совпадают с [п, к, (¿]д-кодом С, равен [ьп, ьк, (¿]д-коду ^ ® С. Несложно видеть, что имеет место представление кода виде суммы изоморфных кодов (см. (4)):
¥'"д (Е) С = Сг + ... + С1], 81УРР(Сг) = тг = {(г - 1)п + 1,..., гп}. (6)
Лемма 2. Пусть С = ^ ® С, где С - [п, к, д]я-код,
@2 = {{V ® /й)с11аё(£>ь Д,) : V е МР„, Д е РАи^С)}.
Тогда ©1 С 02 С РАиЬ(С).
Доказательство. Для доказательства достаточно показать, что матрицы вида V 0 1п и di&g(Dl,..., Иу) по отдельности принадлежат РАи^Е^ 0 С). Отметим, что, по определению, 61 С 62, а принадлежность матрицы diag(-Dl,..., И у) группе РАШ;^ 0 С) следует из утверждения 3) леммы 1. Покажем, что 6 РАШ; (Е^ <8> С). Так как
порождающая матрица С с может быть представлена в виде 0 то, используя свойства тензорного произведения, получим:
Сс(У ® 1п) = (/„ 0 Сд)(У 0 1п) = V 0 С с = (У 0 4)(/„ 0 С с) = (У 0 1~к)СС-
Равенство Сс(У 0 1п) = (V ® означает, что матрица Сс(У 0 1п) является
порождающей матрицей кода С, следовательно, V 0 1ц € РАШ;(С).
□
2. Разложение кода в прямую сумму подкодов
[п, к, (¿]д-код С будем называть разложимым, если он может быть представлен в виде (4), где V > 2. Будем говорить, что код С является разложимым длины разложения V, если он может быть представлен в виде суммы (4), где каждый из подкодов С г не является разложимым. Заметим, что в этом случае представление (4) по существу единственно с точностью до перестановки подкодов Сг в сумме. Неразложимый код С для удобства можно называть разложимым кодом длины разложения один.
В работе [12] используется введенное в [11] понятие минимальных кодовых векторов для изучения группы автоморфизмов линейных кодов над простым полем. Напомним, что кодовый вектор с(е С) называется минимальным вектором, если в С не существует вектора с', линейно независимого с вектором с, такого, что 8ирр(с') С вирр(с) [11]. В [12, с. 215], на основе использования свойства носителей базисных минимальных кодовых векторов показана возможность представления кодов в виде прямой суммы кодов. Ниже в этом разделе решается задача построения эффективного алгоритма разложения произвольного линейного [п, к, (¿]д-кода С в прямую сумму вида (4), в которой все слагаемые Сг являются неразложимыми подкодами кода С.
Два вектора будем называть сцепленными, если их носители пересекаются по непустому множеству. Рассмотрим множество М(С), где С - произвольный линейный [п, к, (¿]д-код, состоящее из всех минимальных векторов этого кода. Множество минимальных векторов {сх, ...,с4}(С М(С)), назовем связным, если для любой пары векторов найдется такая последовательность векторов, что она начинается с одного вектора, заканчивается другим вектором пары, и при этом подряд идущие векторы последовательности сцеплены. Отметим, что два связных множества пересекаются, то их объединение связно. Максимальное связное множество назовем компонентой связности. Множество всех компонент связности кода С обозначим Z(C). Отметим, что аналогичные понятия содержатся в [12].
Известно, что строки произвольной порождающей матрицы кода С в систематическом виде являются минимальными кодовыми векторами, образующими базис [13]. Такой базис будем обозначать Вм{С). Так как любая порождающая матрица кода может быть приведена к систематическому виду с помощью алгоритма Гаусса, то сложность нахождения базиса Вм(С) - 0(п3). Алгоритм нахождения базиса Вм(С) по произвольной порождающей матрице кода С обозначим Ппс1МтВа818.
Лемма 3. Пусть С - разложимый код вида (4); где Cj - неразложимые подкоды. Тогда
1) М(С) = UUM{Ci);
2) Z(C) = {M(C1),...,M(CV)};
3) вм(С) = и-и1вм(сг).
Доказательство. Первые два утверждения непосредственно вытекают из условий леммы и определений. Третье утверждение вытекает из первых двух.
□
Построим алгоритм Decomposition (см. алгоритм 1), который для произвольного линейного кода С строит такие наборы векторов _В1; ..., Bv из М(С), что для кода С имеет место разложение (4), где коды Ci неразложимы и Bi = Вм(Сг).
Исходные параметры: Gc - порождающая матрица [п, к, б?]д-кода С Результат: В\, ...,BV- базисы кодов Cj, составленные из минимальных
кодовых векторов Вм{С) = {gi,..., g^} = FindMinBasis(Gc) V= [к], г= 1
до тех пор, пока Г / 0 выполнять
Для произвольного j G V: Ц, = {j}, Wi = supp(gp, changed = true
до тех пор, пока changed = true выполнять changed = false
для каждого I G V \ {j} выполнять если supp(g[) П Wi ф 0 тогда changed = true Vi = Vi U {/} Wt = Wt и supp(gi) конец условия конец цикла конец цикла
Bi = {g^:j€Vi},V = V\Vi,i = i+ 1,
конец цикла возвратить Bi,..., Вv
Алгоритм 1. Decomposition
Теорема 1. Пусть С - разложимый код длины разложения v. Тогда по произвольной порождающей матрице Gc этого кода алгоритм Decomposition находит v базисов неразложимых подкодов С\,..., Cv, носители которых попарно не пересекаются; причем найденные базисы состоят из минимальных кодовых векторов, а сложность алгоритма - 0(п3 + к2п).
Доказательство. На первом шаге алгоритма Decomposition строится базис ВМ(С) из минимальных кодовых векторов. Сложность этого шага - 0(п3). В оставшейся части алгоритма из найденных минимальных базисных кодовых векторов строятся связные множества Bi, г = 1, ...,v. Так как носители множеств Bi не пересекаются и построенный на первом шаге базис Вм{С) состоит из минимальных кодовых векторов, то
из и.З леммы 3 следует, что Bi - базисы Вм(С¿) кодов Cj, состоящие из минимальных кодовых векторов. Сложность построения множеств В^ - 0{к2п). Таким образом, 0(п3 + к2п) - сложность алгоритма Decomposition.
□
Рассмотрим примеры неразложимых кодов.
Пример 1. [n,k,d]q-код С с максимальным достижимым расстоянием (МДР-код) является неразложимым кодом. Сначала рассмотрим случай, когда к < Так
как С - МДР-код, то d = п — к + 1 > \п/2\ + 1. Отсюда получаем, что любые два кодовых вектора кода С сцеплены, поэтому С неразложим. Рассмотрим случай к > |_и/2_|. Так как С± - также МДР-код размерности п — к и для него выполняется условие п — к < |_r?,/2j, то С± - неразложимый код. Из второго утверждения леммы 1 следует, что код С - неразложимый. К классу МДР-кодов относятся такие коды, как коды Рида - Соломона [9], некоторые коды в ранговой метрике [14].
Пример 2. Пусть RM(r, m) - двоичный код Рида - Маллера порядка г и длины 2т [9]. Коды RM(1, m) и RM(m-r-l,m) являются неразложимыми. Рассмотрим сначала код RM(1, m). Это [2m,m+ 1, 2т_1]д-код. Отсюда следует, что этот код не может быть разложимым, в противном случаем имелись бы подкоды, с минимальным кодовым расстоянием менее 2т~1. Так как для RM(1, т) дуальным кодом является код порядка т — г — 1, то из второго утверждения леммы 1 вытекает, что код RM (т — г — 1, т) также является неразложимым кодом.
На основе известных неразложимых кодов могут быть построены некоторые другие неразложимые коды. Как следует из [15], если С - неразложимый [п, k,d]q-код с порождающей (к х гг)-матрицей Gc, Go -произвольная (к х гго)-матрица, то [п + По, к, (¿]д-код /С с порождающей матрицей Gfc = (Gc || Go) является неразложимым кодом, причем d > d. Отметим, что задача подсчета числа неразложимых [п, k]q-кодов для заданных п, к и q решена в [16].
3. Структурные атаки на кодовые криптосистемы 3.1. Кодовые криптосистемы
В [1] Р. Мак-Элисом впервые была предложена асимметричная кодовая криптосистема на линейном коде Гоппы. Стойкость таких криптосистем основана на том, что матрица публичного ключа неотличима за полиномиальное время от порождающей матрицы случайного кода, задача декодирования которого, как известно из теории кодирования, относится к NP-полным задачам [9]. В этом разделе приводится описание криптосистемы типа Мак-Элиса МсЕ(С) на произвольном коде С.
Рассмотрим криптосистему МсЕ(С) на [N,K,D]q-коде С: секретным ключом является пара (S,P), где S - невырожденная (К х Х)-матрица, Р - перестановочная (N х ]У)-матрица из МРдг- Публичным ключом является пара (G,t = |_(D — 1)/2_|), где матрица G имеет вид:
В = SGCP. (7)
Шифрование вектора m(G F^-) выполняется по правилу: mВ + е = с, где wt(e) < t. Для расшифрования с достаточно декодировать вектор сР~1 в вектор mS", из которого с помощью умножения на матрицу S~l найти т.
Среди атак на кодовые криптосистемы выделяются атаки на шифрограмму и структурные атаки - атаки на открытый ключ. Целью первых может являться, например, нахождение зашифрованного сообщения по известной шифрограмме или набору шифрограмм, или модификация шифрограммы без обнаружения приемной стороной факта модификации. Атаки на открытый ключ, также называемые структурными атаками, направлены на получение информации о секретном ключе по известному открытому ключу. В этой работе нас интересуют структурные атаки. Для криптосистем типа Мак-Элиса целью структурных атак является нахождение по матрице В подходящего секрет,ного ключа (S', Р') такого, что
S'GCP' = В.
Отметим, что в общем случае S ф S' и/или Р ф Р', однако известно (см., например, [9]), что РР'~1 Е PAut(C), и этот ключ может быть использован при расшифровании по приведенному выше правилу.
3.2. Алгоритм атаки на систему McE(F^ 0 С)
Пусть С - неразложимый [п, k, d]q-код, v - натуральное число. Рассмотрим представление кода FJ®Cb виде суммы изоморфных кодов Ci (см. (6)).
Теорема 2. Пусть В = S(IV 0 G^)P - матрица публичного ключа криптосистемы McE(F^ 0 С), где S - невырожденная (vk х vк)-матрица, Р Е МР^, Attack -алгоритм нахождения подходящего секрет,ного ключа для системы МсЕ(С% Qifi) - сложность этого алгоритма. Тогда существует алгоритм нахождения подходящего секрет,ного ключа для системы McE(F^0(7) со сложностью 0(2v3n3 + v3k2h + vn + vQin)).
Доказательство. Доказательство основано на построении алгоритма нахождения подходящего секретного ключа.
Из теоремы 1 вытекает, что с помощью алгоритма Decomposition можно найти такие непересекающиеся подмножества ^¿(С [vn]), [фг\ = п, что для каждого г = 1, ...,v линейная оболочка строк матрицы Пф^В) изоморфна коду С. Без нарушения общности будем полагать, что элементы множеств ^ = {р\, ...,ргй} упорядочены: ргт < plj для любых т < j. Найдем такую перестановку а Е SVn, что сг(г) = psi_^s_lyh для г = (s — 1 )п + 1 ,...,sn, s = l,...,v. Пусть Ра - перестановочная (vn х г>п)-матрица, соответствующая перестановке а. Тогда матрица РР&1 имеет вид:
РР&1 = 0 /n)diag(VTi,..., Wv),
где V Е МР^, Wi Е МРЙ. Из леммы 2 следует, что матрица V®In принадлежит группе автоморфизмов кода F^0C. Поэтому матрица ВР~1 может быть представлена в виде:
BP-1 = S(IV 0 G6)diag(Wi,..., Wv). Пусть Ti = {(г — 1 )n + 1,..., in}, i = 1,..., v. Заметим, что для всех г Е [и]: ЫВР;1) = 7ГГ4(ЭД 0 G6))Wi = TtvMGcWi,
где Шг = {(г —+ ..., ik}, г = 1, ...,v. Так как матрица S квадратная и полного ранга kv, то rank(7rWi(S')) = к. Поэтому по матрице i[Ti(BP~l) за полиномиальное время может быть построена (к х п)-матрица f3i ранга к, которая имеет представление: fii = SiG^Wi, где Si - (к х /с)-матрица ранга к. Таким образом, по матрице В с полиномиальной по п сложностью могут быть найдены v матриц, каждая из которых представляет матрицу публичного ключа криптосистемы МсЕ(С).
Применяя алгоритм Attack к матрицам f3i7 найдем соответствующие подходящие ключи (SI, W[). При этом WiW'~l G PAut(C'). Из леммы 2 получаем, что матрица
diag(WWi-\ ..., WtW^1) = PP^mg{W[-\ ..., W'~l)
принадлежит группе автоморфизмов кода F^ ® С, поэтому из уравнения
S'Gc = ВР;\\\щ{Ш[-\ ..., W'~l), (8)
где Gc = Iv ® Gq , с полиномиальной по п сложностью может быть найдена матрица S'. Отсюда получаем, что (S1, diag(W/1/,..., W^)Pa) - подходящий секретный ключ для системы McE(F^ ® С) с матрицей публичного ключа В.
В алгоритме Crackl (см. алгоритм 2) приведены шаги нахождения подходящего секретного ключа. Из теоремы 1 вытекает, что сложность первого шага этого алгоритма - 0(vsns + v3k2h). Сложность второго шага - 0(vh). Третий шаг имеет сложность 0(vQ(n)), а сложность четвертого и пятого шагов - 0(v3n3). Отсюда получаем сложность алгоритма Crackl.
Исходные параметры: В, Attack
Результат: (S', Р') - подходящий секретный ключ
1. (£>i, ...,BV) = Decomposition (Б)
2. (SUPP(Bi),...,SUPP(B„))
3. W! = Attack^-.^P"1)), п = {(г - l)h + 1,..., in}, i = l,...,v
4. Из уравнения (8) найти S'
5. P' = diag(W/1/,..., W'u)Pa
возвратить (Sf, P')
Алгоритм 2. Crackl 3.3. Алгоритм атаки на систему McE(C*i ф ... ф Cv)
Пусть Ci - неразложимый [щ, ki, dj\q-код над полем Fg, i = 1, ...,v, С\® ... ® Cv -код с порождающей матрицей вида (3), McE(Ci ф... фCv) - криптосистема типа Мак-Элиса на основе этого кода, Attack^ - алгоритм нахождения подходящего секретного ключа для криптосистемы McE(Cj), Q(rii) - сложность этого алгоритма, г = 1, ...,v,
Л = {Attackj}^=1. (9)
Пусть /C(Cj) - множество всех матриц публичных ключей криптосистемы McE(Cj). Если коды Ci и Cj имеют одинаковую размерность и длину, но не являются комбинаторно-эквивалентными кодами, то JC(Ci) П JC(Cj) = 0. Будем предполагать, что если на вход алгоритма Attack^ подается (ki х /^-матрица JC(Ci)), то этот алгоритм завершает свою работу с сообщением об ошибке _L за полиномиальное время.
Теорема 3. Пусть В = S ■ diag(G¿ ,..., Gq ) ■ Р - матрица публичного ключа криптосистемы McE(C*i ф ... ф Cv), где C¿ - неразложимый [щ,кг,дг]я-код, i = l,...,v, k = n = S - невырожденная (k x k)-матрица, P G MPra; A
- набор вида (9), Q = maxie[t)]{(5(n¿)}. Тогда существует алгоритм нахождения подходящего секрет,ного ключа для системы McE(C*i ф ... ф Cv) со сложностью 0(2п3 + k2n + n+{v + l)vQ/2).
Доказательство. Для удобства код с порождающей матрицей В обозначим В. Сначала рассмотрим случай, когда ф (Uj,kj) для всех i ф j. В этом случае для нахождения подходящего секретного ключа можно воспользоваться модификацией алгоритма Crackl. Модификация заключается в изменении шагов 2 и 3. В частности, так как по предположению, коды C¿ попарно отличаются параметрами, то по набору базисов, полученных на первом шаге, несложно построить такую перестановочную матрицу Ра, что
а-1(В) = В1ф...фВ,,Вг = Сг.
Модификация шага 3 заключается, с одной стороны, в том, r¿ = SUPP(C¿), а с другой стороны, в том, что к матрице iiTi(BP~l) применяется алгоритм Attacks
Теперь рассмотрим другой частный случай, когда параметры всех кодов одинаковые: (rii,ki) = (ñ,k) для всех г = 1,...,г>. После применения первых трех шагов алгоритма Crackl, будет найдена такая перестановка а, что а~1(В) = В\ ф ... ф Bv. Так как параметры кодов одинаковые, то для определения, какому коду из набора Ci, ...,CV изоморфен каждый код £>¿, необходимо выполнить перебор по алгоритмам из набора (9). Шаги нахождения подходящего секретного ключа в этом случае приведены в алгоритме Crack2 (см. алгоритм 3).
Исходные параметры: В, (Attacki,..., Attack^)
Результат: (S', Р') - подходящий секретный ключ
1. (Bi,...,Bv) = Decomposition(£>)
2. (SUPP(S1),...,SUPP^))^P(J
3.A=[v],g = (9l,...,gv)e[v]v
4. для каждого г G [w] выполнять
для каждого а £ А выполнять
если Attacka(7TTi(SP-1)) = W¡ ф _L тогда
9Í = а
А = А \ {а}
выйти из внутреннего цикла конец условия конец цикла
конец цикла
5. По вектору g найти перестановку 7 такую, что 7(г) = Qí
6. Из уравнения S'GC = BP~\P~l ® Iñ)dia,g{W^Hl)',W^) найти S'
7. Р' = diag(^_1(1),..., W^1{v))(Py 0 Iñ)Pa
возвратить (Sf, Р')
Алгоритм 3. Crack2
Особенность алгоритма Crack2 в отличие от алгоритма Crackl состоит в том, что необходимо выполнять перебор по алгоритмам взлома из набора (9). В худшем случае
на шаге 4 алгоритма Crack2 выполняется обращение (v + l)v/2 раз к алгоритмам из этого набора. Поэтому, в силу того, что ö(2v3n3 + v3k2n + vn + vQ(n)) - сложность алгоритма Crackl, отсюда легко вытекает, что алгоритма Crack2 имеет сложность ö(2n3 + k2n + n+{v + l)vQ/2).
□
Отметим, что алгоритм Crack2 является обобщением алгоритма Crackl и может быть применен для нахождения подходящего секретного ключа для McE(F^ ® С), если положить Attack^ = Attack для всех г = 1, ...,v.
Заключение
Попытки усилить стойкость криптосистемы типа Мак-Элиса предпринимаются, например, за счет использования новых кодов в классическом протоколе криптосистемы и/или путем модификации самого протокола криптосистемы (см., например, работы [7,13-20]). В связи с этим актуальна задача анализа стойкости полученных модификаций.
С одной стороны, результаты настоящей работы показывают, что структурный криптоанализ криптосистемы типа Мак-Элиса МсЕ(С), построенной на основе [п,к, d]-кода С = С\ ф ... ф Cv, сводится к структурному анализу стойкости криптосистем McE(Ci), ..., МсЕ(СХ). С другой стороны, d = min{<ii,..., dv}, где di - минимальное кодовое расстояние кода Сг, и к = кг. Поэтому стойкость системы МсЕ(С) к атакам на шифрограмму методом декодирования по информационным совокупностям, как следует, например, из результатов работы [21], не превышает стойкости к соответствующим атакам для криптосистемы McE(CV), где dy = d. Более того, используя алгоритм Decomposition (см. алгоритм 1), имеется возможность усилить атаку на шифрограмму, так как этот алгоритм позволяет определить носители под-кодов. В этом случае алгоритм декодирования по информационным совокупностям может применяться не к коду с порождающей матрицей В, а к v подкодам с базисами Bi, ..., Bv. Таким образом, использование прямой суммы кодов не усиливает криптосистему типа Мак-Элиса ни к атакам на ключ, ни к атакам на шифрограмму. Отметим, что аналогичный вывод получен в [13] для модификации протокола Мак-Элиса, в которой используется кодовая конструкция типа конкатенации кодов.
Литература
1. McEliece, R.J. A Public-Key Cryptosystem Based on Algebraic Coding Theory / R.J. McEliece // DSN Progress Report. - 1978. - P. 42-44.
2. Sidel'nikov, V.M. On an Encoding System Constructed on the Basis of Generalized Reed - Solomon Codes / V.M. Sidel'nikov, S.O. Shestakov // Discrete Mathematics and Applications. - 1992. - V. 2, № 4. - P. 439-444.
3. Деундяк, В.М. Модификация криитоаиалитического алгоритма Сидельникова - Шеста-кова для обобщенных кодов Рида - Соломона и ее программная реализация /В.М. Деундяк, М.А. Дружинина, Ю.В. Косолапов // Известия высших учебных заведений. СевероКавказский регион. Технические науки. - 2006. - № 4. - С. 15-19.
4. Wieschebrink, С. Cryptanalysis of the Niederreiter Public Key Scheme Based on GRS Subcodes / С. Wieschebrink // Proceedings of Third International Workshop. - Berlin, 2010. - P. 61-72.
5. Minder, L. Cryptanalysis of the Sidelnikov cryptosystem / L. Minder, A. Shokrollahi // Advances in Cryptology - EUROCRYPT 2007, Lecture Notes Computer Science. - 2007. -№ 4515. - P. 347-360.
6. Бородин, M.A. Эффективная атака на криптосистему Мак-Элиса, построенную на основе кодов Рида - Маллера / М.А. Бородин, И.В. Чижов // Дискретная математика. -2014. - Т. 26, № 1. - С. 10-20.
7. Деундяк, В.М. Криптосистема на индуцированных групповых кодах / В.М. Деундяк, Ю.В. Косолапов // Моделирование и анализ информационных систем. - 2016. - Т. 23, № 2. - Р. 137-152.
8. Косолапов, Ю.В. Об алгоритме расщепления носителя для индуцированных кодов / Ю.В. Косолапов, А.И. Шигаев // Моделирование и анализ информационных систем. -2018. - Т. 25, № 3. - Р. 276-290.
9. Сидельников, В.М. Теория кодирования / В.М. Сидельников. - М.: Физматлит, 2008.
10. Morelos-Zaragoza, R.H. The Art of Error Correcting Coding / R.H. Morelos-Zaragoza. -Chichester, West Sussex: John Wiley к Sons, 2006.
11. Massey, J.L. Minimal Codewords and Secret Sharing / J.L. Massey // Proceeding of 6th Joint Swedish-Russian Workshop on Information Theory. - 1993. - P. 276-279.
12. Августинович, С.В. Об автоморфизмах линейных кодов над простым полем / С.В. Авгу-стинович, Е.В. Горкунов // Сибирские электронные математические известия. - 2017. -№ 14. - С. 210-217.
13. Sendrier, N. On the Concatenated Structure of a Linear Code / N. Sendrier // Applicable Algebra in Engineering, Communication and Computing. - 1998. - V. 9, № 3. - P. 221-242.
14. Berger, T.P. Construction of New MDS Codes from Gabidulin Codes / T.P. Berger, A.V. Ourivski // Proceeding of ACCT'9. - 2004. - C. 40-47.
15. Assmus, E.F. The Category of Linear Codes / E.F. Assmus // IEEE Transaction on Information Theory. - 1998. - V. 44, № 2. - P. 612-629.
16. Fripertinger, H. Isometry Classes of Indecomposable Linear Codess / H. Fripertinger, A. Kerber // Lecture Notes in Computer Science. - 1995. - V. 948. - P. 194-204.
17. Сидельников, В.М. Открытое шифрование на основе двоичных кодов Рида - Маллера / В.М. Сидельников // Дискретная математика. - 1994. - Т. 6, № 2. - С. 3-20.
18. Deundyak, V.M. On the Berger - Loidreau Cryptosystem on the Tensor Product of Codes / V.M. Deundyak, Yu.V. Kosolapov // Journal of Computational and Engineering Mathematics. - 2018. - V. 5, № 2. - P. 16-33.
19. Красавин, А.А. Использование модифицированной (u\u + v)-конструкции в криптосистеме McEliece / А.А. Красавин // Труды МФТИ. - 2018. - Т. 10, № 2. - С. 189-191.
20. Kabatiansky, G. A New Code-Based Cryptosystem via Pseudorepetition of Codes / G. Kabatiansky, C. Tavernier // Proceedings of ACCT XVI. - 2018. - P. 189-191.
21. Деундяк, В.М. Использование тензорного произведения кодов Рида - Маллера в асимметричной криптосистеме типа Мак-Элиса и анализ ее стойкости к атакам на шифрограмму / В.М. Деундяк, Ю.В. Косолапов // Вычислительные технологии. - 2017. -Т. 22, № 4. - С. 43-60.
Владимир Михайлович Деундяк, кандидат физико-математических наук, доцент, кафедра <Алгебра и дискретная математика:», Южный федеральный университет (г. Ростов-на-Дону, Российская Федерация); старший научный сотрудник, ФГАНУ НИИ «Спецвузавтоматика> (г. Ростов-на-Дону, Российская Федерация), vl.deundyak@gmail.com.
Юрий Владимирович Косолапов, кандидат технических наук, кафедра <Алгебра и дискретная математика:», Южный федеральный университет (г. Ростов-на-Дону, Российская Федерация), itaim@mail.ru.
Поступила в редакцию 17 января 2019 г.
MSC 68P30, 94A60 DOI: 10.14529/mmpl90308
THE USE OF THE DIRECT SUM DECOMPOSITION ALGORITHM FOR ANALYZING THE STRENGTH OF SOME McELIECE TYPE CRYPTOSYSTEMS
V.M. Deundyak1'2, Yu. V. Kosolapov1
1 Southern Federal University, Rostov-on-Don, Russian Federation
2Research Institute "Specialized Computing Protection Devices and Automation",
Rostov-on-Don, Russian Federation
E-mails: vl.deundyak@gmail.com, vl.deundyak@gmail.com
We construct a polynomial algorithm for decomposing an arbitrary linear code C into a direct sum of indecomposable subcodes with pairwise disjoint supports. The main idea of the constructed algorithm is to find the basis of a linear code consisting of minimal code vectors, that is, such vectors whose supports are not contained in the supports of other code vectors of this linear code. Such a basis is found in the polynomial number of operations, which depends on the code length. We use the obtained basis and the cohesion of supports of minimal code vectors in order to find the basic vectors of indecomposable subcodes such that the original linear code is the direct sum of these subcodes. Based on the obtained algorithm, we construct an algorithm of structural attack for asymmetric McEliece type cryptosystem based on code C, which polynomially depends on the complexity of structural attacks for McEliece type cryptosystems based on subcodes. Therefore, we show that the use of a direct sum of codes does not significantly enhance the strength of a McEliece-type cryptosystem against structural attacks.
Keywords: direct sum of codes; McEliece type cryptosystem; attack on the key.
References
1. McEliece R.J. A Public-Key Cryptosystem Based on Algebraic Coding Theory. DSN Progress Report, 1978, pp. 42-44.
2. 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.
3. Deundyak V.M., Druzhinina M.A., Kosolapov Yu.V. [Modification of the Sidelnikov-Shestakov Cryptanalytic Algorithm for Generalized Reed-Solomon Codes and its Software Implementation], Izvestiya vysshih uchebnyh zavedenij. Severo-Kavkazskij region. Tekhnicheskie nauki, 2006, no. 4, pp. 15-19. (in Russian)
4. Wieschebrink C. Cryptanalysis of the Niederreiter Public Key Scheme Based on GRS Subcodes. Third International Workshop, Berlin, 2010, pp. 61-72.
5. Minder L., Shokrollahi A. Cryptanalysis of the Sidelnikov Cryptosystem. Advances in Cryptology - EUROCRYPT 2007, Lecture Notes Computer Science, 2007, no. 4515, pp. 347-360.
6. Borodin M.A., Chizhov I.V. Effective Attack on the McEliece Cryptosystem Based on Reed-Muller Codes. Discrete Mathematics and Applications, 2014, vol. 26, no. 1, pp. 273-280.
7. Deundyak V.M., Kosolapov Yu.V. Cryptosystem on Induced Group Codes. Modelling and Analysis of Information Systems, 2016, vol. 23, no. 2, pp. 137-152.
8. Kosolapov Yu.V., Shigaev A.N. [On the Support Splitting Algorithm for Induced Codes] Modelling and Analysis of Information Systems, 2018, vol. 25, no. 3, pp. 276-290. (in Russian)
9. Sidel'nikov V.M. Teoriya kodirovaniya [Coding Theory], Moscow, Fizmatlit, 2008.
10. Morelos-Zaragoza R.H. The Art of Error Correcting Coding. Chichester, West Sussex, John Wiley k Sons, 2006.
11. Massey J.L. Minimal Codewords and Secret Sharing. Proceeding of 6th Joint Swedish-Russian Workshop on Information Theory, 1993, pp. 276-279.
12. Avgustinovich S.V., Gorkunov E.V. [On Automorphisms of Linear Codes over a Simple Field] Siberian Electronic Mathematical Reports, 2017, vol. 14, pp. 210-217. (in Russian)
13. Sendrier N. On the Concatenated Structure of a Linear Code. Applicable Algebra in Engineering, Communication and Computing, 1998, vol. 9, no. 3, pp. 221-242.
14. Berger T.P., Ourivski A.V. Construction of New MDS Codes from Gabidulin Codes. Proceedings of ACCT'9, 2004, pp. 40-47.
15. Assmus E.F. The Category of Linear Codes. IEEE Transaction on Information Theory, 1998, vol. 44, no. 2, pp. 612-629.
16. Fripertinger H., Kerber A. Isometry Classes of Indecomposable Linear Codess. lecture Notes in Computer Science, 1995, vol. 948, pp. 194-204.
17. Sidel'nikov V.M. A Public-Key Cryptosystem Based on Binary Reed-Muller Codes. Discrete Mathematics and Applications, 1994, vol. 4, no. 3, pp. 191-208.
18. Deundyak V.M., Kosolapov Yu.V. On the Berger-Loidreau Cryptosystem on the Tensor Product of Codes. Journal of Computational and Engineering Mathematics, 2018, vol. 5, no. 2, pp. 16-33.
19. Krasavin A.A. Using the Modified (u\u + -^-Construction in the McEliece Cryptosystem. Trudy MFTI, 2018, vol. 10, no. 2, pp. 189-191. (in Russian)
20. Kabatiansky G., Tavernier C. A New Code-Based Cryptosystem via Pseudorepetition of Codes. Proceedings of ACCT XVI, 2018, pp. 189-191.
21. Deundyak V.M., Kosolapov Yu.V. [Using the Tensor Product of Reed-Muller Codes in an Asymmetric McEliece Type Cryptosystem and Analyzing its Resistance to Attacks on a Cipher], Computational Technologies, 2017, vol. 22, no. 4, pp. 43-60. (in Russian)
Received January 17, 2019