УДК 517.9
Э.М. Габидулин
Московский физико-технический институт (государственный университет) Ранговые ^-циклические и псевдо-д-циклические коды
В теории кодов, исправляющих ошибки в метрике Хэмминга, хорошо известны три класса кодов: циклические коды, укороченные циклические коды и псевдоциклические коды. Важным является результат, состоящий в том, что класс линейных укороченных циклических кодов совпадает с классом линейных псевдоциклических кодов [1]. В теории кодов, исправляющих ошибки в ранговой метрике, подобные результаты неизвестны. В этой работе для линейных кодов, основанных на ранговой метрике, получен аналогичный результат. Обобщается понятие д-циклических кодов и вводятся два новых семейства кодов, а именно, укороченных д-циклических кодов и псевдо-д-циклических кодов. Показано, что класс псевдо-д-циклических кодов совпадает с классом укороченных д-циклических кодов, если число позиций укорочения кратно степени расширения поля. Для других укорочений проблема остается открытой.
Ключевые слова: линеаризованные многочлены, ранговая метрика, циклические коды.
I. Введение
В теории кодов, исправляющих ошибки в метрике Хэмминга, хорошо известны три класса кодов: циклические коды, укороченные циклические коды и псевдоциклические коды.
Линейным (п,к)-кодом над расширенным полем ¥дм называется к-мерное подпространство пространства .
Линейный (н,к)-код называется циклическим, если для любого кодового вектора g = = (91 92 ■ ■■ 9п) его правый циклический сдвиг
с^) = {дп 91 ■■■ 9п-2) также является ко-
довым вектором. В полиномиальном представлении циклические коды являются идеалами кольца ¥чы [х]/(хп - 1).
Среди кодов, построенных в метрике Хэмминга, циклические коды составляют очень важный класс. Цикличность позволяет уменьшить сложность процедур кодирования и декодирования.
Близкими к ним являются укороченные циклические коды. Они строятся путем укорочения тех подкодов циклического кода, у которых последние т символов являются нулевыми.
Другим близким классом кодов являются псев-доциклические коды. Эти коды являются идеалами кольца ¥дм [х]//(х), где /(х) — некоторый многочлен степени п.
Важным является результат, состоящий в том, что класс линейных укороченных циклических кодов совпадает с классом линейных псевдоцикличе-ских кодов [1].
В теории кодов, исправляющих ошибки в ранговой метрике, подобные результаты неизвестны. В этой работе результат, аналогичный результату для кодов в метрике Хэмминга, получен для линейных кодов, основанных на ранговой метрике. Коды с ранговой метрикой нашли применение в пространственно-временном кодирова-
нии [2], криптографии [3], сетевом кодировании [4] и т.д.
Пусть ¥я — конечное базовое поле из ц элементов и пусть ¥дм — расширение этого поля степени N.
Пусть вектор g = (91, 92, ■■■, 9п) € ¥П^.
Ранг вектора g, — обозначаемый Ик^), это максимальное число компонент , которые линейно независимы над базовым полем ¥я.
Ранговое расстояние между gl € и g2 € € равно по определению рангу их разности: ^1 ^2) = Ик^1 - g2).
ц-циклическим сдвигом вектора g = = (91, 92, ■■■, 9п) называется вектор следующего вида:
Сд(^ = (91, 9я!, ■■■, 9<п-1)-
Другими словами, ц-циклический сдвиг — это композиция операций правого циклического сдвига координат вектора и возведения каждой координаты в степень ц.
Линейный (п,к)-код над полем ¥яN называется ц-циклическим, если ц-циклический сдвиг любого кодового вектора g также является кодовым вектором.
ц-циклические коды как подкласс кодов в ранговой метрике были введены в работе [5] для п = N. Существуют ц-циклические коды с максимальным ранговым расстоянием. Свойство ц-цикличности позволяет улучшить характеристики кода, так как уменьшает число вычислений при кодировании и декодировании. Поэтому применение ц-циклических кодов вызывает большой интерес.
В этой статье, во-первых, обобщаются конструкции ц-циклических кодов для длин п = = sN; во-вторых, вводится класс укороченных ц-циклических кодов; в-третьих, вводится класс псевдо-ц-циклических кодов; в-четвертых, показывается, что последние два класса совпадают.
II. Линеаризованные многочлены
Многочлен вида
П
g(x) = ^2 aix<1 , a g FqN, (!)
i=0
называется линеаризованным.
Обозначим 1n [x] множество линеаризованных многочленов с коэффициентами из поля FqN.
Сложение Rn [x] определяется как обычное сложение многочленов.
Некоммутативное умножение двух линеаризованных многочленов h(x) G Rn [x] и g(x) G R» [x] определяется как композиция
f (x) = h(x) <g> g(x) d=f h(f (x)).
С операциями +,<g) множество линеаризованных многочленов Rn [x] становится некоммутативным полиномиальным кольцом без делителей нуля. Нулевой многочлен 0 является нулевым элементом этого кольца. Многочлен x является единичным элементом кольца. Это кольцо является левым и правым Евклидовым кольцом. Все левые и правые идеалы являются главными идеалами. Кольцо Rn [x] было введено в работах [6-7].
Кольцо Rn [x] является некоммутативным. Однако существуют линеаризованные многочлены f (x), перестановочные со всеми многочленами из Rn [x], то есть
f (x) <g) r(x) = r(x) <g) f (x), У r(x) G Rn[x].
Множество C[Rn [x]] всех таких многочленов называется центром. Известно, что центр C[Rn [x]] состоит из многочленов вида
N sN
{fox + fixq + ... + fsxq },s G N,
где все коэффициенты fj принадлежат базовому полю Fq.
Центральный многочлен
N sN
f (x) = fox + fixq + ... + fs xq , fs = 0 порождает фактор-кольцо:
Ln(f (x))[x] d=f Rn[x]/f (x).
Это кольцо является конечным некоммутатив-
n 2s
ным кольцом, состоящим из qJ линеаризованных многочленов степени не выше qsN -1 с коэффициентами из FqN . Операции в этом кольце осуществляются по модулю f (x). Для h(x),g(x) G Ln(f(x))[x], сумма и произведение определены в виде h(x) + g(x)mod f (x), и h(x) <g) g(x)modf (x) = h(g(x))mod f (x) соответственно.
Приведем две новые леммы.
Лемма 1. Пусть
N nN
f (x) = fox + fixq + ... + fnxq e C[Rn[x]]
является центральным многочленом, удовлетворяющим условиям fo = 0,fn = 0. Тогда существует целое число s, n ^ s ^ qN n — 1, такое, что двучлен xq — x делится без остатка слева и справа на f (x).
Доказательство. Фактор-кольцо Rn [x]/f (x) может быть представлено как конечное множество линеаризованных многочленов вида
nN- 1
gox + gixq + ... + gnN-ixq ,gj e FqN. Следо-
IN 2
вательно, оно содержит qN n — 1 ненулевых элементов (то есть остаточных классов по модулю двустороннего идеала (f (x))).
Рассмотрим последовательность ненулевых остаточных классов
x[iN + (f(x)),i = 0, 1, ..., qN2n — 1.
Очевидно, что существуют целые
0 < a<b < qN2n — 1,
такие, что xq = xq mod (f (x)). Обозначим s = b — a. Тогда xq = xq<~ ^ = xmod (f (x)).
Это означает, что xq — x делится слева и справа без остатка на f (x). Ясно, что n ^ s ^ qN n — 1. Пример 1. Пусть q = 2 и
/ ч 4N 2N N
f (x) = xq + xq + xq + x.
7N
Тогда двучлен xq — x делится без остатка на f (x):
7N
xq — x = h(x) <g) f (x) =
/ q3N q N \ , q4N q2N qN
= (xq +xq +x) <g) (xq +xq +xq +x).
Не существует двучлена xq — x с s < 7N, который
q4N q2N qN
делится без остатка на f (x) = xq +xq +xq +x. Лемма 2. Пусть
N sN
f (x) = fox + f1xq + ... + fsxq e C[Rn[x]]
центральный многочлен. Предположим, что f(x) = fi(x) <g> f2(x), где fi(x), f2(x) e Rn[x]. Тогда многочлены fi(x), f2(x) перестановочны, то есть
f (x) = fi(x) <g> f2(x) = f2(x) <g> fi(x). (2)
Доказательство. Рассмотрим разность Mx) = fi(x)0f2(x)—f2(x)0fi(x) = f (x)—f2(x)®fi(x). Умножим обе части справа на f2(x) и получим A(x) <g> f2(x) =
= f (x) ® f2(x) — f2(x) <g> fi(x) <g> f2(x) =
= f (x) ® f2(x) — f2(x) <g> f (x).
Верно равенство f2(x) <8> f (x) = f (x) ® f2(x), так как f (x)— центральный многочлен. Следовательно,
A(x) ® f2(x) = f (x) <g> f2(x) — f (x) <g> f2(x) = 0.
Отсюда следует, что A(x) = 0 и
fl(x) ® f2(x) = h(x) <g> f!(x).
III. Идеалы как коды
sN
Рассмотрим центральный многочлен xq — x и соответствующее фактор-кольцо:
Ln(xq — x)[x] d=f Rn[x]/(xq — x).
sN
Кольцо Ln(xq — x)[x] является конечным некоммутативным кольцом. Оно состоит из всех многочленов вида
sN — 1
a(x) = aox + a\xq + ... + asN_1xq ,aj G FqN.
Мы свяжем с многочленом a(x) вектор a = (ao,a!,...,asN_i) G FqNN длины sN.
Подкольцо I[x] С Ln(xq — x)[x] называется левым идеалом, если оно замкнуто относительно левого умножения на многочлены фактор-кольца, то есть
sN sN
Ln(xq — x)[x] <g) I[x] (mod xq — x) = I[x].
Левые (и правые) идеалы являются главными и могут быть описаны с помощью порождающих
многочленов G(x), которые являются множителя-
qsN
ми в разложении многочлена xq —x.
Предположим, что xq —x = H(x) <g) G(x), где G(x) — линеаризованный полином степени, например qsN_k. Тогда левый идеал I[x], порожденный G(x), состоит из всех многочленов вида
sN
g(x) = i(x) <g) G(x) (mod xq —x). При систематическом кодировании многочлен i(x) есть линеаризованный многочлен степени не выше qk_1. Однако произведение i(x) <g) G(x) (mod xq —x) есть
кодовый многочлен, даже если степень i(x) боль-к
ше или равна qk.
Обозначим M линейный (sN,k)-код с векторами в FSJN и обозначим M(x) его полиномиальное представление.
Лемма 3. Линейный (sN,k)-код M является q-циклическим, если и только если M(x)
sN
есть левый идеал фактор-кольца Ln(xq —x)[x], порожденного линеаризованным многочленом
sN
G(x), таким, что xq —x = H(x) ® G(x) и deg(G(x)) = qsN _k.
Доказательство. Для s = 1 доказательство приведено в работе [7]. Приведем доказательство для s ^ 1. Пусть ^^^-код M(x) является левым идеалом Ln(xq —x)[x], порожденным многочленом G(x). Тогда кодовый многочлен g(x) может быть представлен в виде
sN — 1
g(x)=i(x) <g) G(x)=gox+gixq+...+gsN_ixq для некоторого i(x). Ясно, что многочлен
sN
xq ® g(x) = (xq <g) i(x)) ® G(x) (mod xq —x) есть
также кодовый многочлен. С другой стороны, он совпадает с q-циклическим сдвигом g(x), так как
xq®g(x) (mod xqsN —x) =
= xq®(g0x+g1xq+...+gsN_1xqSN 1) (mod xqSN —x) = = gqxq + gqxq + ... + gqsN_ 1xq (mod xq —x) =
= g^N _1x+g0xq+...+gqqN _2xqsN 1.
Наоборот, пусть линейный ^^^-код M(x) в полиномиальном представлении является q-циклическим кодом. Пусть
sN-1
g(x) = gox + g1xq + ... + gsN _1'xq GM(x)
есть кодовый многочлен. Вычислим многочлен xq <g) g(x):
xq <g) g(x) modxqsN — x = g(x)q (mod xqSN — x) =
= g0'xq + gqxq + ... + (glN_ 1xq (mod xq — x) =
= gqN _1x + g0 xS + gqxq2 +... + g^N _2xqsN 1.
Видно, что полученный многочлен есть
q-циклический сдвиг g(x). Следовательно, как и
sN
предполагалось, xq ® g(x) (mod xq — x) G M(x) и xq ® M(x) (mod xq — x) С M(x). Отсюда
по индукции следует, что для любого много-
sN
члена c(x) G Ln(xq — x)[x] имеем c(x) ® M(x) (mod xq —x) С M(x), или
sN sN
Ln(xq — x)[x] ®M(x) (mod xq —x)= M(x). Значит, M(x) — левый идеал кольца
sN
Ln (xq —x)[x].
Замечание. Из леммы 3 следует, что для данного q длины q-циклических кодов кратны расширению степени N. Однако поле может быть получено с помощью различных расширений. Например, поле F256 может быть представлено как F26 с q =2 и N = 6 или как F43 с q = 4 и N = 3, или как F82 с q = 8 и N = 2. Следовательно, длины q-циклических кодов могут быть кратны 6 или 3, или 2. Пусть в общем случае q = pr, где p — простое число. Видим, что поле FqN может быть представлено как поле FqN1 с q1 = pn, N1 = (rN)/n, где n — множитель числа rN. Длины q-циклических кодов кратны N1 для всех множителей n. Заметим также, что все q-циклические коды являются кодами над полем FqN .
Новый q-циклический код может быть описан в терминах порождающего многочлена или альтернативно в терминах проверочного многочлена. Пусть xq —x = H(x) <g) G(x), где
sN — k
G(x) = Gox + G1xq + ... + Gsn _k xq ,
k
H(x) = H0x + H1xq + ... + Hkxq .
Многочлен G(x) называется порождающим многочленом, потому что любой кодовый многочлен
имеет вид
g(x) =
gox + gixq + ... + gsN-ixq i(x) <g) G(x)modxq — x
для некоторого *(х). Пусть *(х) = ^к=о *Iхя , где *1 € ¥я^, I = — 1, — информационные сим-
волы. Тогда соответствующий кодовый многочлен есть
k-i к-i sN-к
(x) = ^2 iiGq (x) = ^2 ii ^2 Gq xqj+ .
i=o i=o j=o
Следовательно, кодовый вектор может быть представлен в виде
9 = (90 91 ■■■ 9эМ-^ = (*о *1 ■■■ *к-1) О,
где
(Go Gi
G=
(3)
\
o o
— порождающая матрица (вЖ,к)-кода M. в векторном представлении.
Многочлен H (x) называется проверочным многочленом, потому что для любого кодового многочлена g(x) условие H(x) ® g(x) (mod xq -x) = 0 удовлетворяется. Отсюда следует, что проверочная матрица (вЖ,к)-кода M. в векторном представлении имеет вид
H
/ hk-1
' o hi
o
ho
hi1
(4)
где hi d=f Hq .
Предположим, что к > N. Тогда мы можем вычеркнуть из матрицы (3) последние N строк, получив (к — N) х sN матрицу со нулевыми последними N столбцами. Удаление этих столбцов дает нам новую (к — N) х (s — 1)N порождающую матрицу. Эта матрица определяет N-укороченный ^-циклический код размерности к — N и длины (s — 1)N. Подобным образом, если к > mN, то стирание последних mN строк и последних mN столбцов матрицы (3) дает mN -укороченный ^-циклический код размерности к — mN и длины (s — m)N. Заметим, что укороченные коды имеют то же самое минимальное ранговое расстояние, что и исходный код M..
Теперь рассмотрим обобщенное фактор-кольцо Ln(f (x))[x] = Rn[x]/f (x), где f (x) — центральный многочлен степени qnN, то есть
N nN
f (x) = fox + fixq + ... + fnxq e C[Rn[x]], (5)
при fn = 0.
Пусть О(х) — правый делитель многочлена /(х), то есть /(х) = Н(х) ® О(х).
Определение. Идеал М(х) кольца
(/(х))[х], порожденного всеми левыми множителями правого фактора О(х) центрального многочлена /(х), называется псевдо-ц-циклическим кодом в полиномиальном представлении.
Пусть deg(G(x)) = цпК-к. Из определения следует, что псевдо-ц-циклический код М в векторном представлении есть (nN,к)-код. В соответствии с леммой 3, если /(х) = хя — х, то любой псевдо-ц-циклический код есть ц-циклический.
IV. Основные результаты
Основные результаты — это следующие две теоремы.
Теорема 1. Каждый псевдо-ц-циклический код есть укороченный ц-циклический код.
Доказательство. Пусть
LN (/(х))[х] = RN [х]//(х)
— фактор-кольцо, где /(х) представлено в (5). Пусть О(х) — правый делитель /(х), порождающий псевдо-ц-циклический код Т. В соответствии
зМ
с леммой 1 существует двучлен хя — х, где s ^ п, который делится без остатка на /(х) и, следовательно, на О(х). Это означает, что О(х) порождает ц-циклический код длины sN. Если s = п, тогда этот код совпадает с псевдо-ц-циклическим кодом Т, порождаемым О(х). Если s > п, мы можем иметь только кодовые векторы, содержащие все нулевые последние ^ — n)N компонент. Удаление этих компонент дает псевдо-ц-циклический код Т. Следовательно, код Т является mN-укороченным ц-циклическим кодом, у которого т = s — п.
Теорема 2. Каждый mN -укороченный ц-циклический код размерности (к — mN) и длины ^ — m)N есть псевдо-ц-циклический код.
Доказательство. Предположим, что многочлен О(х) порождает ц-циклический (sN,к)-код М при к > mN. Представим центральный мно-
я*М
гочлен хя — х как произведение центральных
многочленов:
хя — х = /1(х) <8> /2(х) <8> ■■■ <8> /г(х),
Множители могут быть записаны в любом порядке.
Многочлен О(х) есть правый делитель произведения /(х) = /^ (х) ® ■■■ ® /г (х) нескольких многочленов /j (х). Выберем произведение со степенью q(s-m)N, например: /(х) = хя( } + ■■■ + /0х.
Тогда можно получить mN-укороченный код длины ^ — m)N. Такой код порождается О(х) и является идеалом фактор-кольца, порождаемого с помощью /(х). Следовательно, укороченный код есть псевдо-ц-циклический код.
Пример 2. Пусть ц = 2, N =3. Рассмотрим кольцо линеаризованных многочленов с ко-
1
G
o
N-k
ii GsN k 1 GsN k
k1
k1
k1
G0
G1
;
G
o
ho
Nk1
N-к- 1
hk
ho
эффициентами из ¥я^ = ¥8. Пусть а — примитивный элемент поля ¥8, удовлетворяющий уравнению а3 + а +1 = 0. Разложим на множители двучлен хя — х таким образом: хя — х = Н1 ® О1, где Н1(х) = хя + ах,О1 (х) = хя + а4хя + а6х. В свою очередь разложим на множители двучлен х[12 — х следующим образом:
х[12] _ х =
= (xq3 — x) <g) (xq3 — x) <g) (xq3 — x) <g) (xq3 — x) =
x=
■ x) &) (xq — x) &) (xq — x) &) (xq — x) = Hi <g> Gi <g> Hi <g> Gi <g> Hi <g> Gi <g> Hi <g> Gi = = Hi <g> Gi <g> Hi <g> Gi <g> Hi <g> Hi <g> Gi <g> Gi =
= H <g> G,
Легко видеть, что этот код есть ц-циклический код длины 6.
В этом примере мы проанализировали sN-укороченные ц-циклические коды для ц = 2, N = 3, = 4, m = 1, 2. Однако если
длина укорочения не кратна N, то теорема 2 не верна. Рассмотрим в примере 28-укороченный ц-циклический код длины 5 и размерности 1. Он описывается порождающей матрицей
G.3
(
1
1 )■
Однако этот код не является ни ц-циклическим кодом длины 5, ни псевдо-ц-циклическим кодом.
где
Н = Ні ® Оі ® И\ ® Оі® Пі ® Ні,
G = Ох ® Ох = хя +ахя +хя +а5хя+а5х.
Построим ^-циклический код длины 4М = 12, порожденный многочленом О(х). Порождающая матрица кода такова (см. (3)):
(а
G
а i а
i 0 1
а6 аб i а4 а5 а5 1
з „ з а
6
0 а3
0 0 0 0 i 0 а1 i а2
0 0 0 0\ 0 0 0 0 0 0 0 0 0 0 0 0 i 0 0 0 i 0 0
0 0 а6 а6 i а
0 0 0 а5 а5 i а i 0 .
0 0 0 0 а3 а3 i а2 i )
Удаление последних N = 3 строк и последних N = 3 столбцов в матрице О дает порождающую матрицу О13-укороченного ц-циклического кода длины 3N = 9:
G
i=
( а 0 0 0 0
1
а 1 0 0 0 0\
1 а2 10 0 0
0 а6 а6 1 а4 10 0
0 0 а5 а5 1 а 10
1 а2 1
а а3 а
6
0 0 0 а
3 а3
Этот код является также псевдо-ц-циклическим кодом длины 3N = 9, порождаемым тем
же самым многочленом О(х) в фактор-кольце ^(/1(х))[х] = RN[х]//1(х), где
/1(х) = (хя3 —х) ® (хя3 —х) ® (хя3 —х) =
= х^ +х'[6 +хя3 +х■
В свою очередь удаление последних трех строк и последних трех столбцов в матрице О1 дает порождающую матрицу О2 для 6-укороченного ц-циклического кода длины 6:
G
2=
а
0
1
а
1а
1 0 21
Этот код является также псевдо-ц-циклическим кодом длины 2N = 6, порождаемым тем
же самым многочленом О(х) в фактор-кольце ^(Ь(х))[х] = RN[х]//2(х), где
/2(х) = (хя —х) ® (хя —х) =
= х^6 + х■
V. Выводы
• Обобщено понятие q-циклических кодов и введены два новых семейства кодов, а именно, укороченные q-циклические коды и псевдо^-циклические коды.
• Доказано, что класс псевдо-q-циклических кодов совпадает с классом укороченных q-циклических кодов, если число позиций укорочения кратно степени расширения основного поля. Для других случаев проблема остается открытой.
• Построены три класса линейных кодов над полем FqN :
1. q-циклические ^^^-коды длины sN и размерности k;
2. mN-укороченные q-циклические ((s — m)N,k — mN )-коды;
3. псевдо^-циклические
((s — m)N,k — mN )-коды.
• Доказано, что mN -укороченные q-циклические коды эквивалентны псевдо^-циклическим кодам.
• Открытой проблемой остается описание M-укороченных q-циклических кодов, если M не является множителем при N.
Работа частично финансировалась в рамках программы РНПВШ, проект 2931.
Литература
1. Peterson W.W. Error-correcting codes. — The M.I.T. Press, Cambridge, Mass. — 1961.
2. Gabidulin E.M., Lusina P., Bossert M. Maximum Rank Codes as Space-Time Codes // IEEE Trans. Inform. Theory. — 2003. — V. IT-46,
N 10. — P. 2757-2760.
3. Gabidulin E.M. Attacks and counter-attacks on the GPT public key cryptosystem // Designs, Codes and Cryptography. — Springer Netherlands, 2008. — V. 48, N 2. — P. 171-177.
4. Silva D, Kschischang F.R., Koetter R. A rank-metric approach to error control in random network
5
5
а
а
а
а3 а
5
а
3
3
а
а
coding // IEEE Trans. Inform. Theory. — 2008. — V. 54, N 9. — P. 3951-3967.
5. Габидулин Э.М. Теория кодов с максимальным ранговым расстоянием // Проблемы передачи информации. — 1985. — Т. 21, № 1. — С. 3-16.
6. Ore О. Theory of non-commutative polynomials // Ann. of Math. — 1933. — V. 34, N 2. — P. 480-508.
7. Ore (О. On a Special Class of Polynomials // Trans. Amer. Math. Soc. — 1933. — V. 35. — P. 559-584.
Поступила в редакцию 20.09.2010.