ПРИКЛАДНАЯ ДИСКРЕТНАЯ МАТЕМАТИКА
2024 Прикладная теория кодирования № 65
ПРИКЛАДНАЯ ТЕОРИЯ КОДИРОВАНИЯ
УДК 519.17 DOI 10.17223/20710410/65/5
ПОСТРОЕНИЕ КВАЗИЦИКЛИЧЕСКИХ АЛЬТЕРНАНТНЫХ КОДОВ И ИХ ПРИЛОЖЕНИЕ В КОДОВЫХ КРИПТОСИСТЕМАХ1
А. А. Кунинец*, Е. С. Малыгина**
* Балтийский федеральный университет, им. И. Канта, г. Калининград, Россия
**
E-mail: [email protected], [email protected]
Представлен обзор квазициклических алътернантных кодов и их структурный анализ относительно классификации автоморфизмов. Детализированы методы восстановления структурной информации о коде, которые, в свою очередь, снабжены подробными примерами. Привлекательность рассматриваемого семейства кодов заключается в его возможном криптографическом приложении и, как следствие, в уменьшении длины ключа постквантовых схем на кодах, исправляющих ошибки. К тому же данный метод построения кодов является универсальным и может быть применён для получения подполевых подкодов квазициклических ал-геброгеометрических кодов, ассоциированных с произвольной кривой с известной группой автоморфизмов. Однако ввиду особенностей построения квазициклических альтернантных кодов возникает возможность редукции ключевой безопасности оригинального кода к ключевой безопасности кода с меньшими параметрами, который может не являться стойким к структурной атаке.
Ключевые слова: квазициклические коды, алътернантные коды, инвариантные коды, алгеброгеометрические коды, функциональные поля, группа автоморфизмов кода.
CONSTRUCTION OF QUASI-CYCLIC ALTERNANT CODES AND THEIR APPLICATION IN CODE-BASED CRYPTOGRAPHY
A. A. Kuninets*, E.S. Malygina**
*
**
The paper presents an overview of quasi-cyclic alternant codes and their structural analysis regarding the classification of automorphisms. We also have detailed methods for recovering the structure of a given code. The attractiveness of the family of considered codes lies in their cryptographic applications and, as in theory, in reducing the key length of post-quantum code-based schemes. In addition, this method of constructing codes is universal and can be used to obtain subfield subcodes of quasi-cyclic algebraic-geometric codes associated with an arbitrary curve with a known
1 Работа первого автора выполнена за счет гранта Российского научного фонда №22-41-0441 (https://rscf.ru/project/22-41-04411/); работа второго автора подготовлена в рамках Программы фундаментальных исследований IIIIV ВШЭ.
group of automorphisms. However, as a result of constructing quasi-cyclic alternant codes, it becomes possible to reduce the key security of the source code to a code with smaller parameters, which may not be resistant to a structural attack.
Keywords: quasi-cyclic codes, alternant codes, invariant codes, algebraic-geometric code, function fields, automorphism group of a code.
Введение
Активное развитие квантовых технологий и стремительный роет вычислительной мощности квантового компьютера ставит под угрозу безопасность современных криптографических стандартов. Это связано с тем, что криптоетойкоеть большинства асимметричных алгоритмов основывается на сложности задач факторизации целых чисел (например, криптосистема ESA) и дискретного логарифмирования (например, протокол Диффи — Хеллмана), что делает их неустойчивыми к атакам с использованием квантового компьютера. Однако в последние несколько лет успешно развивается направление постквантовой криптографии, к которому относятся алгоритмы, основывающиеся на сложности задач, для которых не существует полиномиального алгоритма решения, даже на квантовом компьютере,
В конце 2016 г. Национальный институт стандартов и технологий США (The National Institute of Standards and Technology — MST) объявил о начале конкурса по стандартизации постквантовых алгоритмов. Одним из перспективных направлений в этой области стала криптография на кодах, исправляющих ошибки,
В данной работе рассмотрен принцип построения квазициклических кодов Гоппы, Далее описано редуцирование ключевой безопасности квазициклических кодов Гоппы к ключевой безопасности инвариантного кода с меньшими параметрами [1]; под термином «ключевая безопасность» понимается стойкость кода относительно атак, направленных на восстановление секретного ключа криптосистемы. Детализирована и снабжена примерами структурная атака на рассматриваемый квазициклический код,
1. Предварительные сведения
Мы опускаем базовые сведения из теории функциональных полей и алгебраической геометрии, предполагая, что читатель с ними ознакомлен. Для более подробного изучения можно обратиться к работам [2, 3],
1,1, АГ-коды, ассоциированные с проективной прямой
Введём понятия обобщённого кода Рида - Соломона (GRS-кода) и алгеброгеомет-рического кода (АГ-кода), ассоциированного с проективной прямой, а также его под-полевого подкода, и покажем возможность построения кода Гоппы с помощью алгебро-геометрического подхода, В заключение рассмотрим связь между многочленом Гоппы и дивизорами, используемыми при построении кода в алгеброгеометричееком случае.
Определение 1. Зададим вектор x = (x\,x2,... , xn) Е F^m, состоящий из n различных элементов, и вектор y = (уьу2,... ,yn) Е (F*m)n, состоящий из n ненулевых элементов. Пусть k Е Z+, Обобщённый код Рида — Соломона (GRS-код) размерности k задаётся следующим образом:
GRSfc(x, y) = {(yi f (xi),... ,ynf (xn)) : f Е Fqm [z] и deg(f) < k}.
Вектор x называется носителем, а вектор y — жно^мтелем кода GRSk(x, y).
Отметим, что любой рациональный АГ-код является обобщённым кодом Рида — Соломона. Доказательство этого факта можно найти в [4]. Покажем, что аналогичную конструкцию кода можно получить, используя алгеброгеометричеекий подход.
Пусть Р1— это проективная прямая над полем Едт, тогда Едт (Р= Едт (х) — функциональное поле проективной прямой у = х, где ¥дт (х) — поле рациональных функций над Едт. Полюс функцнп х является бесконечно удалённой точкой прямой Р1, которую будем обозначать Рациональные точки, то есть точки степени один проективной прямой, имеют вид Р^ = (х^ : 1).
Обозначим Д = Р1 + ... + Рп — дивизор, являющийся формальной суммой попарно различных рациональных точек проективной прямой. Носителем дивизора называют множество точек, входящих в него: зирр(Д) = {Р1, ...,Рп}, Чере з О обозначим
дивизор, носитель которого не пересекается с носителем дивизора Д АГ-код С, ассо-
1
С = С& (Д,О).
Чтобы провести аналогию с классическим определением ОКБ-кодов, построим порождающую матрицу кода С. Будем считать, что О ~ deg(О)PCX), Это означает, что О + (к) = deg(О)Pте, где (к) — главный дивизор некоторой функции к € ¥дт (х). Более того, для любого 5 € N пространство Рпмана — Роха, ассоциированное с дивизором имеет вид
&(вРте) = {хг : г €{0,...,5}}.
О
& (О) = {кхг : г € {0,...,5}}.
Согласно [4, следствие 2.2.3], размерность кода, ассоциированного с проективной прямой, равна к = deg(G) + 1. Пусть х = (х(Р1),...,х(Рп)) = (х1,...,хп) и у = = (к(Р^,..., к(Рп)), тогда матрица
^(х, у)
(
у1
У1х1
2
У1х1
у1х1
к-1
\
уп
упхп
2
упхп
к— 1
Упхп 7
(1)
С
Определение 2. Пусть х € Е^т — это носитель, а у € (Е*т)п —множитель кода СТ18Г(х, у), тогда альтернантный код над Ед задаётся следующим образом:
А,,(х, у) = СЫ(х, у)х П Е
п, ■ д ,
где СТ18Г(х, у)х — дуальный код к коду СТ18Г(х, у) и г — размерность кода СТ18Г(х, у).
Так как по построению альтернантные коды являются подполевыми подкодами ОН Я-кодой и соответственно являются подполевыми подкодами АГ-кодов, далее будем использовать алгеброгеометрическую нотацию:
А, (Д,О) = (Д,О)Х П Е
п. д .
Определение 3. Пусть х € Е"™ — вектор с попарно различными координатами и Г € Едт [г] — многочлен, такой, что Г(хг) = 0 для любых г € {0,..., п— 1}, Классический код Гоппы (х, Г), ассоциированный с Г и порождённый х, определяется следующим образом:
&д(х, Г) = А,, (х, Г(х)-1) .
Здесь г = deg Г Многочлен Г называют многочленом Гоппы, а т — степенью расширения кода Гоппы.
Покажем явный вид дивизоров и алгеброгеометричеекий способ построения классического кода Гоппы,
Теорема 1. Пусть Д = Р1 + .. .+Рп — дивизор, носителем которого являются п попарно различных рациональных точек проективной прямой Р1 над ¥ят С = Со — Р» _ дивизор функционального поля ¥дт (Р1), носитель которого не пересекается с носителем дивизора Д где С0 = (Г)0 — дивизор нулей многочлена Г € ¥д(Р1); код С%(Д,С) является АГ-кодом, определённым над ¥дт. Тогда классический код Гоппы представим в следующей алгеброгеометричеекой форме:
^(х, Г) = (Д Со — Р»П = (Д А — Со) П Е
д ,
где (Д,С0 — Р»)^ — дуальный к исходному коду; А = (^'(г)) + (п — 1)Р»; Л-(г) =
= П (г — Хг)-
Доказательство. Пусть х = {х(Р^,..., х(Рп)} = {х1,..., хп} и Г(г) € ¥д(Р1), где Рг = (хг : 1) € Р1 — попарно различные точки; deg(Г(z)) = г, 1 ^ г ^ п — 1; Г(хг) = 0 для всех хг € х. Рассмотрим код с порождающей матрицей
( Г(х1)
1
V
Г(Х2)
1
Х1Г(Х1) 1 х2Г(х2) 1
Ух1-1Г(Х1)-1 хГ2-1Г(х2)"
Г(х„) 1
хпГ (хп)
г—11
Г(хп)-7
Нетрудно заметить, что вид данной матрицы полностью совпадает с видом матрицы (1), являющейся порождающей для (1НЯ-кодн. Очевидно, что код с такой порождающей матрицей удовлетворяет определению 1, то есть являетея СТ18Г (х, у)-кодом, где у = (Г(хг) —1 : хг € х). Докажем, что
СТ^г(х, у) = (Д С) = (Д, Со — Рс). (2)
Для этого достаточно показать, что г7 ■ Г(г)—1 € %(С0 — Рс) для всех з € {0,..., г — 1}, Рассмотрим дивизор пулей и дивизор полюсов функции г7 ■ Г(г)—1, затем найдём её главный дивизор:
(г7 ■ Г(г)—1)0 = зР0 + гРс — з'Р», вде Р0 — нуль функции г; (г7 ■ Г(г)—1)с = С0
Г0;
(г7 ■ Г(г)—1) = з(Р0 — Р») — (С0 — гР»).
Таким образом,
3(Р0 — Р») — (С0 — гР») = —С0 + 3Р0 + (г — з)Р» ^ —С0 + Р»
Так как dim(L(О0 — Р*)) = г, Т0 базис пространства Римана —Роха &(О0 — Рх) имеет вид {г-7 • Г(г)-1 : = 0,..., г — 1}, Равенство (2) доказано. Теперь докажем равенство кодов
(В, Оо — Р*)х = (В, А — Оо).
Для этого потребуется ввести понятие вычета дифференциала ш = /^¿р [4, 2] в точке Р, где / € Ед(X) и ¿р — локальный параметр. Разложим функцию / в ряд Лорана по степеням ¿Р:
оо
/ = Е «¿¿Р.
г=.в
Здесь 5 € Ъ. Вычетом дифференциала ш в точке Р называется коэффициент «_ 1 в представленном разложении; обозначается Нев^ (Р).
Лемма 1 [4, Лемма 2.3.6]. Пусть Р1 — проективная прямая над полем Едт; Едт (Р1) = Едт (г) — рациональное функциональное поле; а = {а1,..., ап}— различные элементы поля Рг € Р 1 —нули функцпй г — аг; к(г) = П (г — аг). Пусть
( € Едт(Ртакой, что ((Рг) = 1 для любой Рг. Тогда существует дифференциал Вейля ш:
(ш) = — 1, Еев^ (Рг) = 1, г = 1,..., п, (ш) = (С) + (к'(г)) — (к(г)) — 2Р*,
где гр (ш) — нормирование ш в точке Рг [4, 2].
Предложение 1 [4, Предложение 2.2.10]. Пусть В = Р1 + ... + Рп — дивизор, носителем которого являются п попарно различных рациональных точек проективной прямой; О — дивизор функционального поля Едт(Р1); п_дифференциал Вейля, такой, что гр (п) = — 1 и Нев^(Рг) = 1 для всех г = 1,..., п. Тогда
п
(В, О)х = (В, В — О + (п)), где В = £ Рг.
¿=1
Теперь мы можем явно задать вид дивизоров дуального кода, используя предложение 1:
(В, Оо — Р*)х = (В, В — (Оо — Р*) + (к'(г)) — (ВД) — 2Р*). (3)
п
Здесь (к(г)) = (к(г))0 — (к(г))х = £ Рг — пР* = В —пР*. Таким образом, равенство (3)
¿=1
принимает вид
(В, Оо — Р*)х = (В, —Оо + Р* + (к'(г)) + пР* — 2Р*) = (В, А — Оо), следовательно, выполняется равенство и для исходного кода Гоппы: ^(х, Г) = (В, Оо — Р*П Еп = (В, А — Оо) П Теорема 1 доказана. ■
1,2, Группа автоморфизмов альтернантных кодов Пусть &п — группа перестановок множеетва {1,..., п}. Определим группу автоморфизмов кода.
Определение 4. Пусть С — линейный код длины п над полем Ед; а € &п — перестановка, действующая па кодовое слово как а(с) = (сст(1),..., сст(п)). Группа автоморС
АШ;(С) = {а € вп : а (С) = С}.
Так как альтернантные коды являются подполевыми подкодами СНЯ-кодои. сначала необходимо исследовать СНЯ-коды и их автоморфизмы. Дадим определение проективной линейной группы:
Р1 Р1,
РСГ^Едт )=<, ч а,Ъ,с,й € Едт, ай — Ъс = 0.
I (х : у) м- (ах + Ъу : сх + йу),
В [5] рассмотрено алгеброгеометрнческое построение СЕЯ-кодов, а также доказано, что вся группа автоморфизмов кода индуцирована действием проективной линейной группы РСЬ2(Едт), являющейся группой автоморфизмов проективной прямой Р1,
Элементы РСЬ2(Едт) имеют также матричное представление, а именно: любой элемент а € РСЬ2(Едт) можно представить как
а = (а Й) , ай — Ъс = 0.
Определение 5. Пусть Д = Р1 + ... + Рп —дивизор, носителем которого являются п попарно различных рациональных точек; С, С' —дивизоры па Р1, такие, что ^ирр(С) и вир р(С')) Пзирр(Д) = 0, Определим отношение эквивалентности дивизоров относительно дивизора Д следующим образом:
С С' ^3/ € Едт (Р1)(/ = 0 & С — С' = (/) & УР € зирр(Д) /(Р) = Ц.
Лемма 2 [5, Лемма2,1], Пусть зирр(Д) С Р1 и С, С
Р1
что (зирр(С) изирр(С')) Пзирр(Д) = 0. Если С С', то (Д,С) = (Д,С'). Следующая теорема определяет всевозможные автоморфизмы АГ-кода, ассоции-
С
Теорема 2 [5, Теорема 3.1]. Пусть С = (Д, С) С Е^т - АГ-код, 1 ^ deg(G) ^ ^ п — 3. Тогда
Aut(C) = {а € Aut (Р1е : а(Д) = Д & а(С) С} .
Теперь перейдём непосредственно к построению СЕЯ-кодов с помощью автоморфизма. Пусть а € РСЬ2 (Едт) — автоморфизм, действующий па носитель дивизора Д и дивизор С € Б1у (Р1). Тогда а индуцирует автоморфизм кода С = (Д, С):
_ Гс—мс,
а Ч (/(Р1),... , /(Рп)) —м (/(а(Р1)),... , /(а(Рп))).
Поскольку альтернантные коды являются подполевыми подкодами СЕЯ-кодов, то их группа автоморфизмов включает в себя группу автоморфизмов исходного СНЯ-кодн.
Замечание 1. Пусть Аг,д(Д, С) — альтернантный код над Ед и а € АШ (Д, С)), тогда а € Аи;(Аг,д(Д, С)).
/ \
М = I ... Мг ... | , где М{
V )
2. Квазициклические альтернантные коды
2,1, Квазициклические коды Пусть Е —конечное поле, I — положительное целое.
Определение 6. Определим циклический и квазициклический сдвиги а^ и а:
IV ^ Е1, Геп ^ Еп,
а^: < а: <
[(хо,х1,... ,х*_1) ^(х^_1,хо,... ,х*_2), ^(Ьх^ ... ||Ьп/£) ^(а^Ъ^Ц ... (М^)).
Пусть п —целое и 1|п, Тогда а называется 1-квазициклическим сдвигом, полученным поблочным применением а1; где Ьг — блоки длины I, г = 1,..., п/1.
Определение 7. Код С С Еп называется 1-квазициклическим (1-(^С), если для всех с € С выполняется а(с) € С, где а —операция 1-квазицикличеекого сдвига. При этом I называется порядком квазицикличности кода.
Определение 8. Матрица М называется I-блочно-циркулянтной, если она состоит из циркулянтных матриц Мг порядка I:
( ао а1 ... а1_1\ «1-1 «о ... «1_2
У а1 ... а1_1 «о )
Матрица такого типа может быть представлена первыми строками каждого блока размера I, Таким образом, можно восстановить 1-блочно-циркулянтную матрицу М из к строк, зная её строки с индексами 1,1 + 1,..., к — I +1,
Замечание 2. Код С, имеющий 1-блочно-цнркулянтную порождающую матрицу, является 1^С-кодом, Отметим, что С^С-код С размерноети к те обязан иметь 1-блоч-но-циркуляптпую порождающую матрицу, однако существует 1-блочно-циркулянтная матрица С, состоящая из к' ^ к строк, которая порождает данный код С,
Для оптимального уменьшения размера открытого ключа криптосистемы Мак-Элнса можно рассматривать 1^С-коды С с параметрами [п, к], имеющие порождающую матрицу в систематическом виде
С = (1к | М) ,
где 1к — единичная матрица порядка к; М — 1-блочно-цнркулянтная матрица, В этом
С
Замечание 3. Для выполнения предыдущего условия размерность 1-(^С-кода должна быть кратна I,
Определение 9. Для матрицы С в систематической форме определим р(С) как
М
первой, т.е. р(С) получается путём записывания строк из М с индексами 1, I + 1,
21 + 1, ..., к — I +1, Отсюда имеем следующее соотношение:
Число строк матрицы С = I • (Число строк матрицы р(С)).
Определение 10. Пусть С С Еп — 1-(^С-код. Инвариантный код определяется следующим образом:
С= {с € С : а(с) = с}.
Так как инвариантный код имеет повторяющиеся элементы, далее будем использовать проколотый инвариантный код, который определяется следующим образом:
Г = РипС^ (С),
где Х^ = {1,...,п} \ {1,1 + 1,..., п — I + 1} Пуст ь ас — 1^С-сдвиг а, суженный на код С, тогда можно записать С = РипС/^,(кег(ас — id)).
Далее под инвариантным кодом будем иметь в виду и инвариантный, и проколотый инвариантный код, однако обозначения останутся разными.
Замечание 4. Инвариантность коммутирует с операцией вычисления подполе-вого подкода. Действительно, если С — 1^С-код над Е пт . то
(C П F^ = {c G C : c G F^ & a(c) = c} = CCT П F^.
2,2, Построение квазициклических альтернантных кодов Рассмотрим метод построения квазициклических альтернантных кодов, определённых над Fq, с помощью заранее заданного автоморфизма.
Пусть а G PGL2(Fqm) и ord(a) = I Для точки P G P1 определим её орбиту:
Orb,(P) = (аг(Р) : i G {0,...,1 - 1}},
обозначим
n/l n/l
D = Е Е P, supp(D) = Ц Orb,(Pi), (4)
i=i p eOrbCT (Pi) i=i
где Pi G P1 (Fqm) — попарно различные, не являющиеся инвариантными относитель-
а
точку в бесконечности. Определим дивизор
G = Е ^Е Q, (5)
i=i QeOrb(Qi)
где Qi — точки P1, не содержащие в своих орбитах точку в бесконечности, такие, что
s
supp(D) П Qi = 0, s G N ti G Z для i G {1,..., s}. При этом deg(G) = E til deg(Qi).
i=1
Как показано в п, 1,2, автоморфизм а индуцирует автоморфизм кода Cl (D,G).
P1
аа
морфизмом кода (D,G) = CL(D,G)X П F^ Таким образом, альтернантный код, полученный описанным способом, является квазициклическим при соответствующем упорядочивании точек,
3. Структурный анализ инвариантных кодов
Покажем, что инвариантный код для QC-альтернантного кода также является аль-тернантным кодом, но с меньшими параметрами. Так как инвариантность коммутирует с операцией взятия подполевого подкода, для анализа структуры инвариантных кодов Гоппы достаточно рассмотреть инвариантный код GRS-кода, Данные утверждения в дальнейшем позволят описать процесс восстановления параметров QC-альтер-нантного кода Гоппы, используя инвариантный проколотый код.
Для упрощения рассуждений будем предполагать, что С строится с использованием одной рациональной точки ф, т, е, С = £ Е Л, В случае использования
деогъст (д)
нескольких точек также возможно восстановить секретные параметры, однако алгоритмы восстановления принимают более громоздкий вид, поэтому в данной работе они опущены. Зададим
а^ (Р) = : ^) Для г € {0,..., п/1 — 1} , 3 € {0,..., I — 1}, а^(ф) = (т,- : ^) для ^ € {0,... ,1 — 1}.
Лемма 3. Пусть С = £ Е Л, тогда пространство Римана —Роха, ассоцпн-
деогъст (д)
С
Я(С)={Р(X, У)! [_ X—7,У)*: Р € [X, У] — однородный многочлен степени М
Доказательство. Пусть Р1 — проективная прямая над полем Е ат, тогда Едт (Р1) = (х) — рациональное функциональное поле. Исходя из определения проективного многообразия, базис пространства Римана —Роха, в случае проективной прямой, имеет следующий вид:
'"" I / € —...................-......—........ = 0
Рассмотрим дивизор С = £ Е Ли докажем, что
деогъст (д)
* = Р (X, У)/ X — 7, У Г € я (С),
/ ,=о
где Р € [X, У] — однородный многочлен степени ¿1. Пусть Z(/) —множество нулей функции /, тогда соответствующие дивизоры пулей и полюсов, а также главный дивизор функции * имеют следующий вид:
(*)о = Е ^ (Р (X,У))P + (*)= Е ^ (Р (X,У))P,
(*)« = Е ¿(7, : )= £ Е Л = С,
(т,- )еогъст (д) деогъст (д)
(*)= Е ^ (Р (X,У ))Р — с ^ —с.
р ея (р (х,у ))\рто Лемма 3 доказана, ■
Следующая лемма определяет понятие инвариантной функции. Так как мы рассматриваем С^С-альтернантные коды с точки зрения АГ-кодов, необходимо понимать, какие функции из пространства Римана — Роха являются инвариантными относительно действия автоморфизма.
Лемма 4 [1, Лемма 3,3], Пусть С = Ся(В, С) и а € Аи^С), Если с = (/(Р1),..., / (Рп)) € С такое, что а (с) = с, то / является а-инвариантной функцией, т.е. / о а = /,
Теорема 3 [1, Теорема 3,5], Пусть С% (Б, С) С Е^т—АГ-код длины и, размерности к с действующим на него автоморфизмом а € РСЬ2 (Едт) порядка I, где I | и. Пусть, как и ранее, определены Б и С, Тогда инвариантный код (Б, С) является АГ-кодом длины и/1 и размерности [к/1].
Следствие 1. Пусть Аг,д(Б, С) = (Б, С) П — альтернантный код длины и, порядка г, с действующим на него автоморфизмом а € РСЬ2 (Едт) порядка I, вде I | и. Пусть Б и С определены, как в (4) и (5). Тогда инвариантный код А^/ц^(Б, С) является альтернантным кодом длины и// и иорядка [г/1].
Далее изучим действие автоморфизма а € РСЬ2 (Едт) на пространство Римана — Роха % (С) Рассмотрим а € РСЬ2 (Едт ) и ord(а) = I, а также дивизоры Б и С, определённые ранее. Автоморфизм а € РСЬ2 (Едт) можно представить в виде матрицы М € СЬ2 (Едт), Нотация М ~ N гДе М, N € РСЬ2 (Едт), означает, что существует матрица Р € РСЬ2 (Едт ), такая, что М = РЖР-1, В зависимости от собственных М
1) М ~ ^ 0 1 где а € (а — диагонализируемый в
2) М ~ ^ 0 1 )' Г,П,е Ь € \ {0} (а _тригонализируемый в
3) М ~ ^ 0 ^, где £ € Ед2т (а — диагонализируемый в Ед2т),
Возможность диагонализации или тригонализации зависит от собственных векто-
М
вышеописанных видов.
Теорема 4 [6, Теорема2,2], Пусть М € Мга(Е), тогда матрица М диагопализиру-ема в поле Е тогда и только тогда, когда сумма размерностей собственных подпро-
и
в состоящий го собственных векторов М,
Далее рассмотрим матрицы над конечным полем ¥дт, Любое конечное поле является алгебраически незамкнутым, следовательно, минимальный многочлен (Т) не обязательно раскладывается на линейные множители, как и характеристический многочлен, В таком случае количество собственных значений у матрицы М € Мп(Едт) и
Заметим, что если характеристический многочлен имеет кратный корень, то в общем случае при размерности больше 2 данный факт не говорит о том, что матрицу нельзя диагонализировать. Однако, рассматривая М € М2(Едт), можно утверждать,
0, 1 2
случае условия теоремы 4 не выполняются, второй случай говорит о том, что матрица обязательно диагонализируема над Е дт, а в третьем случае условия выполнимы,
М
Теорема 5 [7]. Пусть М € М2 (Едт) те является диагональной. Матрица М диагонализируема в ¥дт тогда и только тогда, когда размерности всех собственных под-
М1 1
М
Если характеристический многочлен разложим на множители, но имеет кратные
ММ
диагонализировать в поле , построенном при помощи добавления корня характеристического многочлена матрицы М,
При использовании минимального многочлена пм (Т) матрицы М эти рассуждения можно представить в виде следующей теоремы:
Теорема 6 [7]. Пусть М € М2^т), пм (Т)- минимальный многочлен матри-М
1) матрица М диагонализируема в ^^ пм (Т) раскладывается на различные линейные множители в
2) матрица М тригонализируема в ^^ пм (Т) разложим в на линейные множители, но имеет кратные корни;
3) матрица М диагонализируе ма в Еа2т ^^ пм (Т) сепарабельный.
Лемма 5 [1, Лемма 3,4], Пусть С = Ся (В, С) — АГ-код, такой, что а (С) = С, и р € РС), Тогда а' = р о а о р-1 индуцирует тот же автоморфизм кода С, что и а. Лемма 5 показывает, что изучение (1НЯ-кодои. инвариантных относительно инду-
а
Далее рассмотрим инвариантные проколотые коды, для которых теорема 3 выполняется в каждом из этих случаев,
а
диагонализируемым в
Следующее предложение позволяет получить структуру однородных многочленов,
а
Предложение 2 [1, Предложение 3,8], Пусть Р € [X, У]— однородный многочлен степени Ы, элемент а € имеет порядок I Если Р(«X, У) = Р(X, У), то Р (X, У) = Л (X 1,У1), где Л € [X, У ] является однородным многочлен ом степени ¿.
Исходя из вида инвариантных относительно диагонализируемого автоморфизма многочленов, следующее предложение позволяет показать справедливость теоремы 3 в данном случае.
Предложение 3 [1, Предложение 3,9], Пусть С = Ся(В, С) — АГ-код с параметрами [п, к] и
[Р1 ^ Р1,
а:
[(х : У) ^ (ах : У).
Определим В = Е Рг, где Рг € {(а1 : в1) : г €{1,...п}} = зирр(В), и (С = = £ ((—1)1-1а1(1-1)/2(7о/^о)1 : 1) или С = Тогда справедливо С^ = Ся(В,С), а также |вирр(В)| = п/1 и deg(С) = deg(С)/l,
Замечание 5. Инвариантный проколотый код С° в предложении 3 имеет параметры [п/1, [к/1]].
Стоит отметить, что элемент а € является корнем из единицы степени I и не известен злоумышленнику. Исходя из того, что параметр I относительно мал, даже не владея информацией об элементе а, возможно восстановить параметры В, С исходного кода, перебрав всех кандидатов для данного элемента,
а
тригонализируемым в
Аналогично предыдущему случаю, рассмотрим структуру однородных многочле-
а
метим, что данный случай возможен только тогда, когда оЫ(а) = еЬаг(Еа) = р.
Предложение 4 [8, Предложение 4], Пусть Б е [X,У], deg(F) ^ ¿р и Ь е Е*. Если Б(X + ЬУ,У) = Б(X, У), то Б(Х,У) = Д(ХР - ьр-1хур-1, УР), где р -характеристика поля и Я е [X, У] — однородный многочлен степени deg(R) ^ ¿.
Исходя из вида инвариантных многочленов, можно сделать вывод о структуре инвариантного проколотого кода в случае тригонализируемого автоморфизма. Предложение 5 [1, Предложение 3,11], Пусть С = С% (Б, С) — АГ-код и
Р1 ^ Р1,
(х : у) ^ (х + Ьу : у).
Определим Б = Е А, где е {(аР — Ьр-1а^вГ-1 : вР) : г е {1,...п}} = 8ирр(Б) и (С = £ ((то/^о)Р — ЬР-1(7о/^о) : 1) или С = Тогда справедливо С = (Б, С), а также |вирр(Б)| = п/1 и deg(G) = deg(G)/€,
Замечание 6. Инвариантный проколотый код С° в данном случае также имеет параметры [п/1, [к/1]].
3,3, Случай, когда автоморфизм о является диагонализируемым в \
Изучим СЕБ-код, определённый над V, и построенный с его помощью проколотый инвариантный код относительно индуцированного автоморфизма о = р о о^ о р-1, где автоморфизм о^ — диагональный в СЬ2(Ед2т) и р е РСЬ2(Ед2т),
Для кода С = (Б, С) над рассмотрим расширенный код С = (Б®, С®) над такой, что С является его подиолевым подкодом, т.е. С = С П = С|Е т,
—ст —ст^
Тогда, во-первых, из леммы 5 следует, что С = С . Во-вторых, полагая, что сЬаг(Ед2т) { учтём следующие замечание и лемму:
Замечание 7. Характеристика р толя то делит порядок I автоморфизма о.
Лемма 6 [1, Утверждение 3,1], Пусть I — положительное целое и С — ¿-квазицик-лический код. Тогда
<МС) с Сст,
где 01 — функция свёртки, определённая следующим образом:
( )Л- 1-1 1-1 ^
(ХЬ . . . ,хп) 1-М ¿^ (1)^ ^Ст^ . . . , хст4(га-1+1) I .
\г=0 г=0 г=0 /
Кроме того, если сЬаг(Е) { то 0^(С) = Сст. Таким образом, имеем
—ст г/1-1 1-1 \
СБ = 0({(/(Р®),..., /(Р®)) : /(Р®) е ^}) = { ( £ /... , £ /(Р®(„-1+!) Л :
^ у г=0 г=0 7
/(Р®^) е , г = 0,... ,1 — 1, 3 = 1,1 + 1,..., п — I + 1} = 0*(С), где / е % (С®) р® е вир р(Б®).
~ —ст
Если (7- СЕБ-код с параметрами [п, к], то, согласно п.3.1, С также является СЕБ-кодом с параметрами [п/£, [к/1]].
Теперь изучим сужение автоморфизма о на
О^т = (Р ◦ О^ О р-1 = р|ждт ° О^т ° р-1|ждт .
Следовательно, о|^ т е GL2(Fqm) с СЬ2(^2т) и о^ т —диагональный в СЬ2(^т),
—а —а
Рассмотрим диаграмму на рис, 1, где С ^ т — подполевой подкод кода С , Покажем,
—а „
что С- ^ т является образом С^ т при отображении .
л Фе
С—-—» с
ф1|Ж ч т —а С = С№ чт -^ С |Fчт
Рис. 1
Поскольку о коммутирует с операцией построения подполевого подкода, учитывая
" " " —а —-а "
замечание 4 и определение инвариантности, получаем С- ^ т = С^ т , Кроме того,
|F „m (C|F „m ) =
-a
Окончательно заключаем, что C|F „m является GRS-кодом, поскольку является под-полевым подкодом GRS-кода, Если код C|F m имеет параметры [n, fc'j, то в силу отображения
(C\m ) = &({(f(А), . . . , f (Pn)) I f (Pi) G Fqm }) =
/1-1 1-1 \
E f (PWm )i(1)), . . . , E f (PW (п-1+1)Л : f (PWm )i(j)) G F?" \i=0 „ i=0 „ / „
где г = 0,... ,1 — 1 = 1,1 + 1,..., п — I +1 f Е ^(С), Р» е В, согласно п. 3,1, код С|^т имеет параметры [п/1, к'/1].
4. Анализ безопасности квазициклических альтернантных кодов
Покажем, что ключевую безопасность С^С-альтернантного кода можно редуцировать к ключевой безопасности его инвариантного кода. Рассмотрим автоморфизм о е PGL2 ^т) и альтернантный код
А,(В,С) = С^(В,С)Х п Ш^.
Дивизоры В и С определены в (4) и (5), Зная порождающую матрицу кода А,д(В, С) и индуцированный автоморфизм о, можно вычислить инвариантный код А,д(В, С) , Обозначим за инвариантный альтернантный код А,д (В, С) для некоторых дивизоров В и С- с малыми параметрами. Существует взаимосвязь между В и С инвариантного кода с дивизорами В и С исходного альтернантного кода, позволяющая восстановить исходные дивизоры при знании В и (5,
п/1 / „ \
Будем предполагать, что В = Е (а : /3») и С = £ • <5 для инвариантного ко-
г=1 ^ '
да А,д (В-, С) известны и что С строится с помощью орбиты одной рациональной точки Для исходного кода используем следующие обозначения:
m
У
вирр(Б) = {(аг. : 1) : г е {1,...,п/1}, ^ е {0,...,1 — 1}} ,
с = о7' (д),
.7=0
где о7(д) = (т. : ) = для всех е {0,... ,1 — 1},
4,1, Восстановление дивизора и носителя
о
формульные соотношения, определяющие вид дивизоров, участвующих в построении инвариантного проколотого кода, следовательно, процесс восстановления дивизора и носителя исходного кода будет отличаться в зависимости от вида автоморфизма. Рассмотрим подробно данный процесс в каждом отдельном случае.
Случай, когда, автоморфизм о является диагонализируемым в Замечание 8. Если д = то для всех г е {0,... ,1 — 1} имеем
ч1_1 / А 1(1-1)/2 , ,,
Q=((—l)1-1 Иl(l-1)/2 (7i/ii)l:l)
Далее будем предполагать, что точка д и дивизор С известны. Покажем возмож-
С
Обозначим = {ог(а) : г е {0, ...,1 — 1}} и для каждого а е д« восстановим соответствующую точку носителя дивизора С. Отметим, что множество состоит из примитивных корней степени £ из единицы. Мощность множества равна количеству элементов порядка I в поле то ееть ф(1) < п. Следовательно, существует всего ф(1) вариантов выбора элемента а, что позволяет перебрать всевозможные варианты за приемлемое время.
Более детально вычисление дивизора С на основании знания С описано в алгоритме 1, Основной и наиболее затратный шаг — вычисление корней многочлена р^) = а1 (1 ^^^^ — 7 е [X], которые можно найти, используя, например, алгоритм Берлекэмпа,
Алгоритм 1. Восстановление дивизора С
Вход: G — дивизор инвариантно го кода Ar,q (D,G) Выход: дивизор G, 1: а := а1 = 1 (mod qm). Если Q = то
Г := корни (а1(1-1)/2Х1 — 7), G := *Е (Y :1),
тег
5: иначе
6: G := t ■ I ■ Рте.
G
Далее восстановим носитель дивизора Б' при условии, что коды (Б', С) и (Б, С) отличаются перестановкой координат. Координаты точки Р = (х : у) е е шрр(Б) удовлетворяют системе
X — <7j = 0,
— в = 0,
для г е {1,..., п/1}, где (а : в-) = Р», Зная В, можно восстановить все элементы ноВ
решение (а^в) в (6) для каждого г е {1,..., п/1} и выберем а е д^. Будем полагать, что множество
-
вирр(В') = | ^ в : ^ : 3 е {0,...,1 — 1}, г е {1,...,п/1}
является носителем кода АГ;д (В', С), являющегося перестановочным относительно кода АгА(В, С). Для каждого множества решений Б = {(а», в) : г е {1,..., п/1}} и всякого а е имеем различные соответствующие им носители В',
Случай, когда, автоморфизм о является тригонализируеммм, в Fqm Замечание 9. Если О- = Рх, то для всех г е {0,... ,1 — 1} имеем
<=((! )Р—ь'-111
оа
ord(a) = I, является тривиальным. Достаточно перебрать все корни степени I из единицы. Существует следующий способ нахождения кандидатов для параметра Ь в случае
о Ь
Р, = НОД ({Яевх (X — УР-1Х — «т — X) : г е {1,... ,п/1}} ,У?т — У) ,
где Кевх(Р1(Х), Р2(X)) — результант двух многочленов относительно переменной X.
Таким образом, Ь е гоо18(Рь), Стоит отметить, что все элементы из орбиты Ь также являются корнями многочлена Р,, то есть В = {Ь, 2Ь,..., (I — 1)Ь} С гоо1в(Рь). В общем случае deg(p,) ^ |ВДля полей большого порядка 2т, вде т ^ 10) на практике всегда выполняется В = гоо1в(Рь),
Далее будем предполагать, что точка < и дивизор С известны. Алгоритм 2 восстанавливает исходный дивизор С, используя только параметры инвариантного проколотого кода А^(В, С) ,
С
Вход: С, В — дивизоры инвариантно го кода Аг,д (В, С) , Выход: дпвнзо{ С и множество В' 1Э {Ь, 2Ь,..., (I — 1)Ь}. 1: Р, := НОД ({Кевх (Хр — УР-1Х — -,Х *т — X) : г е {1,... ,п/1}} ,У?т — У) В' := корни (Рь) Если <5 = Рх, то Г^корнп^ — Ь^-^ — -), //Ь е В' С := ¿Е (7 :1)
тег
иначе
С := £ • Рх-Вернуть С В',
Замечание 10. Самым сложным шагом алгоритма 2 является нахождение результантов, а также последующее нахождение наибольшего общего делителя двух
многочленов над полем ¥дт, В свою очередь, самым трудозатратным шагом в вычислении результанта является нахождение определителя матрицы, которое выполняется за 0((дт + р)ш(дт + р)(р — 1)) шагов в поле ¥дт, где ш — экспонента в сложности умножения матриц. Сложность вычисления наибольшего общего делителя двух многочленов степени дт(р — 1) в кольце ¥дт [У] ограничена 0(д2тр2), что меньше сложности вычисления определителей. Таким образом, учитывая, что данные алгоритмы срабатывают п/р раз, получаем итоговую сложность алгоритма 0(п(дт + р)ш+1).
Далее восстановим носитель дивизора Б' при условии, что ДГ;д (Б', С) = ДГ;д(Б, С), Координаты точки Р = (х : у) е вирр(Б) удовлетворяют системе
хр — Ь^-1х — 7i = 0,
У — 7 = 0 (7)
для г е {1,..., п/£}, где (7^ : /5^) = Р^. Зная Б, мы можем восстановить все элементы носителя дивизора Б, однако они будут представлять собой неупорядоченное множество, Найдём решение (а^,^) в (7) для каждого г е {1,..., п/1} и выберем Ь е В', Множество
8ирр(Б') = { + Ь ■ 3 : ^ : 3 е{0,...,1 — 1}, г е{1,...,п/1}
составляет носитель кода ДГ;д (Б', С), являющегося перестановочным относительно кода (Б, С) Для каждого множества решений 5 = ) : г е {1,...,п/1}} и всякого Ь е В' имеем различные соответствующие им носители Б',
Случай, когда, автоморфизм о является диагонализируемым в ¥д2т \¥дт В этом случае о = р о о^ о р-1, где р е РСЬ2(¥д2т) и
Гр1 ^ Р1,
\(х : у) ^ (Сх : Сдт
где С е ¥д2т — корень степени £ го единицы. Поскольку о^ диагонален в ¥д2т, мы можем восстановить носитель дивизора Б® и дивизор С® в ¥д2т, используя те же методы, что и в случае диагонализируемоети и тригонализируемоети в ¥дт,
Для восстановления дивизоров Б и С в ¥дт рассмотрим минимальный многочлен П = X2 + aX + Ь е ¥дт [X] элемента С- Тогда
м., = I С » иГ0 —Ь I = м
V 0 Сд / V 1 —аа )
и существует р' е СЬ2(¥д2т), такой, что о^ = р' о о' ор'-1, где о' е РСЬ2(¥дт) ассоциирован с Согласно лемме 5, можем предпол ожить, что о = о'. Нахождение эле мента С не составляет труда ввиду использования малого параметра соответственно легко можем вычислить а и Ь. Чтобы восстановить р', достаточно диагонализировать матрицу Зная р', носитель дивизора Б® и дивизор С® в ¥д2т, можно восстановить оригинальный дивизор Б = р'-1(Б®) и дивизор С = р'-1(С®) в ¥дт.
4,2, Восстановление перестановки
Восстановим перестановку между А,д(Д',С) и А,д(Д,С), Пусть Ориь — порождающая матрица кода А,д (Д,С), Н' — проверочная матриц а кода А,д (Д',С), Перестановку между А,д(Д, С) и А,д(Д', С) зададим с помощью матрицы П:
О
риЬ
ПН
/т
0.
(8)
Предположим, мы выбрали а € тогда перестановочная матрица П имеет следующий вид:
/ I
г=1
V
(0)
(0)
Е хп/1,гJ г=1
1 0
, где J = 0
/ .. . 0 1 0
0
Отметим, что ^ ^ ^^^^^ща раз мера € {0,1} — неизвестные для € {1,..., п/1}
и г € {1,... ,1} В таком случае система (8) имеет п неизвестных. Если мы предположим, что к = п, то мы можем найти с большой вероятностью единственное решение для П ввиду того, что в системе (п — к)к уравнений и п ^ (п — к)к неизвестных,
П
ном выборе элементов а € Ь € гоо1в(Рь),
Алгоритм 3. Восстановление зирр(Д), Случай а — диагонализируемый/тригонали-зируемый в ¥дт
Вход: Орць _ порождающая матрица квазициклического альтернантного кода; дивизоры С, Д.
Выход: 0, если решение те найдено; в противном случае — Д', такое, что А,д(Д', С) =
= А, (ДС).
1: Для всех г € {1,..., п}
2: а! := корни (х1 — аг), // а! := корни(хр — Ь^х — аг) 3: в! := корни (у1 — вг)- // в! := корни (ур — /5^) 4: Для а € д // для Ь € В'
5: виррр') := { ^а-7 С : : ] € {0,...,1 — 1}, г € {1,..., п//}}, // 8ирр(Д') :=
:= {(| + ЬЧ4
6: С := А,«(Д',С).
7: Если С = А-,д(А С), ТО
8: Вернуть Д',
9: иначе
10: Н' := проверочная матрица (С),
11: 5 := решения Ориь ■ П ■ Н'т = 0, где П — перестановочная матрица,
12: Если ) = I, то
13: Вернуть п(Д'), // п € &п ассоциирована, с П
14: Вернуть 0,
Замечание 11. Размерность пространства решений в случае единственности решения равна I, однако эти решения эквивалентны в контексте поиска перестановки для носителя квазициклического кода. Если представить решение системы в виде вектора, то, очевидно, по свойствам QC-кодов квазициклический сдвиг его блоков длины I также является решением системы (8), Единственность решения нельзя гарантировать для произвольных параметров, так как возможно получение большого числа линейно зависимых уравнений в системе, однако для полей большого порядка 2m, где m ^ 10) и параметров кода [n ^ 2048, k ^ n/2], используемых на практике, данная проблема не возникает,
5. Примеры
Приведём примеры построения квазициклического альтернантного кода Ar,q(D, G) = CL(D, G)x П F^ с помощью GRS-кода, а также рассмотрим примеры восстановления параметров оригинального кода через параметры кода (D,G) для всех описанных случаев. Все вычисления выполнены в системах компьютерной алгебры Sage и Magma,
5,1, Случай, когда автоморфизм a является диагонализируемым в Fqm Построим QC-GRS-код CL (D,G) над пол ем F26 с параметр ами [21,4] с помощью диагонализируемого автоморфизма
a
*21 0
1
где ог^о) = £ = 3 и а6 + а4 + а3 + а + 1 = 0,
Рассмотрим проективную прямую Р1 над пол ем ¥64, а в качестве носителя дивизора Б выберем следующие рациональные точки проективной прямой:
Orb, (А) Orb, (P2) Orb, (P3) Orb, (P4) Orb, (P5) Orb, (P6) Orb, (P7)
(a : 1), (a4 + a3 + a2 : 1), (a4 + a3 + a2 + a : 1)}, (a2 : 1), (a5 + a4 + a3 : 1), (a5 + a4 + a3 + a2 : 1)}, 1), (a5 + a3 + a + 1:1), (a5 + a + 1:1)}, 1), (a3 + a2 + 1 : 1), (a4 + a3 + a2 + 1:1)}, 1), (a4 + a3 + a : 1), (a5 + a4 + a3 + a : 1)},
(a3 (a4 (a5
(a4 + a3 + a + 1 : 1), (a5 + a4 + a2 : 1), (a5 + a3 + a2 + a + 1:1)},
(a5 + a4 + a2 + a : 1), (a5 + a4 + a + 1 : 1), (a2 + 1:1)}
n/l
supp(D) = Ц Orb,(Рг). i=1
Замечание 12. Для наполнения носителя дивизора D необходимо выбирать точки с непересекающимися орбитами.
Для построения дивизора G используем единственную точку Q = (а3 + 1 : 1) и параметр t = 1. В результате дивизор при мет вид G = R = (а3 + 1:1) + (а5 +
ReOrb(Q)
+ а2 + 1 : 1) + (а5 + а3 + а2 : 1).
В соответствии с леммой 3 базис пространства Римана — Роха, ассоциированного с дивизором С, выглядит так:
* (С) ' х 3 +У 3 х ■У 2
X3 + (а5 + а2 + а + 1)' X3 + (а5 + а2 + а + 1): X2 • У X3
X3 + (а5 + а2 + а + 1) X3 + (а5 + а2 + а + 1) Таким образом, порождающая матрица кода С* (Б, С) имеет следующий вид:
С,
/1 0 0 0 а21 а9 а12 а40 а13 а35 а32 а55 а30 а35 а3 а35 а19 а54 а39 а32 а14\
0 10 0 а9 а61 а30 1 а29 а10 а58 а48 а41 а56 а28 а2 а56 а44 а44 а13 а22
0 0 10 а61 а21 а18 а53 а24 а38 а5 а46 а38 а39 а21 а27 а58 а53 а24 а53 а38
\0 0 0 1 1 1 а43 а43 а43 а37 а37 а37 а27 а27 а27 а5 а5 а5 а10 а10 а10
Далее вычислим код Дг,д(Б, С) = С* (Б, П В результате получим квазициклический альтернантный код с параметрами [21, 3] и порождающей матрицей
/1 0000111111110110101 1 СрцЬ = 1010100111111110110101 \0 01010111111011011110,
Теперь покажем, что знание (Б, С) = Дг,д(Б, С), дивизоров Б и (Сс малыми параметрами позволит восстановить оригинальные параметры кода Дг,д(Б, С),
Сначала восстановим дивизор С, Как сказано ранее, если о ~ ^ ^ 1 ^ > т0 диви-С
С = 1 ■ (а5 + а2 + а + 1:1), а1 -l)/2Xl - 7 = X3 + (а5 + а2 + а + 1), (9)
где а = а21 — корень го единицы степени I.
Корням многочлена (9) соответствуют следующие точки проективной прямой:
(а3 + 1 : 1), (а5 + а2 + 1 : 1), (а5 + а3 + а2 : 1).
данные
С
С
Перейдём к восстановлению носителя дивизора Б. В первую очередь необходимо найти одно решение системы (6) для каждой точки : в) € вирр(Б), принимая во
8ирр(Б) = {(а3 : 1), (а4 + а3 + а + 1 : 1), (а5 + а4 + а2 + 1 : 1), (а5 + а3 + 1 : 1), (а5 + а2,1), (а4 + а2 + а + 1 : 1), (а3 + а2 + а : 1)}.
Корням системы соответствуют следующие точки проективной прямой:
(а4 + а3 + а2 + а : 1), (а5 + а4 + а3 + а2 : 1), (а5 + а3 + а + 1 : 1), (а3 + а2 + 1 : 1), (а4 + а3 + а : 1), (а4 + а3 + а + 1 : 1), (а5 + а4 + а2 + а : 1).
При этом 8ирр(Д') =
с 3 € {0,
,1—1}, г €{1,
{(а4+а3+а2+а : 1), (а : 1),
Н
/т
(а4 + а3 + а2 : 1), (а5 + а4 + а3 + а2 : 1), (а2 : 1), (а5 + а4 + а3 : 1), (а5 + а3 + а + 1 : 1), (а5 + а + 1 : 1), (а3 : 1), (а3 + а2 + 1 : 1), (а4 + а3 + а2 + 1 : 1), (а4 : 1), (а4 + а3 + а : 1), (а5 + а4 + а3 + а : 1), (а5 : 1), (а4 + а3 + а + 1 : 1), (а5 + а4 + а2 : 1), (а5 + а3 + а2 + а + 1 : 1), (а5 + а4 + а2 + а : 1), (а5 + а4 + а + 1 : 1), (а2 + 1 : 1)}.
Нетрудно заметить, что носители оригинального дивизора Д и дивизора Д' отличаются перестановкой. Последний шаг — восстановление перестановки между (Д', С) и Дг,д (Д, С) путём решения матричного уравнения (8), где
/1 0000000000000000 0\ 010000000000000000 001000000000000000 000100000000000000 000010000000000000 000001000000000000 000000100000000000 000000010000000000 000000001000000000 000000000100000000 000000000010000000 111111111110000000 000000000001000000 000000000000100000 000000000000010000 000000000000001000 000000000000000100 000000000000000010 000000000000000001 011110000001100111 110101000001011101
В результате найденная перестановочная матрица имеет вид
/1 0000000000000000000 0\ 0 1 0000000000000000000 001000000000000000000 000100000000000000000 000010000000000000000 000001000000000000000 000000010000000000000 000000001000000000000 000000100000000000000 000000000010000000000 П = 00000000000 1 000000000 000000000100000000000 000000000000010000000 000000000000001000000 000000000000100000000 000000000000000001000 000000000000000100000 000000000000000010000 00000000000000000000 1 000000000000000000 1 00 000000000000000000010
Отметим, что в носителе вирр(Д') в блоках 1 и 2 на первом месте стоят третьи элементы из орбит соответствующих точек носителя оригинального дивизора, что соот-
П
переетавлены, а в блоках 3, 4 и 5 на первое место встали вторые элементы из ор-
П
зирр(Д),
а
тригонализируемым в
Сначала построим С^С-СЕБ-код С& (Д, С) над Е34 с параметрами [15,4] с помощью тригонализируемого автоморфизма
а
1 2а3 + а2 + а + 1 01
где ог^а) = I = СЬаг(Едт) = 3,
Рассмотрим проективную прямую Р1 над пол ем а в качестве носителя дивизора Д выберем следующие рациональные точки проективной прямой:
ОгЬст(Р1) = {(1 : 1), (2а3 + а2 + а + 2:1), (а3 + 2а2 + 2а ОгЬст(Р2) = {(2 : 1), (2а3 + а2 + а : 1), (а3 + 2а2 + 2а + 1 ОгЬст(Р3) = {(2а : 1), (2а3 + а2 + 1:1), (а3 + 2а2 + а + 2 ОгЬст(Р4) = {(2а + 1 : 1), (2а3 + а2 + 2:1), (а3 + 2а2 + а ОгЬст(Р5) = {(2а + 2 : 1), (2а3 + а2 : 1), (а3 + 2а2 + а + 1
,
.
Для построения дивизора С используем единственную точку Q = (а2 + а + 2 : 1) и параметр £ = 1, В результате дивизор примет вид
С = Е R = (а2 + а + 2 : 1) + (а3 + 1:1) + (2а3 + 2а2 + 2а : 1). деогЪ(д)
В соответствии с леммой 3 базис пространства Римана — Роха, ассоциированного с дивизором С, можно записать так:
& (С)
X3
У3
X3 + а54ХУ2 + а7У3 ' X3 + а54ХУ2 + а7У3 ' ХУ2 Х2У
X3 + а54ХУ2 + а7У3 ' X3 + а54ХУ2 + а7У3 . Таким образом, порождающая матрица кода (Д, С) имеет следующий вид:
С,
( а77 *77
V77
V-
77
*23 77
I59 ,41
*29 77
*61 ,45
а
46
а
46
X38
46
*70 14
32
46
68 10
25 62
23
64
50 62
58 54
67 62
37 12
16 65
22
,,59
26 65
52 39
76 65
42 19
65 21
77
58 21
60 19
1
а21
а14 а7
Далее вычислим код Д.^(Д, С) = (Д, П В результате получим квазицикли-
[15, 3]
100122221222022 СриЬ = 1010212122222202 \0 0122121222222 0,
9
а
Покажем, что знание Ar,q (D, G) = Ar,q (D, G), дивизоров D и G с малыми параметрами позволит восстановить оригинальные параметры кода Ar,q(D,G),
Сначала вычислим возможных кандидатов для элемента b, используя лемму 7:
Pb = НОД ({Res* (Xp - Yp-1X - 7,Xqm - X) : i G {1,...,n/l}} ,Yqm - Y) = = Y9 + (a3 - a2 - a) Y7 + (-a3 - a2 - a - 1) Y.
b Pb
B' = roots (Pb) = {1, 2a3 + 2a + 2, 2a2 + 2a, a3 + a + 1,a3 + 2a2 + 2a + 1, a3 + 2a2 + 2a + 2, a2 + a, 2a3 + a2 + a + 1, 2a3 + a2 + a + 2}.
Дадее покажем восстановление дивизора G при правильном выборе b. Если 1b
a ~ I о 1 I, то дивизор G можно восстановить, применив алгоритм 2:
(5=1 ■ (a3 + 2a2 + 2a + 2 : 1), Xp - P-1X - 7 = X3 + (2a3 + 2a2 + 2a + 1)X + 2a3 + a2 + a + 1, (10)
где b = 2a3 + a2 + a + 1,
Корням многочлена (10) соответствуют следующие точки проективной прямой:
(a2 + a + 2 : 1), (a3 + 1 : 1), (2a3 + 2a2 + 2a : 1).
данные
G
G
D
найти одно решение системы (7) для каждой точки (7г : вг) G supp(D) = {(2a3 + 2a2 + + 2a + 2:1), (a3 + a2 + a + 1 : 1), (a3 + a2 + 2a + 1 : 1), (a : 1), (2a3 + 2a2 + 2 : 1)}. Корням системы соответствуют следующие точки проективной прямой:
(1 : 1), (2a3 + a2 + a : 1), (a3 + 2a2 + a + 2 : 1), (a3 + 2a2 + a : 1), (2a3 + a2 : 1).
При этом
supp(D') = {(в + b ■ j : 1) : j G{0,...,1 - 1},i G {1,... , n/l}} = {(1:1),
(2a3 + a2 + a + 2:1), (a3 + 2a2 + 2a : 1), (2a3 + a2 + a : 1), (a3 + 2a2 + 2a + 1 : 1), (2 : 1), (a3 + 2a2 + a + 2 : 1), (2a : 1), (2a3 + a2 + 1:1), (a3 + 2a2 + a : 1), (2a + 1 : 1), (2a3 + a2 + 2:1), (2a3 + a2 : 1), (a3 + 2a2 + a + 1 : 1), (2a + 2 : 1)}.
Нетрудно заметить, что носители оригинального дивизора D и дивизора D' отличаются перестановкой. Последний шаг — восстановление перестановки между Ar,q(D', G) и Ar,q (D, G) путём решения матричного уравнения (8), где
Н
/т
(1 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0 0 0 1
2 1 2 0 2 2 2 0 2 1 1 1
2 2 1 2 0 2 2 2 0 1 1 1
1 2 2 2 2 0 0 2 2 1 1 1
В результате найденная перестановочная матрица имеет вид
п
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
Отметим, что в носителе зирр(Д') в блоке 1 все элементы стоят на своих местах, в блоках 2 и 5 на первое место встали вторые элементы из орбит, а в блоках 3 и 4 на первом месте стоят третьи элементы из орбит соответствующих точек носителя оригинального дивизора, что соответствует единицам на главной диагонали матрицы П, Таким образом, найдя перестановку П, мы восстановили оригинальный носитель зирр(Д),
Замечание 13. В данном примере параметр Ь, а также перестановка, являющаяся решением системы (8), находятся неоднозначно, однако для полей большего порядка и параметров [п ^ 2048, к ^ п/2], использующихся в криптографических схемах, экспериментально не удалось получить ни одного случая множественности решений. Ввиду этого выбор правильных параметров в примере был опущен,
а
диагонализируемым в
а
В таком случае вычисление параметров исходного кода тривиально, В прошлых при-
а
легко разрешима при использовании малого параметра I, Здесь же рассмотрим, как
—<г
осуществляется вычисление параметров кода С , определённого над Ед2т, и покажем, что, зная автоморфизм, можно найти параметры оригинального кода, не используя алгоритмы, представленные в п, 4,
Сначала построим С^С-СЕБ-код 0^ (Д, С) над пол ем Е125 с параметр ами [15,4] с помощью автоморфизма
3а За2 + 1 2а2 + 4 2а + 4
а
где огё(а) = I =3,
Рассмотрим проективную прямую Р1 над пол ем Е125, а в качестве носителя дивизора Д выберем следующие рациональные точки проективной прямой:
ОгЬ.(Р1) = {(2 : 1), (2а2 + 2а + 1:1), (За2 + 4а + 3:1)}, ОгЬ.(Р2) = {(2а : 1), (За + 3 : 1), (а2 + 2а : 1)},
ОгЬ. (Рз) = {(2а + 1 ОгЬ. (Р4) = {(2а + 2 ОгЬ. (Р5) = {(2а + 3
1), (4а2 + 4а + 1:1), (2а2 + 3а + 4:1)}, 1), (а2 + 4: 1), (4а2 + 2а + 3: 1)}, 1), (а + 1 : 1), (а2 + 4а : 1)}.
Для построения дивизора С используем единственную точку Q = (а2 + 4а + 3 : 1) и параметр £ = 1, В результате дивизор примет вид
С
Е я
деогЪ(д)
(а2 + 4а + 3 : 1) + (а2 + 4а + 2 : 1) + (а2 + 2а + 1 : 1).
В соответствии с леммой 3 базис пространства Римана — Роха, ассоциированного с ди С
-X3 + У3 ХУ2 X2У X3
-}, где Т(X) = X3 + а87Х2У + а41ХУ2 + а89У
89л^3
^(С) I Т(X) 'Т(X)' Т(X)' Т(X) Таким образом, порождающая матрица кода 0^ (Д, С) будет иметь следующий вид:
С
(с
\
,118 „87
V106 ^,85
„47
а
а54 „,105
116 72
104 12
64 „73
14 V79
81
79 Т9
32
39 44
70
96
38
64
116 44
а98 4
а85 „108
а30 3
а96 99
123
86
а37 112
102 40
26 12
а42 101
111 V121
82 55
а27 123
30
а3" \ 121
101 81
Далее вычислим код (Д, С) = (Д, С)х П ЕЩ. В результате получим квазицикли-
[15, 5]
О
риЬ
1 0 0 0
V0
4 3 3 1 2
0
44 03
44 0
0
3 0
4 2 2
4 3
4 4 1
4 1
Теперь покажем, что знание кода 0 и дивизоров Б® и С® с малыми параметрами позволит восстановить оригинальные параметры кода Дг,д(Д,С),
Сначала восстановим дивизор С. Если а = р о а^ о р-1, где р € РСЬ2(Е5а), то С
дублирует пример в п, 5,1, поэтому покажем нахождение дивизора при знании авто-а
=
£ 0 0 е
(5 = 1 ■ (3а2 + 1:1),
(1 ^^^ - 7 = X3 + (2а2 + 4),
(П)
6
а
2
а
9
а
т
где £ = 4в + 3 — корень го единицы с тепени I тол я Е5а = Е5з [х]/(Х2 + 3Х + 3) корень неприводимого над Е5з многочлена X2 + 3Х + 3,
Замечание 14. В данном случае выполнение условия £ € Е^™ \должно быть обязательным, иначе автоморфизм ст можно диагонализировать над , Нахождение £ не составляет труда, так как всего существует 0(1) элементов порядка I в Ед2т,
Корнями многочлена (11) являются следующие элементы:
(а2 + 4а + 3), ((4а2 + а + 2)в + 3а2 + 2а + 4), ((а2 + 4а + 3)в + а2 + 4а + 3),
причём один из корней всегда лежит в поле и входит в орбиту оригинального дивизора С, Предыдущее утверждение легко проверить, рассмотрев вид точки <<:
<5® = (м)1-1^2 (^: ^ ((^) : 1
Таким образом, среди корней многочлена (11) всегда есть элемент 70, которому соответствует точка (70 : 1), входящая в оригинальный дивизор С, Поэтому при известном автоморфизме ст дальнейшее восстановление дивизора не требует рассмотрения оставшихся корней и соответствующих им точек из поля Е5а, Достаточно применить автоморфизм ст к найденной точке I раз:
С = (а2 + 4а + 3 : 1) + (а2 + 4а + 2 : 1) + (а2 + 2а + 1 : 1).
Перейдём к восстановлению носителя дивизора О®, В первую очередь необходимо найти одно решение системы (6) для каждой точки (а^ : в) € вирр(О®), принимая во внимание, что
виррСО®) = {(3 : 1), (а + 1 : 1), (2а2 + 2а + 2:1), (4а2 + 4:1), (а2 + 3 : 1)}.
С
соответствуют точкам, входящим в носитель оригинального дивизора Д следовательно, применив автоморфизм ст к каждому решению I раз, восстановим оригинальный носитель. Если решать систему над полем Е5а, то получаем
8ирр(О'®) = {(а?"^ : 1) : 3 € {0,... ,1 - 1},г € {1,... ,п//}} = {(2:1), (30 + 1:1),
(20 + 2 : 1), (2а : 1), (3а0 + а : 1), (2а0 + 2а : 1), (2а + 1 : 1), ((3а + 4)в + а + 3:1), ((2а + 1)в + 2а + 1 : 1), (2а + 2 : 1), ((3а + 3)в + а + 1:1), ((2а + 2)в + 2а + 2 : 1),
(2а + 3 : 1), ((3а + 2)в + а + 4:1), ((2а + 3)в + 2а + 3 : 1)},
что подтверждает предыдущее замечание,
ст
решая систему уравнений (8) над полем Е5а, чтобы получить исходный носитель. Затем, как показано в п, 4,1, необходимо найти отображение р', такое, что ст^ = р' о ст' о р' , чтобы получить исходные дивизоры.
ЛИТЕРАТУРА
1. Barelli Е. On the Security of Some Compact Keys for McEliece Scheme, https: //arxiv. org/ abs/1803.05289. 2018.
2. Кунинец А. А., Малыгина, E. С. Вычисление пар, исправляющих ошибки, для алгеброгео-метрического кода // Прикладная дискретная математика. 2024. №63. С. 65-90.
3. Малыгина Е. С., Кунинец А. А., Раточка В. Л. и др. Алгеброгеометрические коды и декодирование на основе пар, исправляющих ошибки // Прикладная дискретная математика. 2023. №62. С. 83-105.
4. Stichtenoth Н. Algebraic Function Fields and Codes. Springer Verlag, 1991.
5. Stichtenoth H. On automorphisms of geometric Goppa codes //J. Algebra. 1990. No. 130(1). P. 113-121.
6. Conrad К. The Minimal Polynomial and some Applications, https://kconrad.math.uconn. edu/blurbs/linmultialg/minpolyandappns.pdf. 2008.
7. Clark P. L. Linear Algebra: Invariant Subspaces. http://alpha.math.uga.edu/~pete/ invariant_subspaces.pdf. 2013.
8. Faugere J.-C., Otmani A., Perret L., et al. Folding alternant and Goppa codes with non-trivial automorphism groups // IEEE Trans. Inform. Theory. 2016. No. 62(1). P. 184-121.
REFERENCES
1. Barelli E. On the Security of Some Compact Keys for McEliece Scheme, https: //arxiv. org/ abs/1803.05289, 2018.
2. Kuninets A. A. and Malygina E. S. Vvchislenie par, ispravlvavushchikh oshibki, diva algebro-geometricheskogo koda [Calculation of error-correcting pairs for an algebraic-geometric code]. Prikladnava Diskretnava Matematika, 2024, no. 63, pp. 65-90. (in Russian)
3. Malygina E. S., Kuninets A. A., Ratochka V.L., et al. Algebrogeometricheskie kodv i dekodi-rovanie na osnove par, ispravlvavushchikh oshibki [Algebraic-geometry codes and decoding by error-correcting pairs]. Prikladnava Diskretnava Matematika, 2023, no. 62, pp. 83-105. (in Russian)
4. Stichtenoth H. Algebraic Function Fields and Codes. Springer Verlag, 1991.
5. Stichtenoth H. On automorphisms of geometric Goppa codes. J. Algebra, 1990, no. 130(1), pp.113-121.
6. Conrad К. The Minimal Polynomial and some Applications, https://kconrad.math.uconn. edu/blurbs/linmultialg/minpolyandappns.pdf, 2008.
7. Clark P. L. Linear Algebra: Invariant Subspaces. http://alpha.math.uga.edu/~pete/ invariant_subspaces.pdf, 2013.
8. Faugere J.-C., Otmani A., Perret L., et al. Folding alternant and Goppa codes with non-trivial automorphism groups. IEEE Trans. Inform. Theory, 2016, no. 62(1), pp. 184-121.