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

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

CC BY
133
15
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
Ключевые слова
ПОМЕХОУСТОЙЧИВОЕ КОДИРОВАНИЕ / СХЕМЫ СПЕЦИАЛЬНОГО ШИРОКОВЕЩАТЕЛЬНОГО ШИФРОВАНИЯ / АЛГЕБРО-ГЕОМЕТРИЧЕСКИЕ КОДЫ / ERROR-CORRECTING CODES / TRACEABILITY SCHEMES / ALGEBRAIC GEOMETRY CODES

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

Схемы широковещательного шифрования используются для защиты легально тиражируемой цифровой продукции от несанкционированного копирования. В схемах распространитель тиражирует данные свободно в зашифрованном виде, а для расшифрования выдаёт каждому легальному пользователю уникальный набор ключей, по которому можно однозначно определить пользователя, его получившего, и далее определить источник несанкционированного распространения. Для организации схем широковещательного шифрования используются методы, основанные на использовании помехоустойчивых кодов с большим кодовым расстоянием и быстрых алгоритмов списочного декодирования. В работе рассматривается возможность использования в этих схемах алгеброгеометрических кодов (АГ-кодов) L-конструкции и списочных декодеров Судана Гурусвами. Рассмотрена проблема построения таких кодов. В ходе исследования получены достаточные условия применимости АГ-кодов. Представлен алгоритм построения одноточечного АГ-кода, применимого в схемах широковещательного шифрования, обоснована его корректность, приведён пример работы.

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

Похожие темы научных работ по математике , автор научной работы — Загуменнов Денис Владимирович, Мкртичян Вячеслав Витальевич

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

On application of algebraic geometry codes of L-construction in copy protection

Traceability schemes which are applied to the broadcast encryption can prevent unauthorized parties from accessing the distributed data. In a traceability scheme, a distributor encrypts the data and gives each authorized user a unique key suit to decrypt the data. This suit uniquely identifies the recipient and therefore allows the tracing of the source of an unauthorized redistribution. A widely used approach to the constructing good traceability scheme is the use of error-correcting codes with a suitable minimum distance and efficient decoding algorithms. The paper deals with the usage of algebraic geometry codes (AG-codes) of L-construction and Sudan Guruswami list decoding algorithms in these schemes. We suggest the problem of constructing traceability AG-codes and obtain sufficient conditions for applying them. Let C C Fq' be the algebraic geometry code constructed using curve of genus g and divisor of degree a. Firstly, if c д/п/а, then C is a traceability code when the number 1, then C can be we obtain several is possible to use of attackers is a maximum of c. Secondly, if a > logq N + g used to build traceability schemes maintaining N users. Finally, cumbersome bounds on the number of intruders within which it Sudan Guruswami hardand softdecision list decoding algorithms for tracing the unauthorized redistribution source. Based on these derived conditions and some other lemmas, the algorithm for suitable one-point AG-code construction is presented. The algorithm can be polynomially reduced to the Riemann Roch space basis construction problem. Much attention is given to the algorithm validity and its sample execution. Besides, the paper gives a brief description of AG-codes and Sudan Guruswami hardand softdecision list decoding algorithms.

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

2019 Прикладная теория кодирования №44

ПРИКЛАДНАЯ ТЕОРИЯ КОДИРОВАНИЯ

УДК 004.056.5

О ПРИМЕНИМОСТИ АЛГЕБРОГЕОМЕТРИЧЕСКИХ КОДОВ L-КОНСТРУКЦИИ КАК КОДОВ ЗАЩИТЫ ОТ КОПИРОВАНИЯ

Д. В. Загуменнов*, В. В. Мкртичян**

* Южный федеральный университет, г. Ростов-на-Дону, Россия ** ФГАНУ НИИ «Спецвузавтоматика», г. Ростов-на-Дону, Россия

Схемы широковещательного шифрования используются для защиты легально тиражируемой цифровой продукции от несанкционированного копирования. В схемах распространитель тиражирует данные свободно в зашифрованном виде, а для расшифрования выдаёт каждому легальному пользователю уникальный набор ключей, по которому можно однозначно определить пользователя, его получившего, и далее определить источник несанкционированного распространения. Для организации схем широковещательного шифрования используются методы, основанные на использовании помехоустойчивых кодов с большим кодовым расстоянием и быстрых алгоритмов списочного декодирования. В работе рассматривается возможность использования в этих схемах алгеброгеометрических кодов (АГ-кодов) L-конструкции и списочных декодеров Судана — Гурусвами. Рассмотрена проблема построения таких кодов. В ходе исследования получены достаточные условия применимости АГ-кодов. Представлен алгоритм построения одноточечного АГ-кода, применимого в схемах широковещательного шифрования, обоснована его корректность, приведён пример работы.

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

DOI 10.17223/20710410/44/6

ON APPLICATION OF ALGEBRAIC GEOMETRY CODES OF L-CONSTRUCTION IN COPY PROTECTION

D. V. Zagumennov*, V. V. Mkrtichyan**

* Southern Federal University, Rostov-on-Don, Russia **FGANU NII «Specvuzavtomatika», Rostov-on-Don, Russia

E-mail: zagumionnov.denis@yandex.ru

Traceability schemes which are applied to the broadcast encryption can prevent unauthorized parties from accessing the distributed data. In a traceability scheme, a distributor encrypts the data and gives each authorized user a unique key suit to decrypt the data. This suit uniquely identifies the recipient and therefore allows the tracing of the source of an unauthorized redistribution. A widely used approach to the constructing good traceability scheme is the use of error-correcting codes with a suitable minimum distance and efficient decoding algorithms. The paper deals with the usage of algebraic geometry codes (AG-codes) of L-construction and Sudan — Guruswami

list decoding algorithms in these schemes. We suggest the problem of constructing traceability AG-codes and obtain sufficient conditions for applying them. Let C C F^ be the algebraic geometry code constructed using curve of genus g and divisor of degree a. Firstly, if c < ■sjn/a, then C is a traceability code when the number of attackers is a maximum of c. Secondly, if a ^ logq N + g — 1, then C can be used to build traceability schemes maintaining N users. Finally, we obtain several cumbersome bounds on the number of intruders within which it is possible to use Sudan — Guruswami hard- and soft- decision list decoding algorithms for tracing the unauthorized redistribution source. Based on these derived conditions and some other lemmas, the algorithm for suitable one-point AG-code construction is presented. The algorithm can be polynomially reduced to the Riemann — Roch space basis construction problem. Much attention is given to the algorithm validity and its sample execution. Besides, the paper gives a brief description of AG-codes and Sudan — Guruswami hard- and soft- decision list decoding algorithms.

Keywords: error-correcting codes, traceability schemes, algebraic geometry codes.

Введение

Рассматривается перспективный способ защиты легально тиражируемой цифровой продукции от несанкционированного копирования, называемый схемой специального широковещательного шифрования (ССШШ) [1]. В ССШШ данные тиражируются свободно в зашифрованном виде, а каждому легальному пользователю выдаётся уникальный набор ключей. В случае обнаружения нелегального использования этого набора его владелец может быть идентифицирован контроллером. В ССШШ допускаются атаки следующего вида: легальные пользователи объединяются в коалиции с целью комбинирования ключей из своих наборов и конструирования новых с целью последующего несанкционированного расшифрования данных. Для борьбы с подобными атаками в [1-5] предложен метод обнаружения членов коалиций, основанный на использовании некоторых классов линейных кодов и являющийся эффективным при применении быстрых алгоритмов списочного декодирования. Под эффективностью понимается существование алгоритма, позволяющего определить пользователей из коалиции злоумышленников за полиномиальное (от длины кода) время работы.

Интересной представляется задача определения, являются ли алгеброгеометриче-ские коды (АГ-коды) L-конструкции [6] и списочные методы их декодирования [7, 8] пригодными для эффективного использования в ССШШ. Отметим актуальность рассмотрения АГ-кодов. Во-первых, АГ-коды обобщают многие другие классы линейных помехоустойчивых кодов [9, п. 4.3.1-4.3.3]. Во-вторых, АГ-коды обладают большим минимальным кодовым расстоянием [9, теорема 4.1.1], что может положительно сказаться на выполнении достаточного условия возможности использования линейных кодов в ССШШ (см. п. 1.2). В-третьих, длина АГ-кодов в общем случае не ограничена мощностью поля, в отличие от кодов Рида — Соломона и Рида — Маллера, использование которых исследовано в [4, 5] и [8, Tracing Algorithm, B. Example], а ограничена лишь мощностью кривой, на которой строится код и которая может быть существенно больше, чем мощность поля [9, теорема 3.1.25]. Это может позволить строить более эффективные относительно затрат памяти ССШШ (см. п. 2.4).

Основное внимание в работе уделено формализации построения АГ-кодов, которые можно использовать в ССШШ. Построенные согласно полученным результатам и составленным рекомендациям коды далее можно использовать в различных вариа-

циях схем, например в схеме из [8], основанной на использовании мягкого списочного декодера Судана — Гурусвами.

В работе представлено доказательство утверждения о верхней границе для максимальной мощности коалиции злоумышленников, в пределах которой АГ-коды возможно применять в ССШШ. Получены утверждения о таких границах, в пределах которых возможно применение в ССШШ алгоритмов списочного декодирования [7, 8]. Исследована связь между этими утверждениями. На основе этих границ построен концептуальный алгоритм построения АГ-кода L-конструкции, применимого в ССШШ.

1. Предварительные сведения

Пусть Fq — конечное поле мощности q, C С F^ — линейный код, n — длина, k — размерность, d — минимальное кодовое расстояние кода C. Коды с параметрами n, k, d, определённые над полем Fq, будем называть [n,k,d]q-кодами. Для x,y € F^ будем обозначать d(x, y) = |{i € {1,... , n} : xi = yi}|.

1.1. Схемы специального широковещательного шифрования

В [10] представлены способы защиты легально тиражируемой цифровой продукции от несанкционированного копирования, называемые схемами широковещательного шифрования. В [11] эти подходы описаны и проанализированы более подробно.

ССШШ [1] —это усовершенствованная схема 4.1 из [11], основанная на использовании некоторых классов линейных кодов. Схемы из [11] будем называть классическими схемами широковещательного шифрования (КСШШ). В настоящей работе рассматривается именно ССШШ.

В ССШШ в качестве открытого ключа используется матрица M = (E^. (si))j=11' ' ' ' 'П, где q = pr; p простое; r, n € N; si — разделённые части некоторого секрета s. Каждому пользователю схемы выдаётся уникальный набор ключей (k1,i1,... , kn,in) и вектор-номер (i1,... , in), ik € {1,... , q}, k = 1,... , n, необходимый для того, чтобы пользователь знал, какие именно части матрицы M он может расшифровать на своих ключах. Проведя расшифрование и получив все части si секрета s, пользователь может получить доступ к распространяемой цифровой продукции.

В схемах широковещательного шифрования допускаются атаки следующего вида: легальные пользователи объединяются в коалиции, комбинируют свои вектор-номера и соответственно наборы ключей, получая таким образом новый «пиратский» набор, который может быть использован с целью несанкционированного распространения и последующего расшифрования данных.

Для этого в [1] в качестве вектор-номеров предложено использовать векторы некоторого кода C над полем Fq. В [2, 3] описаны классы кодов, используя которые, возможно бороться с подобными коалиционными атаками, в частности класс c-TA-кодов.

Далее будем использовать следующие обозначения: N — число легальных пользователей; с — максимальная мощность коалиции злоумышленников; n — длина используемого в ССШШ линейного кода; q — мощность поля, над которым построен используемый код.

Определение 1. ССШШ с N легальными пользователями, корректно функционирующие при атаках коалиции злоумышленников мощности не более c, будем обозначать (N, с)-ССШШ.

В [11] также представлены КСШШ, в которых существует вероятность объявить невиновного пользователя участником коалиции злоумышленников (схемы с секретом, п. 4.3 и 4.4). Далее будем сравнивать ССШШ только с теми КСШШ, в которых,

как и в ССШШ, гарантировано выявление хотя бы одного пользователя из коалиции злоумышленников (открытые схемы, п. 4.1 и 4.2)

В таблице приведено сравнение (теоремы 1 и 2 из [11]) ССШШ с этими КСШШ, а также с тривиальной схемой, когда секрет шифруется на отдельных ключах и рассылается в таком виде всем пользователям. Под длиной ключа понимается длина всей ключевой информации, хранящейся у пользователя, то есть суммарная длина вектор-номера и набора ключей. Под затратами памяти понимается размер матрицы М, под сложностью расшифрования — минимальное число операций расшифрования, которые предстоит выполнить пользователю для получения распространяемой информации в расшифрованном виде.

Через Я обозначим отношение числа бит, которые необходимо использовать для представления в памяти элемента поля , к числу бит, которые необходимо использовать для представления в памяти ключа выбранной шифросистемы. Будем полагать, что части вг разделённого секрета в имеют ту же длину, что и в. Такую схему разделения секрета легко организовать, если секрет в выбран из некоторой аддитивной

п

группы О. В этом случае в можно разделить следующим образом: в = ф вг.

г=1

Сравнение ССШШ с КСШШ и тривиальной схемой

Параметр Длина ключевой информации Затраты памяти Сложность расшифрования

Единица измерения Длина ключа в битах Длина зашифованного секрета в битах Число операций расшифрования

Тривиальная схема 1 N 1

Открытая одноуровневая схема 4c2 log N 8c4 log N 4c2 log N

Открытая двухуровневая схема 8/3 • c2 log2 clog (eN/c)) 32/3 • ec3 log4 c log (eN/c) 8/3 • c2 log2 clog (eN/c))

ССШШ n(1 + R) nq n

Единицей измерения в первом столбце выбрана длина ключа шифрсистемы. Для ССШШ пользователю потребуется набор из п таких ключей, а также вектор-номер, состоящий из п элементов поля . Легко проверить, что эта информация займёт п(1 + Я) длин ключей.

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

Единицей измерения в третьем столбце является число операций расшифрования. Для получения секрета в необходимо выполнить п расшифрований. После ¿-го расшифрования получим одну из частей вг разделённого секрета, а после всех расшифрований восстановим в.

Из таблицы видно, что параметры КСШШ и тривиальной схемы, в том числе объём затрат памяти, зависят от величин N и с, в то время как параметры ССШШ зависят от параметров кода: длины кода п и мощности поля д. Таким образом, сразу сделать вывод о большей эффективности той или иной схемы не удастся. Однако из таблицы можно сформулировать следующее утверждение. Оно понадобится при дальнейшем построении ССШШ, более эффективных, чем тривиальная схема и КСШШ.

Утверждение 1. Пусть C — [n, k,d]q-код, используемый для построения (N, c)-ССШШ. ССШШ является более эффективной относительно затрат по памяти, чем КСШШ и тривиальная схема, если nq < min{N, 8c4 log N, 32/3 • ec3 log4 clog (eN/c)}.

Доказательство. Прямо следует из таблицы. ■

Определение 2. Нижним порогом затраты памяти для ССШШ будем называть величину B(N, c) = min{N, 8c4 log N, 32/3 • ec3 log4 clog (eN/c)}.

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

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

Утверждение 2. Пусть C — [n, k, d]q-код. Код C возможно использовать для организации (N, ^-ССШШ, если выполнено условие qk ^ N.

Доказательство. Для организации (N, ^-ССШШ каждому из N пользователей необходимо выдать вектор-номер, являющийся кодовым словом кода C. Значит, количество кодовых слов не должно быть меньше числа пользователей. У кода C всего qk кодовых слов. Получаем неравенство qk ^ N. ■

1.2. Коды защиты от копирования

Пусть c £ N \ {1}. Коалицией кода C назовём множество Co = {u(1),u(2),... , u(c)}, где u(i) £ C. Число c будем называть мощностью коалиции, а множество коалиций кода мощности не больше c будем обозначать coalc(C). Множеством потомков коалиции C0 назовём множество

desc(Co) = {(yi, y2,,..., Vn) £ F^ : yt = u(j), j £ {1,..., c}}.

Определение 3 [2, определение 1.1]. Будем называть линейный код c-TA-кодом, если выполняется следующее условие:

V Co £ coalc(C) V v £ (C \ Co) V y £ desc(Co) 3 ш £ Co d(w,y) < d(v,y).

Утверждение 3 [3, теорема 5]. Пусть C — код длины n с минимальным кодовым расстоянием d, c £ N \ {1}. Если код C удовлетворяет условию d > n — n/c2, то C является c-TA-кодом, причём если Co £ coalc(C) и w £ desc(Co), то

1) 3 y £ Co (d(w, y) ^ n — n/c); 2) V v £ C \ Co (d(w, v) > n — n/c).

Под радиусом работы списочного декодера будем понимать максимальное число исправляемых им ошибок.

Следствие 1. Пусть О — код длины п с минимальным кодовым расстоянием о Е N \ {1}. Рассмотрим списочный декодер этого кода с радиусом работы г. Тогда достаточные условия применимости кода и декодера в ССШШ выглядят следующим образом: ^ > п — п/о2, г ^ п — п/о.

Условие с-ТА, наличие подходящего в смысле следствия 1 списочного декодера, а также условия из утверждений 1 и 2 являются достаточными условиями того, что код может быть использован для построения (Ж, о)-ССШШ. В работе исследована возможность использования АГ-кодов ¿-конструкции [6, 9, 12] и методов списочного декодирования [7, 8] для построения (Ж, о)-ССШШ.

1.3. Алгеброгеометрические коды

Рассмотрим концептуальный способ построения АГ-кода ¿-конструкции над . Пусть т Е N \{1}, ^[х,... , хт] — кольцо многочленов от т переменных с коэффициентами из поля . Неприводимость многочлена f Е Fq [х1,... , хт] далее рассматривается над любыми алгебраическими расширениями поля Fq вплоть до его алгебраического замыкания, если это не оговаривается особо.

Определение 4. Пусть f Е Fq [х1,х2] —неприводимый многочлен. Нули этого многочлена являются точками двумерного аффинного пространства ) [9, разд. 2.1.1, с. 106]. Их объединение будем называть плоской аффинной кривой [9, разд. 2.1.1; 12, определение 2.2].

Обозначим Fhom[X1,X2,Xз] множество однородных многочленов из Fq[Х^Х2,Х3].

Определение 5. Пусть Е Е Fhom[X1, Х2, Хз] —неприводимый многочлен. Нули этого многочлена являются точками двумерного проективного пространства Р2^д) [9, разд. 2.1.1, с. 106]. Их объединение будем называть плоской проективной кривой и обозначать как Хрг:

ХрГ = {Р = (X : Х2 : Хз) Е Р2^) : Е(ХьХ2,Хз) = 0}.

Количество точек на кривой X будем обозначать |Х|. Далее везде будем считать, что кривая Хрг задана нулями многочлена Е.

Между неприводимыми многочленами f из Fq[х1,х2] и Е из Fq[Х1,Х2,Х3] существует взаимно-однозначное соответствие [12, с. 7-8]. Таким образом, существует также и взаимно-однозначное соответствие между аффинными и проективными кривыми. Процесс построения проективной кривой по соответствующей аффинной называется гомогенизацией.

Определение 6. Пусть Е Е Fhom[X1, Х2, Х3], нули которого задают проективную кривую Хрг; (Е) —главный идеал в Fq[Х1, Х2, Х3], порождённый Е. Можно проверить, что

Л = {^ : Е F;om[Xl,X2,Xз], deg(P) = deg(Q),Q Е (Е)

с естественными операциями умножения и сложения дробей является кольцом, а

I = {^ : Р,д Е F;om[Xl,X2,Xз], deg(P) = deg(Q),Q Е (Е),Р Е (Е)

— максимальным идеалом в Л [12, с. 7]. Фактор-кольцо Л/1 в силу максимальности идеала 1 является полем [13, с. 80], оно называется полем рациональных функций на кривой Хрг и обозначается как Fq (Хрг).

Очевидно, что Р Е Fq[Х1,Х2,Х3] можно представить как

Р = Е оц,],кXIХ2 Х|, Е Fq.

г+j+k=deg(F)

Частной производной по переменной Х1 называется многочлен

= Е ¿а^Х1-1Х2 Хк, Е Fq.

г+j+k=deg(F)

Здесь элемент га^ нужно понимать как , сложенный с самим собой г раз. Аналогично определяются частные производные Рх2 и Рх3.

Определение 7. Плоская проективная кривая ХрГ называется гладкой в точке М Е Хрг, если хотя бы одно из чисел (М), РХ2 (М), РХз (М) не равно нулю.

Далее будем рассматривать только гладкие плоские кривые.

Кривые имеют параметр д Е N и {0}, называемый родом. В случае плоских гладких кривых род вычисляется по известной формуле [9, следствие 2.2.8]. Пусть Р — многочлен, нули которого задают кривую. Тогда

д = ^(Р) - 1)^(Р) - 2)/2. (1)

Из формулы (1) видно, что гладкие плоские кривые могут иметь в качестве рода число д, только если существуют решения уравнения (х — 1)(х — 2) = 2д.

Утверждение 4 [9, теорема 3.1.25]. Пусть Х — аффинная или проективная кривая рода д над полем Fq, тогда |Х| ^ д + 1 + д|~2^д].

Утверждение 5 [12, определение 2.15 и теорема 2.16]. Пус ть ХрГ проективная кривая, Fq(Хрг) —поле рациональных функций на ней, М Е Хрг. Тогда

ЗТ е Fq(ХрГ) УН Е Fq(ХрГ) Зи Е Fq(ХрГ)(Т(М) = 0 & и(М) = 0 & Н = Тти),

где т Е причём значение т не зависит от выбора элемента Т.

Определение 8. Порядком Н = Тти Е Fq (Хрг) в точке М Е Хрг назовём значение т и будем обозначать это оЫм(Н) = т. Договоримся, что оЫм(0) = то.

Замечание 1. Заметим, что в силу определения 8 порядок (в фиксированной точке) произведения функций равен сумме порядков функций-сомножителей, а порядок функции, обратной данной, равен по модулю порядку данной функции, но имеет противоположный знак.

Определение 9. Пусть М — точка на кривой Хрг; Ь Е Fhom[X, У, Z] —однородный многочлен степени 1, такой, что Ь(М) = 0; О Е Fhom[X, У, Z], deg(О) = г. Назовём кратностью пересечения О и Хрг в точке М число oтdм (О/Ьг) и обозначим её как I(М; Хрг; О).

Понятие кратности пересечения является аналогом понятия порядка для однородных многочленов.

Утверждение 6 [12, теорема 2.23]. Пусть О Е Fhom[X, У, Z] и кривая Хрг задана многочленом Р. Предположим, что Р не делит О. Тогда выполняется равенство

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

Е I(М; Хрг; G) = deg(G)deg(F).

м еХрГ

Определение 10. Дивизором D на проективной кривой Xpr называется формальная сумма следующего вида: D = £ амM, ам G Z.

м еХрГ

Так как множество точек на проективной кривой над конечным полем конечно, то эти суммы всегда конечны.

Определение 11. Степенью дивизора D называют число deg(D) = £ ам, а носителем дивизора — множество supp(D) = {M G Xpr : ам = 0}.

Определение 12. Говорят, что дивизор D = Y1 амM, ам G Z, M G Xpr, эффективен, если все ам ^ 0. Этот факт обозначается следующим образом: D ^ 0. Дивизоры образуют абелеву группу относительно поточечного сложения. Определение 13. Пусть G G F^°m[X, Y, Z], deg(G) = r. Назовём дивизором пересечения G и Xpr дивизор вида

Xpr ■ G = £ I(M; Xpr; G)M.

м eXpr

Определение 14. Пусть H = P/Q G Fq(Xpr), где P, Q G F);°m[X,Y,Z]. Дивизором H на проективной кривой Xpr называется дивизор

(H)= £ ordм (H)M.

м eXpr

Замечание 2. Учитывая определения 8 и 9, можно проверить, что

(H) = Xpr ■ P - Xpr ■ Q.

Действительно, используя замечание 1, получаем

о^м(H) = ord^= ord^LT ■ = ord^LT^ + ord^Q

= ord^LT) - ord^LT) = I(M; Xpr; P) - I(M; Xpr; Q),

где L G F^°m[X, Y, Z]; deg(L) = 1; L(M) = 0; r = deg(P) = deg(Q).

Определение 15. Зафиксируем дивизор D = £ амM и рассмотрим множество

L(D) = {H G Fq(Xpr) : (H) + D ^ 0}.

Множество L(D) называется пространством функций Римана — Роха, ассоциированным с дивизором D. Пространство Римана — Роха является конечномерным векторным пространством [12, определение 2.36, теорема 2.37].

Пусть Xpr = 0 — гладкая плоская проективная кривая, Points = {Pi,...,Pn} С

С Xpr, D = £ амM, ам G Z, — дивизор на Xpr, такой, что supp(D) П Points = 0.

м eXpr

Построим отображение

Evpoints : L(D) ^ Fn, Evp^h) = (H(Pi), H(P2),..., H(Pra)). (2)

Образ этого отображения C = Im(Evpoints(L(D))) называется АГ-кодом —-конструкции. Как видно, АГ-код зависит от выбора кривой Xpr, множества Points и дивизора D. Дивизор D будем называть дивизором кода C.

Заметим, что при вычислении функции H Е L(D) на точках из Points невозможно деление на ноль. Действительно, если существует Pi Е Points, такая, что при вычислении H в Pi проявляется деление на ноль, это означает, что ordpi(H) < 0. Но Pi Е supp(D), так как supp(D) П Points = 0. Значит, в дивизоре (H) + D есть слагаемое, соответствующее Pi, при котором коэффициент отрицателен. Но это невозможно, так как (H) + D ^ 0. Таким образом, предположение неверно, и ordp¿ (H) ^ 0 для любой точки Pi Е Points, то есть деление на ноль невозможно.

Утверждение 7 [9, теорема 4.1.1]. Пусть Xpr — кривая рода g и D — дивизор, такой, что 0 < deg(D) = a < n. Тогда АГ-код C = Im(Pvpoints(P(D))) является [n, k, d]q-кодом, где k ^ a — g + 1 и d ^ n — a. Если a > 2g — 2, то k = a — g + 1.

Замечание 3. Величина d* = n — a называется конструктивным расстоянием алгеброгеометрического кода C. Если a > 2g — 2, то d* = n — k — g + 1. Отсюда видно, что C является кодом с максимально допустимым расстоянием тогда и только тогда, когда g = 0.

Замечание 4. Естественно встаёт вопрос о вычислении базиса пространства Ри-мана — Роха L(D), являющегося, как видно по построению АГ-кода, пространством кодируемых сообщений.

При малых параметрах m,q,g базис можно попытаться вычислить вручную. Сначала необходимо найти все точки кривой. Далее, так как пространство L(D) является пространством кодируемых сообщений, размерность этого пространства равна размерности k соответствующего АГ-кода. Предположим, что deg(D) = a > 2g — 2, тогда k = a — g + 1. Таким образом, нужно найти k линейно независимых функций 0i, таких, что (0i) + D ^ 0. Для проверки этих условий нужно знать величины ordM (Ф0, где M Е Xpr. Для этого можно использовать замечание 2, в частности то, что порядок функции в точке равен разности кратностей пересечений числителя и знаменателя. Кратность пересечения I(M; Xpr; G) многочлена G в точке M c кривой Xpr равна нулю, если G(M) = 0 (определение 9). Для определения кратности пересечения в случае G(M) = 0 необходимо использовать различные свойства. Например, если известны кратности пересечений для всех точек, помимо M, кратность пересечения можно найти из теоремы 6. В силу замечания 1, если известна некоторая факторизация G = Gi ■ G2 ■... ■ Gs, то I(M; Xpr; G) = I(M; Хрт; Gi) +1(M; Хрт; G2) +... +1(M; Хрт; Gs). Кроме того, если deg(G) = 1 и G(M) = 0, то если G не является касательной в точке M к Xpr, можно утверждать, что I(M; Xpr; G) = 1. Это часто используется в [12], примеры 2.33 и 2.38, 2.34 и 2.76. Уравнение касательной к кривой Xpr, заданной многочленом F, в точке M в проективном пространстве выглядит следующим образом [12, определение 2.11]:

Fx (M )Xi + FX2 (M )X2 + FX3 (M )X = 0.

Для обработки больших параметров могут понадобиться такие алгоритмы вычисления базиса, как, например, алгоритм Хесса [14]. Алгоритм Хесса используется, например, в пакете компьютерной алгебры Magma [15].

Далее будем считать, что 0 < deg(D) = a < n.

Замечание 5. Если дивизор D имеет вид D = aQ, то построенный по такому дивизору код называется одноточечным АГ-кодом. В таком случае в качестве точки Q обычно берут точку вида (M1 : M2 : 0),Mi Е Fq [9, пример 4.1.5; 12, примеры 2.67 и 2.75].

1.4. Классический декодер Судана — Гурусвами

Утверждение 8 [7, теорема 27]. Пусть С — АГ-код длины п, Е —дивизор кода С, deg(D) = а, конструктивное расстояние кода ё* = п — к — д +1. Тогда существует алгоритм декодирования (классический списочный декодер Судана — Гурусвами — классический СДСГ) этого кода со сложностью, полиномиальной по п, исправляющий г = |_п — \/п(к + д — 1)] ошибок.

Замечание 6. Если а > 2д — 2, то из утверждения 7 видно, что а = к + д — 1 и ё* = п — к — д + 1. Таким образом, в силу утверждения 8 при выполнении условия а > 2д — 2 существует возможность использования СДСГ.

1.5. Мягкий декодер Судана — Гурусвами

Утверждение 9 [8, с. 2 (5)]. Пусть С — АГ-код длины п над полем , ё* —конструктивное расстояние кода и для некоторых т, / Е N и {0} выполнено неравенство

/2 (т — /)2 п — т

— + —,-тт +- ^ п — ё* + е,

т т(д — 1) д

где е Е К — заданный заранее безразмерный параметр допустимого отклонения, е > 0. Тогда существует алгоритм декодирования (мягкий списочный декодер Судана — Гу-русвами — мягкий СДСГ) этого кода со сложностью, полиномиальной по п, исправляющий п — т стираний и т — I ошибок.

2. Результаты

2.1. Достаточные условия применимости АГ-кодов Ь-конструкции и декодера Судана — Гурусвами

в ССШШ

Представим границы, в пределах которых АГ-коды и мягкий и классический СДСГ могут быть применены для построения (X, с)-ССТТТТТТ.

Пусть С — АГ-код Ь-конструкции над , п — его длина, к — размерность, д — род кривой, на которой определён код С, Е — дивизор кода С, deg(D) = а. Рассмотрим неравенство

а > 2д — 2. (3)

По утверждению 7 при выполнении условия (3) а = к + д — 1.

Теорема 1. Код С является с-ТА-кодом, если выполняется условие

с < -у/п/а. (4)

Доказательство. Согласно следствию 1, для того чтобы код С являлся с-ТА-кодом, достаточно выполнения следующего условия:

ё > п — п/с2. (5)

Согласно утверждению 7 и замечанию 3, ё ^ ё* = п — а. Решив неравенство для конструктивного расстояния ё* > п — п/с2 относительно с, получим значения с, которые удовлетворяют (5). Решая, получаем

с < \/п/(п — ё*) = л/п/а. Таким образом, для выполнения с-ТА достаточно выполнения (4). ■

Частный случай теоремы 1 приведён в [3, теорема 6, часть 2] в случае, когда выполнено условие (3). Доказательство этого частного случая можно получить, используя доказательство теоремы 1, имея в виду, что при выполнении (3) а = к + д — 1.

Лемма 1. Максимально возможный радиус классического СДСГ равен г, где

п — \/п(к + д — 1) , + д — 1) Е N

п — ^п(к + д — 1) — 1, \/п(к + д — 1) Е N.

Доказательство. В силу утверждения 8 максимально возможный радиус при условии у/п(к + д — 1) Е N равен г = |_п — \/п(к + д — 1)], так как в этом случае это максимальное из натуральных чисел г, удовлетворяющих неравенству г < п — \/п(к + д — 1). С учётом того, что [—х] = — [ж] и Ук Е 2 Ух Е К ([к + ж] = к + [ж]), получаем

п

п +

— ^п(к + д — 1) = п + — (\/п(к + д — 1))

= п — а/п(к + д — 1)

— (V п(к + д — 1))

В силу утверждения 8 максимально возможный радиус при условии у/п(к + д — 1) Е N равен г = п — \/п(к + д — 1) — 1, так как в этом случае это максимальное из натуральных чисел г, удовлетворяющее неравенству г < п — \/п(к + д — 1). ■

Замечание 7. Работу декодера всегда можно организовать с максимальным радиусом декодирования, выбирая соответствующим образом управляемые параметры алгоритма классического СДСГ [7, п. 6.3.3].

Теорема 2.

1) Если -^/па Е N то классический СДСГ для кода С применим для построения (X, с)-ССШШ, если выполняются условие (3) и условие

С €

п

па ]

(6)

Если упа Е N то классический СДСГ для кода С применим для построения (X, с)-ССШШ, если выполняются условие (3) и условие

С €

п

па + 1

(7)

При выполнении условия (6) выполняется и условие (4), а при выполнении (7) выполняется (6).

Доказательство. Условие (3) обосновывается замечанием 6. По утверждению 7 при выполнении этого условия а = к + д — 1. Из леммы 1 возьмём выражение для радиуса работы классического СДСГ: если ^/па Е N то г = п — \у/па |, иначе г = = п — ^/па — 1. По следствию 1, радиус декодера должен удовлетворять условию

г = п — [^/па] ^ п — п/с,

что эквивалентно

с €

п

пг

Подставив в (8) значение г при у/па Е N получим (6), а подставив г при у/па Е N получим (7).

г

Докажем, что из (6) следует (4). Условие (4) можно переписать в виде с € п/^/па. В случае у/па Е N выполняется строгое неравенство па ] > -^/па, и тогда с € € п/\^па ] < п/^/па. Значит, (6) накладывает более сильное условие на с, чем (4), следовательно, выполнение (6) влечёт за собой и выполнение (4).

Докажем, что из (7) следует (6). При у/па Е N выполняется неравенство -^/па +1 > > [^/па ], тогда с € п/^/па + 1 < п/^^/па ]. Значит, выполнение условия (7) влечёт за собой и выполнение (6). ■

Теорема 3. Предположим, что слово-потомок коалиции злоумышленников получено без стираний. Пусть

Б = у/ п(д — 1)(п(д — 1) — д(п — а — е)),

где е — параметр допустимого отклонения для мягкого СДСГ (е Е К, е > 0). Тогда мягкий СДСГ для кода С применим для построения (X, с)-ССШШ, то есть гарантируется определение как минимум одного члена коалиции злоумышленников, если выполняются условие (3) и условие

с ^ п — [(п(д — 1) — Б)/д] — 1.

а

Доказательство. Пусть гв0д, — радиус декодирования мягкого СДСГ. Из теоремы 9, учитывая, что т = п (так как считаем, что стираний нет), получаем неравенство

(п — ^ + ^^ ^ п — й* + е. п п(д — 1)

Решая это неравенство относительно г80й, получаем условия на радиус декодирования для мягкого декодера. Пусть Б = у/п(д — 1)(п(д — 1) — д(й* — е)). Тогда

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

€ п(д — 1) — Б ^ п(д — 1) + Б

гвой € #1 = -, г8ой ^ Я2 = -.

д д

При достаточно больших п, в частности при п > (й* — е)(д — 1)/(д — 2), величина Д2 превосходит п, следовательно, второе ограничение на гв0й, перестаёт иметь смысл, так как гв0д, < п. Таким образом, существенным остаётся только первое условие. Тогда максимально возможное значение радиуса работы мягкого декодера равно

п(д — 1) — Б

rsoft = LRiJ

q

На шаге 4 на первой итерации алгоритма определения злоумышленников в [8, п. «Example»], то есть на итерации, где потенциально может быть определён первый пользователь из коалиции злоумышленников, накладывается ещё одно ограничение на радиус мягкого декодера — rsoft ^ C = n — c(k + g — 1) — 1, так как на этом шаге из полученного списочным декодером списка пользователей выбираются те слова, что имеют одинаковые значения с текущим потомком хотя бы в c(k + g — 1) + 1 позициях.

По условию теоремы выполняется условие (3), то есть а = k + g — 1. Получаем

|_(n(q — 1) — D)/qJ ^ n — c(k + g — 1) — 1, n — |_(n(q — 1) — D)/qJ — 1

c ^ c >

k + g — 1 n — |_(n(q — 1) — D)/qJ — 1

а

Учитывая, что для АГ-кодов d* = n — а (замечание 3), величину D можно переписать в виде D = л/n(q — 1)(n(q — 1) — q(n — а — е)). ■

Теорема 4. Код C возможно использовать для организации (N, с)-ССШШ, если выполнено условие

а ^ logq N + g — 1. (10)

Доказательство. Из утверждения 7 и замечания 3 видно, что если а ^ 2g — 1, то k = а — g + 1. Тогда условие N ^ qk возможности применения кода C в (N, с)-ССШШ (утверждение 2) переписывается в виде N ^ q«-g+i, откуда получаем условие (10). ■

Лемма 2. Пусть C — c-ТА-АГ-код над полем Fq, где q = 2m для некоторого натурального m; n — длина кода, D —дивизор кода C, deg(D) = а, конструктивное расстояние кода d* — нечётное число. Тогда код C, являющийся удлинением кода C с помощью добавления проверки чётности [18, п. 1.9(1)], также является c-TA-кодом.

Доказательство. По замечанию 3, для кода C конструктивное расстояние d* = n — а. Согласно [18, п. 1.9(1)], при добавлении позиции проверки чётности к двоичному [n, k, d]q-коду с нечётным расстоянием d получим [n + 1, k, d + 1]q-код. Значит, код C как удлинение [n, k, ^ n — а]д-кода C является [n + 1, k, ^ n — а + 1]q-кодом. Действуя аналогично доказательству теоремы 1 и решив неравенство для конструктивного расстояния

d* = n — а + 1 > n +1 — (n + 1)/c2

относительно c, получим значения c, которые удовлетворяют достаточному условию c-TA (5) для кода C:

c< /n + 1/а. (11)

Так как C — c-TA-код, выполнено условие (4). Очевидно, что из (4) вытекает и справедливость условия (11). Значит, C также является c-TA-кодом. ■

Лемма 3. Пусть стоит задача построения (N, ^-ССШШ. Рассмотрим кривые рода g над Fq. Пусть D —дивизор на некоторой кривой, deg(D) = а. Тогда АГ-код C с дивизором D возможно использовать в ССШШ, если а ^ max{|logq N] +g — 1, 2g — 1}.

Доказательство. Для использования в (N, ^-ССШШ кода C должны выполняться условия а ^ logq N + g — 1 (теорема 4) и а ^ 2g — 1 (теоремы 2 и 3). Значит, а ^ max{|logq N + g — 1], 2g — 1}; заметим, что |logq N + g — 1] = |logq N] + g — 1. ■

Напомним, что B(N, c) - нижний порог затрат памяти для ССШШ (определение 2).

Теорема 5. Рассмотрим следующие четыре неравенства:

Неравенство 1 имеет вид — если c2 > [2^qJ, то

0 / / • j п т lB(N,c)/q +1J— q — 1 q — c2([logg N] — 1) 0 ^ g ^ mi^ | logq N |,-

L2^qJ ' c2 — L2^qj

если c2 < L2^qJ и q < c2(|logq N] — 1), то

fo c2 (|logq N] — 1) — q 1 ^ ^ . j |B(N,c)/q + 1j — q — 1

max 10-L2v/gJ — c2 j ^ g ^ min |logqN],-ivqj-

иначе

0 ^ ^ -/n ДП LB(N,c)/q +1J— q — 1

0 ^ g ^ mi^ |logqN],--

Неравенство 2 имеет вид

п лл ■ / LB(N,c)/q +1J — q — 1 q + c2 1

ilog'N1 * g * -lA/qi-' ^C^—LV^).

Неравенство 3 имеет вид

i0 LB(N,c)/q + 1J — q — 11 ^ ^ , ( LB(N,c)/q + 1J — q — 1

ma^< 0,-:-:- > ^ g ^ mi^ | logq N |

L^VqJ J 3 Г q " L2v/qJ

Неравенство 4 имеет вид

i П дп LB(N,c)/q +1J— q — 11 ^ ^ LB(N,c)/q + 1J — c2 — 1 max S 1 gq N I , -^^- } < g ^

ь^л/д^ ^ 2с2 •

Если род кривой д удовлетворяет этим неравенствам, то на кривой рода д возможно построить с-ТА-код, причём

1) длина этого кода минимальна, при которой ещё выполняется достаточное условие с-ТА (4);

2) этот код возможно использовать для построения (X, с)-ССШШ, более эффективных относительно затрачиваемой памяти, чем КСШШ.

Доказательство. Для того чтобы на кривой рода д над полем можно было бы построить с-ТА-код длины п с дивизором степени а, достаточно выполнения условия (4). Минимальная величина п, при которой возможно его выполнение, равна с2а + 1, причём, в соответствии с леммой 3, минимальное значение а равно шах{\^д N1 + д — 1, 2д — 1}. Таким образом, минимально возможное п, при которой выполнено (4), равно с2 шах{\1с^д N" + д — 1, 2д — 1} + 1.

Кроме того, на кривой должно быть достаточное количество точек для построения кода. В частности, учитывая возможность дальнейшего использования проверки чётности и утверждение 4, их должно быть не менее д + д[2^/д| + 1. Так получаем условие

n

c2 max{|logq N1 + g — 1, 2g — 1} + 1 ^ q + gL2v/?J + 1.

Для возможности использования такого кода в ССТТТТТТ, более эффективной, чем КССШ и тривиальная схема, по утверждению 1 должно выполняться условие

п = с2 шах{^9 N1 + д — 1, 2д — 1} + 1 € д + д[2^1 + 1 < В(Х,с)/д.

Два последних неравенства можно объединить в одно:

с2 шах{^д N1 + д — 1, 2д — 1} + 1 € шт{д + д[2^д] + 1, [В(^с)/д + 1|}. (12)

Решим это неравенство относительно д. Составим четыре системы:

\1ogq N1 ^ д, ( \1cgq N1 € д,

д + д[2^| +1 € [В(^с)/д + 1|, (д + д[2^| +1 € LB(N,c)/д + 1|,

с2 (\1ogq N1 + д — 1) € д + д [2^ , [ с2(2д — 1) € д + д [2 ^,

\1cgq N1 ^ д, ( \1cgq N1 € д,

д + д[2^1 +1 ^ [В (N, с)/д + 1|, (д + д[2^| +1 ^ [В (N,c)/д + 1|,

с2( \1ogq N1 + д — 1) + 1 € [B(N, с)/д + 1|, [с2(2д — 1) + 1 € [В(^ с)/д + 1|.

Первая система соответствует случаю, когда в (12) слева максимумом является \1ogg N1 + д — 1, а справа минимумом д + д[2^/д| + 1. Три остальные системы соответствуют трём оставшимся случаям. Решения первой системы совпадают с решениями неравенства 1, второй — с решениями неравенства 2 и т. д. ■

2.2. Алгоритм построения АГ-кода Ь-конструкции,

применимого в ССТ Т Предложим концептуальный алгоритм построения АГ-кода Ь-конструкции, который может быть применён для построения (X, с)-ССШШ. Он основан на утверждениях п. 2.1 и на способе построения АГ-кода п. 1.3. Полученный по алгоритму АГ-код является одноточечным АГ-кодом (см. замечание 5).

Алгоритм 1. Построение одноточечного АГ-кода, применимого в ССШШ

Вход: с Е N \ {1} — максимальная мощность коалиции злоумышленников; N Е N \ {1} —число легальных пользователей в ССШШ; д — мощность конечного поля, над которым строится код; Ь — список кривых над полем ;

InputDecoders = {ClassicDecoder, SoftDecoder,... } — список известных списочных декодеров для АГ-кодов. Выход: порождающая матрица д-ичного АГ-кода Ь-конструкции, который вместе с алгоритмом СДСГ может быть применён для построения (X, с)-ССШШ; список наиболее приоритетных для использования списочных декодеров OutputDecoders. 1: Составить множество О = {д1,д2,... ,д|с|} допустимых значений рода кривой, решив четыре неравенства относительно д из теоремы 5; г := 1, д := д». 2: Пока г ^ |О|:

3: Если уравнение (х — 1)(х — 2) = 2д не имеет натуральных корней, то 4: г := г + 1, д := д*;

5: перейти на следующую итерацию цикла на шаг 3. 6: а := шах{|~к^д N + д — 1, 2д — 1}; 7: п := с2а + 1.

8: Пока п ^ шт{д + д|_2.^д], |_В(Х,с)/д + 1]}:

9: Если в Ь есть гладкая плоская проективная кривая X, |Х | ^ п, рода д над

10 11 12

13

14

15

16

17

18

19

20 21 22

23

24

25

26

27

28

полем Fq, то

выбрать кривую X, иначе

выйти из цикла, перейти на шаг 38. Если |X | ^ n + 1, то ParityCheck := false; n := n; иначе

если |X| < n + 1 Л 3m E N (q = 2m) Л 3k E N (n — а = 2k + 1), то ParityCheck := true; n := n + 1, иначе

ParityCheck := false;

n := n + 1, перейти на новую итерацию цикла (шаг 8). OutputDecoders := 0. Если SoftDecoder E InputDecoders, то Если для n выполняется условие (9), то

к OutputDecoders добавить метку мягкого СДСГ SoftDecoder. Если ClassicDecoder E InputDecoders, то Если ^/йа E N, то

Если для n выполняется условие (6), то

29

30

31

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

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49:

к OutputDecoders добавить метку классического СДСГ ClassicDecoder, иначе // -yntt E N

Если для n выполняется условие (7), то

к OutputDecoders добавить метку классического СДСГ ClassicDecoder, // ... проверка условий на иные алгоритмы списочного декодирования. Если OutputDecoders = 0, то

n := n + 1, перейти на новую итерацию цикла на шаге 8, иначе

выйти из цикла на шаг 41. Если 7q > B(N, c), то

Вернуть «Ошибка. Эффективнее использовать КСШШ». g := g + 1

Объявить точку Q E X вида (Xi : X2 : 0) (см. замечание 5). Если ParityCheck = true, то

объявить множество Points := {Pi,..., Pn-i} С X \ {Q}, иначе

объявить множество Points := {P^ ..., Pn} С X \ {Q}. Объявить дивизор D := аQ (определение 10). Присвоить k := а — g + 1 .

Рассмотреть пространство Римана — Роха L(D) (определение 15). Построить его базис из k линейно независимых элементов. Обозначить его B = {ф1,... , фг}. Построить матрицу

G

0i(Pi) Ф1 (P2) Ф2 (Pi) Ф2 (P2)

01(P|Poinis|) ф2 (P| Points |)

фг (Pi) фг (P2) ... фг (P| Points |)

50: Если ParityCheck = true, то

51: добавить к G столбец проверки на чётность, то есть в i-ю строку добавить эле-

|Points|

мент £ фг^-). j=i

52: Вернуть G и DecoderList.

Замечание 8. В силу требований, накладываемых утверждением 1, в алгоритме минимизируется значение длины кода n. Минимизация n при заданном q делает проектируемую ССШШ более эффективной.

Теорема 6. Алгоритм 1 является корректным, то есть с его помощью можно либо построить q-ичный АГ-код L-конструкции, который вместе с предложенными списочными декодерами OutputDecoders может быть применён для построения (N, c)-ССШШ, либо убедиться в неэффективности ССШШ по отношению к КСШШ.

Доказательство. На шаге 1 включаем в множество G возможные значения рода g, для которых выполняется свойство c-TA (теорема 5).

На шаге 2 запускаем цикл по G, в результате которого подбираются кривая X подходящих мощности и рода, а также степень дивизора, такие, что эти кривые и дивизор могут быть использованы для построения искомого АГ-кода.

Коды строятся только на плоских кривых, поэтому сначала в цикле проверяем (шаги 3-5), возможно ли рассмотреть гладкую плоскую проективную кривую текущего

рода g. Согласно формуле (1), если уравнение (x — 1)(x — 2) = 2g не имеет натуральных корней, то таких кривых не существует. Тогда увеличиваем g и осуществляем проверку, пока не будет выбран подходящий род g.

Затем, согласно лемме 3, выбираем число а как max(|logq N1 + g — 1, 2g — 1) (шаг 6). Заметим, что а — минимальное из удовлетворяющих лемме 3 чисел, оно гарантирует дальнейшую минимизацию длины кода (замечание 8).

На шаге 7 выбираем константу n, которая будет использована в качестве значения длины кода по умолчанию. Инициализируем её значением c2a + 1, так как это наименьшее (замечание 8) значение, при котором искомый АГ-код является c-TA-кодом (теорема 1, условие (4)).

На шаге 8 запускается цикл по n, пока n не достигнет минимального из значений q+g L2^qJ, LB(N, c)/q+1J. Первое значение является максимальной мощностью кривой рода g над полем Fq, уменьшенной на единицу (утверждение 4). Это значение также совпадает с максимально возможной длиной АГ-кода на кривой рода g над полем Fq (пока без учёта возможного добавления проверки чётности). Параметр n не может быть больше LB(N, c)/q + 1J по утверждению 1. Значит, цикл перебирает возможные значения n как потенциальной длины АГ-кода.

В цикле на шагах 9-10 выбираем гладкую плоскую кривую X рода g, такую, что |X| ^ n. Это ограничение достаточно для того, чтобы утверждать, что при первом входе в цикл построенный на кривой X одноточечный АГ-код (замечание 5) может быть c-TA-кодом (с учётом добавления проверки чётности, лемма 11), а при последующих итерациях — чтобы обеспечивать также выполнение условий на некоторые списочные декодеры (например, на классический СДСГ на шагах 28 и 31). Если такие кривые выбрать невозможно, то есть не существует X, такого, что |X| ^ n, то выходим из цикла по n, переходим на шаг 40 и увеличиваем род g.

Далее определяем, необходимо и возможно ли использование проверки чётности [18, п. 1.9(1)]. Если на кривой уже более n точек, то использовать проверку чётности не нужно, количества точек на кривой хватит для построения одноточечного АГ-кода (замечание 5), поэтому мы не удлиняем код, присваиваем ParityCheck значение false, а константе n — значение n (шаги 13-15). Если на кривой не больше n точек, код строится над двоичным полем и конструктивное расстояние строящегося кода нечётно, то возможно использование проверки чётности (лемма 11). В этом случае мы удлиняем код, присваиваем ParityCheck значение true, а n — значение n+ 1. Таким образом, мы сначала построим АГ-код с длиной n, а затем удлиним его до длины n.

В противном случае, когда на кривой не больше n точек, но невозможно использование проверки чётности, переходим на новую итерацию цикла на шаге 8, так как количества точек на кривой не хватит для построения искомого кода. Далее в качестве длины кода используется константа n.

После этого начинаем проверку выполнения условий использования методов списочного декодирования. Инициализируем список OutputDecoders пустым списком. Если во входном списке декодеров есть метка мягкого СДСГ, то проверяем выполнение условия его использования (9) на шаге 24. Если условие выполнено, то помещаем его метку в выходной список декодеров.

Аналогично, если во входном списке декодеров есть метка классического СДСГ, то проверяем выполнение условия его использования (6) или (7) на шагах 27-32. Для этого сначала анализируем выполнение условия -y/na </ N. Если у/na ^ N, то необходимо подобрать параметры к условиям теоремы 2, п. 1. Если на шаге 28 выполняется (6), то возможно построение АГ-кода, который вместе с классическим СДСГ может быть

использован для построения (N, ^-ССШШ. В этом случае помещаем метку классического СДСГ в OutputDecoders. Если ^/иа E N, то необходимо подобрать параметры к условиям теоремы 2, п. 2. Если на шаге 31 выполняется (7), то также помещаем метку классического СДСГ в OutputDecoders.

На шаге 33 можно проверить выполнение условий для иных методов списочного декодирования.

На шаге 34 если список OutputDecoders не пуст, то существует списочный декодер, который применим для построения (N, ^-ССШШ совместно с одноточечным АГ-кодом на кривой X. Тогда выходим из циклов на шаг 41. Если список пуст, то увеличиваем n и продолжаем поиски.

Если поиски окажутся неудачными, то n станет так велико, что мы покинем вложенный цикл (проверка на шаге 8), затем пройдём проверку на эффективность проектируемой ССШШ (шаг 38) и, если она будет пройдена, увеличим род кривой g (шаг 40). Далее опять начнём искать кривые, но уже большего рода, а значит, с большим количеством точек, что видно из утверждения 4 (при g ^ то количество точек на кривой стремится к то). В конце концов, увеличивая род и мощность кривых, мы можем найти кривую, для которой выполнятся все необходимые условия. Если этого не произойдёт, то мы либо достигнем для длины кода значения |_B(N, c)/q + 1J, либо исчерпаем все возможные значения рода g из G. Это будет означать, что рассматриваемые достаточные условия не гарантируют существования искомого АГ-кода.

Отметим, что в цикле мы найдём минимальное подходящее значение n (замечание 8), так как n на каждой итерации изменяется максимум на единицу и увеличивается ровно настолько, насколько это необходимо для выполнения накладываемых условий.

После выбора параметров выбираем точку Q (шаг 41). В замечаниии 5 указаны рекомендации к выбору этой точки. Затем выбираем множество точек кривой X, отличных от Q. Обозначим его как Points (шаги 42-45). Мощность этого множества равна n — 1, если ParityCheck=true, и n в противном случае. Такое множество всегда существует, так как в случае ParityCheck=true кривая X выбрана так, чтобы |X | ^ n (шаги 10, 16), в противном случае |X| ^ n + 1 (шаги 10, 13).

Затем на шаге 46 объявляем дивизор D = аQ, который будет использован в качестве дивизора искомого АГ-кода.

Так как по построению а > 2g — 2, размерность пространства Римана — Роха L(D), ассоциированного с дивизором D, равна а — g + 1 (утверждение 7). В алгоритме размерность L(D) обозначена как k (шаг 47). Зная размерность, вычисляем базис пространства L(D) —набор из k линейно независимых функций из Fq(X). Зная базис, легко написать порождающую матрицу АГ-кода: i-я строка матрицы есть результат действия отображения Evpoints (2) на i-й элемент базиса (шаг 49). Длина такого кода равна | Points |. Поэтому если ParityCheck=true, то на шаге 51 в матрицу G добавляем столбец проверки чётности. Таким образом, длина кода станет равна выбранному параметру n.

На последнем шаге возвращаем матрицу G и выходной список декодеров. ■

Теорема 7. Алгоритм 1 полиномиально сводится к алгоритму вычисления базиса пространства Римана — Роха.

Доказательство. Решение неравенств 1-4 из теоремы 5 выполняется за константное число шагов. Цикл по g, начинающийся на шаге 2, работает полиномиальное от входных параметров c, N, q время, так как в нём перебираются значения мно-

жества G, мощность которого ограничена значениями многочленов от c, N, q (теорема 5). После шагов 3-7 начинается цикл по n на шаге 8, который также имеет полиномиальное от c, N, q число шагов — не более min{q + g [2^/qj, [B(N, c)/q + 1_|}, где g ^ max{x : x G G}. Внутри этого цикла производится поиск кривых в списке L, длина которого не зависит от входных параметров, проверка необходимости и возможности использования проверки чётности, а также проверка условий для декодеров из списка InputDecoders, длина которого является константой. После выхода из циклов или ошибки на шаге 38 производятся только тривиальные присвоения и объявления переменных, за исключением шага 41, где необходимо построить базис пространства Римана — Роха (замечание 4). ■

Для построения АГ-кода L-конструкции необходимо работать с проективной кривой. Однако при выборе кривой в алгоритме возможно рассмотрение сначала аффинных кривых, а затем использование их проективизаций.

Замечание 9. Выделим некоторые частные случаи АГ-кодов, которые могут быть получены по алгоритму. Известно, что все АГ-коды L-конструкции на кривых рода ноль являются или кодами Рида — Соломона, или их удлинениями [9, с. 314]. Количество точек на кривой рода 0 равно q + 1 (утверждение 4). Это влечёт ограничение на длину АГ-кода, построенного по алгоритму 1: n ^ q. В этом случае достаточное условие того, что одноточечный АГ-код является c-TA-кодом, выглядит следующим образом: _

c < v/qTä.

Учитывая утверждение 4, получим, что достаточное условие того, что одноточечный АГ-код на кривой рода 1 с максимальным числом точек является c-TA-кодом, имеет вид _

c< (q + [2VqJ)/a.

Известно, что все АГ-коды L-конструкции на кривых рода 1 являются эллиптическими кодами, то есть кодами, построенными по эллиптическим кривым [9, п. 4.4.1, разд. «Коды рода один»].

Данная работа преимущественно посвящена построению АГ-кодов безотносительно методов их списочного декодирования. Несмотря на это, для более полного исследования получены также достаточные условия применимости списочных декодеров [7, 8] (теоремы 2, 3). Достаточность выполнения этих условий отражена в алгоритме 1 на шагах 23-32.

При применении классического СДСГ обычно используется следующая модель канала: отправитель посылает x G Fq, получатель получает некоторый y G Fq, и вероятность того, что x = y, равна 1 — p, где p — вероятность ошибки в канале. Классический СДСГ выбран для исследования, потому что он, во-первых, достигает границы Джонсона, которая является нижним порогом списочной «декодируемости» кода, то есть классический СДСГ удовлетворяет минимальным требованиям к списочному декодеру; во-вторых, применение классического СДСГ достаточно для построения ССТТТТТТ, более эффективных с точки зрения затрат памяти (утверждение 1), чем тривиальные схемы широковещательного шифрования или чем КСТТТТТТ (см. п. 2.3).

Мягкий СДСГ является расширением классического СДСГ. При его применении используется следующая модель канала: отправитель посылает x G Fq, получатель на своём конце имеет функции плотности вероятности /ж(-), где /ж(а) —вероятность того,

что получатель получит на выходе значение а в случае, когда отправитель послал х. Построение таких функций в случае декодирования АГ-кодов описано в [8].

На шаге 33 алгоритма 1 могут быть размещены условия на иные методы списочного декодирования для АГ-кодов. При использовании этих методов они должны быть включены в список InputDecoders на входе алгоритма. Например, возможно использование списочного декодера, представленного в [16]. В данную работу рассмотрение этого алгоритма, имеющего радиус декодирования п— 2п(п — ё) +д — 1] — 1, не включено, так как он меньше аналогичного радиуса для классического СДСГ [7, введение в разд. 4].

Сравнение различных методов списочного декодирования относительно использования в ССШШ, в том числе сравнение характеристик классического и мягкого СДСГ, представляется темой отдельного исследования.

Отметим, что одноточечные АГ-коды на фиксированной кривой имеют максимально возможную длину. Это условие является важным с точки зрения выполнения достаточного условия с-ТА (4).

2.3. Пример работы алгоритма

Пусть на вход алгоритма поданы следующие параметры:

с =2, N = 512, д = 8.

В качестве списка кривых Ь будем использовать таблицы кривых из [17]. В список декодеров занесём метки классического и мягкого СДСГ, рассматриваемых в работе.

Применим алгоритм 1. Сначала покажем, что достаточные условия с-ТА и условия применимости СДСГ не гарантируют существование д-ичных кодов Рида — Соломона, применимых для построения (512, 2)-ССШШ. Затем построим одноточечный АГ-код на кривой рода 1, который вместе с мягким СДСГ может быть применён для организации (512, 2)-ССШШ, и построим одноточечный АГ-код на кривой рода 3, который может быть применён вместе с классическим СДСГ.

На шаге 1 сначала вычисляем величину В(^ с) = N = 512. Затем определяем множество возможных значений рода кривой д. После решения неравенств получаем

С = {1, 2, 3} и {3} и 0 и 0 = {1, 2, 3}.

Так как значение д = 0 не входит в множество С, можно сделать вывод, что при поданных на вход параметрах достаточные условия с-ТА не гарантируют существования искомого АГ-кода на кривой рода 0. В силу замечания 9, это означает, что достаточные условия не гарантируют существование кодов Рида — Соломона, которые вместе с СДСГ могут быть применены для организации (512, 2)-ССШШ.

Полагаем д =1 и заходим в цикл (шаг 2). Уравнение (х — 1)(х — 2) = 2 имеет натуральный корень 3, поэтому можем рассматривать плоские кривые рода 1. На шагах 6 и 7 присваиваем а := шах{|~к^8 512 + 1 — 1], 2 • 1 — 1} = 3 и П := 22 • 3 + 1 = 13. Затем заходим в цикл по П на шаге 8, так как выполняются условия п = 13 ^ д + д[2^/д| + 1 = 14 и П = 13 ^ [В(^ с)/д + 1| = 65. В цикле на шаге 10 в качестве кривой X выберем кривую, заданную следующим многочленом:

Х22ХЗ + Х1Х2Х3 + Х2Х32 — X? — Х33 = 0. (13)

Можно проверить, что на этой кривой находится 14 точек над полем Р8, таким образом, она удовлетворяет всем условиям, наложенным на шаге 9. Так как |Х| ^ П = 13,

присваиваем ParityCheck:= false и n := n = 13. На шаге 22 инициализируем список возможных для использования декодеров. Затем, так как на шаге 23 видим, что SoftDecoder е InputDecoders, переходим на шаг 24, где проверяем условие (9) и убеждаемся в том, что оно выполнено: c = 2 ^ (13 — 7 — 1)/3 ^ 5/3. На шаге 26 видим, что ClassicDecoder е InputDecoders; анализируя на следующем шаге значение величины v/na = • 3, убеждаемся, что оно не принадлежит множеству N, и на шаге 27 проходим по первой ветке. На шаге 28 видим, что условие (6) не выполнено. На шаге 37, так как на шаге 34 обнаружено, что список возможных декодеров не пуст, выходим из цикла на шаг 41. Таким образом, все необходимые параметры для построения кода подобраны.

Рассмотрим кривую (13). Поле Fg будем рассматривать как F2[£]/(£3 + £ + 1). Выпишем все точки кривой:

Q = (0 : 1 : 0),P = (1 : 0 : 1),P2 = (£4 : £4 : 1),Рз = (£2 : £2 : 1), P4 = (£ : £ : 1),P5 = (£3 : £4 : 1),Pa = (£6 : £ : 1),^7 = (£5 : £ : 1),Pg = (£4 : 1 : 1), P9 = (£5 : £2 : 1),Рю = (£6 : £4 : 1),Pn = (£2 : 1 : 1),Pi2 = (£3 : £2 : 1),Pi3 = (£ : 1 : 1).

В качестве точки Q выберем точку (0:1:0) (шаг 41), а в качестве Points — множество {Pi : 1 ^ i ^ 13} (шаг 45). Объявим дивизор D = 3Q (шаг 46) и l = 3 — 1 + 1 = 3 (шаг 47).

На шаге 48 необходимо вычислить базис пространства Римана — Роха. Вычислим сначала дивизоры пересечения Xpr • X1, Xpr • X2, Xpr • X3, используя соображения, изложенные в замечании 4.

Многочлен X1 равен нулю на кривой Xpr только в точке Q. Тогда, в силу теоремы 6, I(Pi; Xpr; Xi) = 3. Значит, Xpr • Xi = 3Q.

Многочлен X2 равен нулю на кривой Xpr только в точке P1. Тогда, в силу теоремы 6, I(P2; Xpr; Xi) = 3. Значит, Xpr • X2 = 3Pi.

Многочлен X3 равен нулю на кривой Xpr только в точке Q. Тогда, в силу теоремы 6, I(Q; Xpr; X3) = 3. Значит, Xpr • X3 = 3Q.

Рассмотрим функции 1, Xi/X3, X2/X3. Их количество совпадает с l = 3. В силу замечаний 1 и 2 имеем

(Xi/X3) = 3Q — 3Q = 0, (X2/X3) = 3Pi — 3Q.

Кроме того,

(1) + D = 3Q ^ 0, (Xi/X3) + D = 0 + 3Q = 3Q ^ 0,

(X2/X3) + D = 3Pi — 3Q + 3Q = 3Pi ^ 0,

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

то есть все эти функции лежат в пространстве L(D). Можно проверить, что они линейно независимы в пространстве Римана — Роха L(D). Значит, {1, Xi/X3, X2/X3} — полный линейно независимый набор функций из L(D), то есть искомый базис. Построим порождающую матрицу G:

" 1111111111111 "

1 £4 £2 £ £3 £6 £5 £4 £5 £6 £2 £3 £ .

.0 £4 £2 £ £4 £ £ 1 £2 £4 1 £2 1 _

Так как ParityCheck = false, то на шагах 50-52 не выполняем никаких действий. Матрица G и список OutputDecoders = {SoftDecoder} с меткой мягкого СДСГ являются

результатом работы алгоритма. Получен [13, 3, ^10]8-код, который совместно с мягким СДСГ может быть применён для организации (512, 2)-ССШШ.

Рассмотрим, какой код был бы получен в результате работы алгоритма, если бы на входе в список декодеров не был включен только жёсткий СДСГ. В этом случае мы бы не прошли проверку на шагах 23, 27 и 28, на шаге 34 получили пустой список OutputDecoders, увеличили n и перешли на шаг 8. При g =1 на шаге 8 при n = 14 не заходим на следующую итерацию, так как условие n = 14 ^ q + g|_2^/qJ = 13 неверно. Поэтому переходим на проверку на шаге 38, проходим её и на шаге 40 увеличиваем значение рода: g = 2. При g = 2 уравнение на шаге 3 не имеет корней, поэтому увеличиваем g до 3.

Затем на шаге 6 присваиваем a := max{|log8 512 + 3 — 1], 2 • 3 — 1} = 5, а на шаге 7 n := 22 • 5 + 1 = 21. Далее попадаем на начало цикла по n (шаг 8). Заходим в цикл, так как выполняются условия n = 21 ^ q + g|2^qJ =23 и n = 21 ^ |_B(N, c)/q + 1J = 65. На шаге 10 в качестве кривой X выберем кривую, заданную следующим многочленом:

XX + Х23Хз + X33Xi = 0. (14)

На этой кривой находится 24 точки над полем F8, таким образом, она удовлетворяет всем условиям, наложенным на шаге 9.

Так как |Х| ^ 22, присваиваем ParityCheck := false и n := n = 21. Пропускаем проверку на шаге 23, так как SoftDecoder | InputDecoders. На шаге 27 анализируем значение величины -^/ña = • 5, убеждаемся, что она не принадлежит множеству N. Значит, проходим по первой ветке на шаг 28 и видим, что условие (6) не выполнено. Тогда на шаге 35 увеличиваем значение n до 22 и переходим на новую итерацию цикла.

На шаге 10 можем выбрать ту же самую кривую. Снова присваиваем ParityCheck := := false и n := n = 22. Пройдя все проверки, попадаем на шаг 27 и видим, что снова

v/na =

V22 • 5 | N. Значит, снова проходим по первой ветке на шаг 28. Там убеждаемся, что условие (6) выполнено, добавляем в OutputDecoders метку классического СДСГ ClassicDecoder и на шаге 37 выходим из циклов, попадая на шаг 41. Таким образом, все необходимые параметры для построения кода подобраны.

Рассмотрим кривую (14). Поле F8, как и ранее, будем рассматривать как F2[£]/(£3 + £ + 1). Выпишем все точки кривой:

Pi = (1:0:0), Q = (0 : 1 : 0), P2 = (0 : 0 : 1), P3 = (1 : £ : 1), P4 = (1 : £2 : 1),

P5 = (1 : £4 : 1), Pe = (£ : 1 : 1), P7 = (£ : £2 : 1), P8 = (£ : £6 : 1), P9 = (£2 : 1 : 1), Pió = (£2 : £4 : 1), Pii = (£2 : £5 : 1), P12 = (£3 : £2 : 1), P13 = (£3 : £3 : 1), Pi4 = (£3 : £5 : 1), Pi5 = (£4 : 1 : 1), Pie = (£4 : £ : 1), Pi7 = (£4 : £3 : 1), Pi8 = (£5 : £ : 1), Pi9 = (£5 : £5 : 1), P20 = (£5 : £6 : 1), P2i = (£6 : £3 : 1), P22 = (£6 : £4 : 1), P23 = (£6 : £6 : 1).

В качестве Q выберем точку (0 : 1 : 0), в качестве Points — множество {P¿ : 2 ^ i ^ 23}. Объявим дивизор D = 5Q и l = 5 — 3 + 1 = 3.

Затем необходимо вычислить базис пространства Римана — Роха. Вычисляем дивизоры пересечения Хрг • Xi, Xpr • Х2, Xpr • Х3.

Многочлен Xi равен нулю на кривой Хрг только в точках P2 и Q. Так как Xi = 0 не является касательной к кривой в точке Q, то I(Q; Хрг; Xi) = 1. Тогда, в силу теоремы 6, I(P2; ХрГ; Xi) = 3. Значит, Хрт • Xi = 3P2 + Q.

Многочлен Х2 равен нулю на кривой Хрг только в точках Pi и P2. Так как Х2 = 0 не является касательной к кривой в точке P2, то I(P2; Хрг; Х2) = 1. Тогда, в силу теоремы 6, I(P^ Хрг; Xi) = 3. Значит, Хрг • Х2 = 3Pi + P2.

Многочлен X3 равен нулю на кривой Xpr только в точках Pi и Q. Так как X3 = 0 не является касательной к кривой в точке Pi, то I(Pi; Xpr; X3) = 1. Тогда, в силу теоремы 6, I(Q; Xpr; X3) = 3. Значит, Xpr • X3 = 3Q + P^

Рассмотрим функции 1, X2/X3, XiX2/X|. Их количество совпадает с l = 3. В силу замечаний 1 и 2 имеем

(Xi/X3) = 3P2 — Pi — 2Q, (X2/X3) = 2Pi + P2 — 3Q

и, кроме того,

(1) + D = 5Q ^ 0, (X2/X3) + D = 2Pi + P2 — 3Q + 5Q = 2Pi + P2 + 2Q ^ 0, (XiX2/X32) + D = (Xi/X2) + (X2/X3) + D = = 3P2 — Pi — 2Q + 2Pi + P2 — 3Q + 5Q = Pi + 4P2 ^ 0,

то есть все эти функции лежат в пространстве L(D). Можно проверить, что они линейно независимы в пространстве Римана — Роха L(D). Значит, {1,X2/X3,XiX2/X|} — полный линейно независимый набор функций из L(D), то есть искомый базис. Построим порождающую матрицу G:

" 1111111111111111111111 "

0 £ £2 £4 1 £2 £6 1 £4 £5 £2 £3 £5 1 £ £3 £ £5 £6 £3 £4 £6 .

.0 £ £2 £4 £ £3 1 £2 £6 1 £5 £6 £ £4 £5 1 £6 £3 £4 £2 £3 £5 _

Так как ParityCheck = false, на шагах 50-52 не выполняем никаких действий. Матрица G является результатом работы алгоритма в случае, если в списке InputDecoders только классический СДСГ. Получен [22, 3, ^17]8-код, который совместно с классическим СДСГ может быть применён для организации (512, 2)-ССШШ.

2.4. Сравнение АГ-кодов с другими классами кодов Выгода в затратах памяти при использовании АГ-кодов на кривых высоких родов обсуловлена тем, что, в отличие от классических кодов Рида — Соломона и Рида — Маллера, длина АГ-кода ограничена не мощностью поля, а лишь мощностью кривой, на которой строится код и которая может быть существенно больше, чем мощность поля [9, теорема 3.1.25]. Таким образом, можно строить ССШШ над полями меньшей мощности, незначительно увеличивая n, в то время как при использовании классических кодов приходится увеличивать мощность поля. Наиболее наглядно это можно видеть в случаях, когда q = 2m для некоторого m. Отметим, что именно такие поля наиболее часто используются в технических и программных реализациях схем защиты.

Рассмотрим некоторые примеры ССШШ, на которых сравним классические коды Рида — Соломона и Рида — Маллера с АГ-кодами. Покажем, что существуют как параметры ССШШ, при которых более выгодно использование исключительно классических кодов, так и параметры, при которых более выгодно использование АГ-кодов на кривых рода больше 0.

Пример 1. Как показано в рассмотренном в п. 2.3 примере, достаточные условия не гарантируют построения кода Рида — Соломона над полем Fg, применимого в ССШШ с параметрами c =2, N = 512. Для обслуживания такой ССШШ построены [13, 3, ^10]g- и [22, 3, ^17]з-коды на кривых рода 1 и 3 соответственно, которые должны применяться с мягким СДСГ в первом случае и с классическим СДСГ во втором. Заметим, что для этих кодов величины nq, важные с точки зрения затрачиваемой в ССШШ памяти (см. таблицу на с. 70), равны 104 и 176 соответственно.

Попробуем построить классические коды, применимые для организации такой схемы. Так, для этих параметров возможно построение [16, 4,13]1б-кода Рида — Соломона. Однако для этого кода nq = 256, что больше, чем при использовании АГ-кодов на кривых рода 1 и 3, следовательно, хуже с точки зрения объёма используемой памяти.

При заданных параметрах можно построить 2-ТА-код Рида — Маллера с q = 8, r = 1, m =2. Для этого кода n = 82 = 64, k = 3, d = 82 — 1 • 8 = 58, поэтому он имеет самое большое значение nq = 512.

Таким образом, для рассмотренных в примере значений c и N использование АГ-кодов более выгодно, чем классических кодов Рида — Соломона и Рида — Маллера.

Пример 2. В [8, п. «Example»] рассмотрен пример ССТТТТТТ с параметрами c = 3, N = 220 = 1048 576. Для неё в [8] построен [31, 4, 28]32-код Рида —Соломона, который применим в таких ССШШ совместно как с классическим, так и с мягким СДСГ. Заметим, что алгоритм 1 также выдаст для таких значений c, N, q этот код. Действительно, для этих параметров выбор такого кода представляется наиболее удачным, так как построение АГ-кода над полем F32 на кривых более высоких родов с целью оптимизации памяти не имеет смысла: увеличение рода кривых приведёт только к увеличению n, а уменьшение величины q до 16, например, не удастся, так как для кодов, построенных при параметрах c = 3, N = 220, q = 16, перестанет выполняться достаточное условие c-TA (4).

Для обслуживания такой ССШШ также возможно построение 3-ТА (1, 2)-кода Рида — Маллера над полем F16, но такой код показывает большую неэффективность в использовании памяти: учитывая, что n = qm, для него nq = 256 • 16 = 4096.

Значит, для рассмотренных в примере параметров использование АГ-кодов представляется менее выгодным, чем использование классического кода Рида — Соломона.

Пример 3. Пусть поставлена задача построения ССШШ с параметрами N = = 220 + 1, c = 3. В этом случае код Рида — Соломона над полем F32 построить уже не удастся. Действительно, для обслуживания такого числа пользователей с помощью кода Рида — Соломона над полем F32 величина qk = 32k должна быть больше, чем 220 (утверждение 2). Это накладывает ограничение на размерность кода: k > 4. Но уже при k = 5 получаем, что d = n— 4. Это ограничение совместно с достаточным условием c-TA (4) налагает на длину кода Рида — Соломона условие n > 36. Но код Рида — Соломона не может иметь такой длины над полем F32. Таким образом, для такой ССШШ возможно построение лишь [64, 4,61]16-кода Рида — Соломона, для которого nq = 4096. Ситуация аналогична для всех N, таких, что 220 < N < 224.

Легко проверить, что с помощью алгоритма 1 для таких параметров АГ-код над полем F32 можно построить только при условии существования над F32 кривой рода 3 с максимальным числом точек, в частности с 65 точками. Тогда возможно построение [64, 5, ^57]32-АГ-кода, который может быть применён в такой ССШШ совместно с мягким СДСГ. Однако в ходе исследования такой кривой найти не удалось. Известные кривые рода 3 над полем F32 имеют максимум 64 точки [17], что недостаточно для построения искомого АГ-кода даже с использованием столбца проверки чётности.

Значит, для заданных параметров использование АГ-кодов менее выгодно, чем классических кодов.

Пример 4. Пусть поставлена задача построения ССШШ с параметрами

235 < N < 236, c = 2.

Для обслуживания такого числа пользователей с помощью классического кода Рида — Соломона необходимо использовать поле F32. Действительно, для поля F16 получаем,

что величина qk = 16k должна быть больше, чем 235 (утверждение 2). Это накладывает ограничение на размерность кода: k > 8. Уже при k = 9 получаем, что d = n — 8. Это ограничение совместно с достаточным условием c-TA (4) налагает на длину кода Рида — Соломона условие n > 32. Но код Рида — Соломона не может иметь такой длины над полем Fi6. Таким образом, для такой ССШШ возможно построение лишь [29, 8, 22]32- кода Рида — Соломона, для которого nq = 928. Он может быть применён в этой ССШШ совместно с мягким СДСГ (при параметре допустимого отклонения не более 0,1).

С помощью алгоритма 1 для таких же параметров возможно построить АГ-код над полем Fi6 на кривой рода 6 с 65 точками [17]. Получим [57, 9, ^ 43]16-АГ-код, который может быть применён в такой ССШШ совместно с мягким СДСГ (при параметре допустимого отклонения не более 0,1). Для такого кода nq = 912.

Для применения классического СДСГ можно использовать [30, 8, 23]32-код Рида — Соломона с nq = 960 или [58, 9, ^44]i6-АГ-код с nq = 928.

Возможно также построение 2-TA (2, 3)-кода Рида — Маллера над полем Fq, но, учитывая, что для него длина равна n = qm = 163, можно заключить, что его использование является наименее эффективным относительно затрат памяти.

Таким образом, для заданных параметров использование АГ-кодов более выгодно, чем классических.

Заключение

В [3] представлены достаточные условия эффективного использования линейных кодов и методов списочного декодирования в ССШШ. В работе эти результаты применены для АГ-кодов L-конструкции [6, 9, 12] и классического и мягкого алгоритмов СДСГ [7, 8]. Таким образом, получены точные достаточные условия применения этих кодов и декодеров в ССШШ, исследована связь между ними.

На основе полученных утверждений представлен концептуальный алгоритм построения АГ-кода L-конструкции, который, совместно с алгоритмами СДСГ, может быть эффективно использован в ССШШ.

ЛИТЕРАТУРА

1. Stinson D. R. and Wei R. Combinatorial properties and constructions of traceability schemes and frameproof codes // SIAM J. Discr. Math. 1998. V. 11. No. 1. P. 41-53.

2. Staddon J. N., Stinson D. R., and Wei R. Combinatorial properties of frameproof and traceability codes // IEEE Trans. Inform. Theory. 2001. V. 47. No.3. P. 1042-1049.

3. Silverberg A., Staddon J., and Walker J. Applications of list decoding to tracing traitors // IEEE Trans. Inform. Theory. 2003. V. 49. No. 5. P. 1312-1318.

4. Деундяк В. М., Мкртичян В. В. Исследование границ применения схемы защиты информации, основанной на PC-кодах // Дискретный анализ и исследование операций. 2011. Т. 18. №3. С. 21-38.

5. Деундяк В. М., Евпак С. А., Мкртичян В. В. Исследование свойств q-ичных помехоустойчивых кодов Рида — Маллера как кодов для защиты от копирования // Проблемы передачи информации. 2015. Т. 51. №4. С. 99-111.

6. Гоппа В. Д. Алгебраико-геометрические коды // Известия АН СССР. Сер. матем. 1982. Т. 46. №4. С. 762-781.

7. Guruswami V. and Sudan M. Improved decoding of Reed — Solomon and algebraic-geometric codes // Foundations of Computer Science. Palo Alto: IEEE, 1998. P. 28-37.

8. Fernandez M. and Soriano M. Identification of traitors in algebraic-geometric traceability codes // IEEE Trans. Signal Proc. 2004. V.52. Iss. 10. P. 3073-3077.

9. Влэдуц С. Г., Ногин Д. Ю., Цфасман М. А. Алгеброгеометрические коды. Основные понятия. М.: МЦНМО, 2003. 504с.

10. FiatA. and Naor M. Broadcast encryption // LNCS. 1994. V. 773. P. 480-491.

11. ChorB., FiatA., and Naor M. Tracing traitors // LNCS. 1994. V.839. P. 257-270.

12. Hoholdt T., van Lindt J., and Pellikaan R. Algebraic geometry codes // Handbook of Coding Theory / eds. V. S. Pless, W. C. Huffman, and R. A. Brualdi. V. 1. Amsterdam: Elsevier, 1998. P. 871-961.

13. Лэнг С. Алгебра. М.: Мир, 1968. 564 с.

14. Hess F. Computing Riemann — Roch spaces in algebraic function fields and related topics // J. Symbolic Comput. 2002. V. 33. No. 4. P. 425-445.

15. http://magma.maths.usyd.edu.au/magma/ — Magma Computational Algebra System.

16. Shokrollahi A. and Wasserman H. List decoding of algebraic-geometric codes // IEEE Trans. Inform. Theory. 1999. V.45. No. 2. P. 432-437.

17. Van Der Geer G. and Van Der Vlugt M. Tables of curves with many points // Mathematics of Computation. 2000. V. 69. No. 230. P. 797-810.

18. Мак-Вильямс Ф. Дж., СлоэнН.Дж.А. Теория кодов, исправляющих ошибки. М.: Связь, 1979. 744с.

REFERENCES

1. Stinson D. R. and Wei R. Combinatorial properties and constructions of traceability schemes and frameproof codes. SIAM J. Discr. Math., 1998, vol. 11, no. 1, pp. 41-53.

2. Staddon J. N., Stinson D. R., and Wei R. Combinatorial properties of frameproof and traceability codes. IEEE Trans. Inform. Theory, 2001, vol.47, no.3, pp. 1042-1049.

3. Silverberg A., Staddon J., and Walker J. Applications of list decoding to tracing traitors. IEEE Trans. Inform. Theory, 2003, vol. 49, no. 5, pp. 1312-1318.

4. Deundyak V. M. and Mkrtichyan V. V. Issledovaniye granits primeneniya skhemy zashchity informatsii, osnovannoy na RS-kodakh [Research of applying bounds of the information protection scheme based on RS-codes]. Diskretn. Anal. Issled. Oper., 2011, vol.18, no.3, pp. 21-38. (in Russian)

5. Deundyak V.M., EvpakS.A., and Mkrtichyan V. V. Analysis of properties of q-ary Reed — Muller error-correcting codes viewed as codes for copyright protection. Probl. Inform. Transm., 2015, vol.51, no. 4, pp. 398-408.

6. Goppa V. D. Algebraiko-geometricheskiye kody [Algebraic-geometric codes]. Izv. Akad. Nauk SSSR. Ser. Mat., 1982, vol.46, no. 4, pp. 762-781. (in Russian)

7. Guruswami V. and Sudan M. Improved decoding of Reed — Solomon and algebraic-geometric codes. Foundations of Computer Science, Palo Alto, IEEE, 1998, pp. 28-37.

8. Fernandez M. and Soriano M. Identification of traitors in algebraic-geometric traceability codes. IEEE Trans. Signal Proc., 2004, vol.52, iss. 10, pp.3073-3077.

9. VladutS.G., NoginD.Y., and TsfasmanM.A. Algebrogeometricheskie kody. Osnovnye ponyatiya. [Algebraic Geometric Codes. Basic Notions]. Moscow, M^ME Publ., 2003. 504 p. (in Russian)

10. FiatA. and Naor M. Broadcast encryption. LNCS, 1994, vol.773, pp. 480-491.

11. Chor B., Fiat A., and Naor M. Tracing traitors. LNCS, 1994, vol. 839, pp. 257-270.

12. Hoholdt T., van Lindt J., and Pellikaan R. Algebraic geometry codes. Handbook of Coding Theory, eds. V. S. Pless, W. C. Huffman, and R. A. Brualdi, vol. 1. Amsterdam, Elsevier, 1998, pp.871-961.

13. Lang S. Algebra. Springer, 2002.

14. Hess F. Computing Riemann — Roch spaces in algebraic function fields and related topics. J. Symbolic Computation, 2002, vol.33, no. 4, pp. 425-445.

15. http://magma.maths.usyd.edu.au/magma/ — Magma Computational Algebra System.

16. Shokrollahi A. and Wasserman H. List decoding of algebraic-geometric codes. IEEE Trans. Inform. Theory, 1999, vol.45, no. 2, pp. 432-437.

17. Van Der Geer G. and Van Der Vlugt M. Tables of curves with many points. Mathematics of Computation, 2000, vol. 69, no. 230, pp. 797-810.

18. MacWilliams F. J. and Sloane N. J. A. The Theory of Error-Correcting Codes. Elsevier, 1977. 744 p.

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