ПРИКЛАДНАЯ ДИСКРЕТНАЯ МАТЕМАТИКА
2015
Прикладная теория кодирования
№ 4(30)
ПРИКЛАДНАЯ ТЕОРИЯ КОДИРОВАНИЯ
УДК 519.72
СРАВНЕНИЕ КОДА ГОЛЕЯ С АЛГЕБРОГЕОМЕТРИЧЕСКИМ КОДОМ
П. М. Ширяев
Московский государственный университет им. М. В. Ломоносова, г. Москва, Россия
Рассматриваются два двоичных кода, код Голея G = [23,12, 7]2 и предложенный автором алгеброгеометрический код C, для кодирования информации в двоичном симметричном канале с шириной W = 50 КБ/c, тактовой частотой кодера/деко-дера 1 ГГц, вероятностью битовой ошибки p = 0,005 и требуемой вероятностью успешного декодирования передаваемого кодового слова не менее 0,9999. Показывается, что оба кода подходят под эти условия и что скорость передачи по этому каналу информации, закодированной по коду C, примерно в 1,12 раз выше, чем для информации, закодированной по коду G. Показано также, как за счёт выбора дивизора D и базиса L(D) при построении кода C можно ускорить стандартный алгоритм декодирования.
Ключевые слова: AG-код, код Голея, L-конструкция, эллиптическая кривая. DOI 10.17223/20710410/30/7
COMPARISON OF THE BINARY GOLAY CODE WITH THE ALGEBRO-GEOMETRIC CODE
P. M. Shiriaev
Lomonosov Moscow State University, Moscow, Russia E-mail: [email protected]
The binary Golay code G = [23,12, 7]2 and a binary algebro-geometric code C, proposed by the author, are considered for coding information in a binary symmetric channel with bandwidth W = 50KB/s, coder/decoder clock rate 1 GHz, bit error ratio p = 0.005, and required decoding probability 0.9999. It is shown that both codes fit this channel and the code C rate is 12 % greater than the code G rate. It is also shown how you can increase the decoding speed of the standard decoding algorithm by a proper choice of a divisor D and the basis of L(D) for constructing C. The decoding complexity of C is estimated and the message transmission durations for C and G are compared.
Keywords: AG-code, Golay code, L-construction, elliptic curve.
Введение
Введём следующие обозначения:
— G = [23,12, 7]2 —двоичный код Голея;
78
П. М. Ширяев
— F = Z2[t]/(t4 + t3 + 1) — поле из 16 элементов;
— C — алгеброгеометрический [24,14,10]16-код;
— L(D) = {0} U {f G k(X)* : (f) + D ^ 0} —пространство Римана — Роха дивизора D
кривой X над полем k;
— 1(D) —размерность L(D).
Для передачи информации в некоторых случаях требуются коды с вероятностью успешного декодирования не меньше 0,9999 при условии вероятности битовой ошибки 0,005 — например, код Голея G = [23,12, 7]2. Опишем способ построения алгеброгеометрического кода на эллиптической кривой с параметрами [24,14,10]16, который удовлетворяет этому условию и быстрее G примерно в 1,12 раз. Для декодирования полученного кода воспользуемся стандартным алгоритмом [1, с. 279]. Алгоритм декодирования использует базис пространства Римана — Роха L(D) дивизора D, где D задаётся при построении кода. Выбор в качестве базиса множества, построенного в [2, теорема 3.3], позволяет уменьшить количество арифметических операций в алгоритме декодирования по сравнению с произвольным базисом. Вычислим сложность алгоритма декодирования и проверим, что указанный алгоритм гарантирует требуемую вероятность успешного декодирования. Все рассматриваемые дивизоры являются приведёнными [2, с. 48] и имеют положительную степень, поэтому для вычисления размерности пространства Римана — Роха будем пользоваться равенством I (D) = deg D+1 [1, 2.2.23] (род эллиптической кривой равен 1).
В ходе построений используются определённые на кривой X рациональные функции, в частности базис L(D). Стоит отметить, что при этом используются не сами функции, а наборы их значений на некотором множестве точек P, иными словами, векторы длины |P|.
1. Построение АГ-кода
Многочлен t4+t3 + 1 неприводим над Z2, следовательно, F = Z2[t]/(t4+t3 + 1) является полем GF(24). Элементы этого поля будем интерпретировать как числа в двоичной записи. В частности, t3 +1 + 1 ^ 10112 = 11, t2 +1 +1 ^ 01112 = 7. Рассмотрим над F эллиптическую кривую
X = {то} U {(x, y) : y2 + y = x3 + 11x + 7}, x,y G F.
Введём обозначение P = Х\то. Отметим, что P разбивается на пары сопряжённых точек [3, def. 5]. В дальнейшем нам понадобится зависимость координат сопряжённой точки от координат исходной. По определению, для X эта зависимость устроена следующим образом.
Замечание 1. Если P = (xP, yP), то P = (xP,yP + 1).
Зафиксируем дивизор [3, def. 31] D = 10 • то. Составим матрицу
Hd = (fi(P ))i=1 ...1(D), p ev
где {fi} — базис L(D), и рассмотрим задаваемый ею код
C = {c G F24 : Hd • c = 0} .
Согласно [1, теоремы 4.1.1 и 4.1.25], C является кодом с параметрами
[24, 24 - deg(D), deg(D)]i6 = [24,14,10]i6.
Сравнение кода Голея с алгеброгеометрическим кодом
79
Поскольку минимальное расстояние C равно 10, рассматриваемый код может исправить до четырёх произвольных ошибок. Ниже приведён алгоритм, исправляющий такое количество ошибок.
2. Скорость декодирования
По следствию 4.1.42 [1], стандартный алгоритм исправления ошибок [1, с. 279] позволяет декодировать до min(/(D/),deg(D) — deg(D/)) — 1 = 4 ошибок.
Опишем стандартный алгоритм. В качестве вспомогательного дивизора зафиксируем D/ = 5 • то. Для каждого шага алгоритма вычислим требуемое количество операций над элементами F. Для краткости будем записывать операции как тройку чисел: количество (сложений, умножений, делений). Входящий вектор обозначим v, искомый вектор ошибок — е.
1) Обозначим базисы L(D/) и L(D — D/) как {gj} и {hk} соответственно. По теореме 3.3 из [2] для рассматриваемых дивизоров можно выбрать следующие базисы:
Ш = {1,x,x2,x3,x4,x5,y,yx,yx2,yx3}; (1)
{gj } = {hk} = {1,x,x2,y,yx}. (2)
Замечание 2. Матрица Hd = (gj(P))j=1...i(D'), используемая в алгоритме, пор ер
лучается из Hd вычёркиванием строк, поскольку базис (2) является подмножеством базиса (1).
2) Вычислим синдромы (вектор и матрицу)
s = Hd • v
Е f<(P)vр , s
рер / i=1...l(D)
Е gj(P)hk(P)vP
р ер
j=1...l(D') ' k=1...l(D')
Как упоминалось выше, P является объединением пар сопряжённых точек. Используем это для ускорения вычисления синдромов. Для упрощения записи введём обо-
1
значение an(P)
xP
и рассмотрим два столбца Hd , соответствующие паре сопря-
жённых точек P и
VP/
P. Их вклад в s выглядит следующим образом:
( a(P)
\yp a3(p)
a5(P) \ (vn
(yn + 1)a3(P)) \vP
’ a5(P)
Ур a3(p)
(vp + v-p) +
( (vP + vP)a 5(P) \ + ( 0 ^
l(vP + vn)ypa3(pW + [vpa3(PW .
0
a3(P)
vP =
Векторы a5(P) и yPa3(P) составляют столбец матрицы Hd и потому известны; a3(P) является подвектором a5(P) и потому тоже известен. Отметим, что в a3(P) и a5(P) количество отличных от 1 координат не превосходит 3 и 5 соответственно.
За одно сложение вычислим (vp + vp). Теперь координаты
(vp + vp)a5(P) \
(vP + Pp )yp a3(P V
можно найти за 5 + 4 умножений, а
0
— за 3 умножения. На вычисление
KVpa3(P)/ _
суммы векторов нужно ещё 4 сложения. Таким образом, вклад точек P и P может быть найден за (5,12, 0) операций. Такие вычисления нужно проделать 12 раз и сложить все
80
П. М. Ширяев
результаты, что даёт итоговую сложность в 12 • (5,12, 0) + 11 • (10,0, 0) = (170,144, 0) операций для вычисления s.
Из очевидного равенства D = D' + (D — D') следует, что gjhk G L(D). Значит, можно разложить gjhk по базису L(D), что позволяет выразить S через s:
Е gj(P)hk(P) = E aifi(P) ^ p eP i
^ Sjk = E gj(P)hk(P)vp = E E aifi(P)vp = Y, ai E fi(P)vp = E aiSi.
PeP PeP i i peP i
Посмотрим, какие именно функции требуется так выразить. Запишем
1 x x2 y yx
x x2 x3 yx yx2
(gj hk) = x2 x3 x4 , H to yx3
y yx yx2 y2 y2x
yx c c c yx3 2 y2x y2x2
Все функции, за исключением y2, y2x, y2x2, уже принадлежат (1), поэтому результаты их скалярного произведения с v являются компонентами s. Из уравнения кривой имеем
y2 = y + x3 + 11x + 7, y2x = yx + x4 + 11x2 + 7x, y2x2 = yx2 + x5 + 11x3 + 7x2,
где правые части равенств являются линейными комбинациями функций из (1). Таким образом, для вычисления каждой линейной комбинации понадобится не более (3, 2,0) операций, что в сумме даёт (9, 6, 0).
3) Найдём z — произвольное нетривиальное решение однородной линейной системы уравнений
zT S = 0.
Решение будем искать методом Гаусса. Для системы размера 5 х 5 возьмём оценку в (50, 50,15) операций [4, с. 17].
4) Найдём множество I = {P : Zjgj(P) = 0,P G P} нулевых компонент вектора zTHd' . Для этого воспользуемся разбиением P на пары сопряжённых точек.
5
Вычислить У] Zj gj (P) можно за (4, 5, 0) операций. Воспользовавшись замечанием 1, j=i _
запишем условие для P следующим образом:
5 _ 5
Е Zjgj (P) = 0 ^ Е Zjgj (P) = Z4 • 1 + z5 • xP. j=1 j=1
Левая часть последнего равенства уже найдена при проверке точки P, а правую можно вычислить за (1,1, 0) операций. Таким образом, zTHd' можно найти за 12 • (5,6, 0) = = (60, 72, 0) операций.
5) Найдём e как решение системы
10
Efi(P)ei = Si,P G I.
i=1
Для оценки размера системы докажем следующую лемму.
Сравнение кода Голея с алгеброгеометрическим кодом
81
Лемма 1. |I1 ^ 5.
Доказательство. По теореме 4.1.25 в [1] HD/ можно рассматривать как порождающую матрицу для кода CD с параметрами
[24, deg(D'), 24 - deg(D/)]ie = [24, 5,19]ie-
Тогда для всякого z G F5 вектор zT Hd является словом CD и имеет не меньше 19 ненулевых компонент. Следовательно, нулевых компонент не больше 24 — 19. Поскольку I есть обозначение множества нулевых компонент zTHd, получаем |I| ^ 24 — 19 = 5. ■
Эту систему также будем решать методом Гаусса. По лемме 1 матрица системы состоит из не более чем 5 столбцов. Для системы размера 10 х 5 воспользуемся оценкой (375, 375, 55) — (50, 50, 0) = (325, 325,55) операций; (375, 375,55)-оценка [4, с.17] для системы 10 х 10, при этом 5 столбцов можно считать нулевыми, поэтому на обнуление каждого элемента не потребуется тратить как минимум одно сложение и одно умножение, что и даёт (50, 50,0).
Суммарное количество операций равно
(170,144, 0) + (9,6, 0) + (50, 50,15) + (60, 72, 0) + (325, 325, 55) = (614, 597, 70).
3. Сравнение C и G
Убедимся, что код Голея удовлетворяет требованиям данной модели. Вероятность правильного декодирования сообщения не меньше вероятности того, что при передаче произойдёт не более 3 ошибок, то есть
3
Е C23pt(1 — p)23-t ~ 0,999997. t=о
Передадим сообщение размером T = 50 KB. Если передавать без кодирования, то на передачу уйдёт 1с. Если же передавать кодом G, то потребуется 23/12 ^ 1,92 с.
Для кодирования одного блока требуется 84 операции xor, по одной на единичный элемент порождающей матрицы [5, рис. 2.13], поэтому на кодирование T при скорости
„ 1Т^ ~ •• 84 ■ 50 ■ 8 ■ 210 1П_9
вычислений 111ц уйдёт -------------■ 10 9 с.
23
Декодирование можно осуществлять, например, методом вылавливания ошибок [1, с. 267-268]. Метод требует выполнить до 2 ■ 23 операций xor. Значит, на декодирова-^ 46 ■ 50 ■ 8 ■ 210 9
ние потребуется ----------- ■ 10 9 с. Общее время кодирования и декодирования
23
130 ■ 50 - 8 - 210
составляет
23
■ 10 9 ~ 0,002 с. Общее время на передачу сообщения, таким
образом, составит « 1,922 с.
Поскольку для передачи информации достаточно хранить порождающую матрицу размера 23 ■ 12 = 276 бит [5, рис. 2.13], затратами памяти можно пренебречь.
Теперь проделаем то же самое для кода C. Сначала убедимся, что вероятность успешного декодирования достаточно высока. Поскольку каждый элемент F записывается четырьмя битами, число p = 1 — (1 — p)4 естественно интерпретировать как вероятность возникновения ошибки в элементе F. Тогда вероятность правильного декодирования сообщения произвольным кодом с n = 24, d ^ 9 над GF(16) равна
EC*24 P3t(1 — P)24-t
t=0
« 0,999904.
82
П. М. Ширяев
Будем считать, что известны таблицы умножения и деления элементов F (операция сложения элементов поля эквивалентна xor и потому выполняется за одну операцию без таблиц). Далее, поскольку конкретный вид порождающей матрицы C значения не имеет, будем считать, что в ней выделена единичная матрица, то есть Gc = (I14\A) для некоторой матрицы A.
Передадим сообщение размера T с помощью C. На передачу уйдёт 24/14 1,71 с.
Сложность декодирования одного блока длины 24-4 бита вычислена выше и составляет (614, 597, 70) операций сложения, умножения и деления элементов поля соответственно. Кодирование информационного сообщения к заключается в вычислении kTA, которое можно выполнить за (140,140, 0) операций. Таким образом, время на кодирование
50 • 8 • 210
и декодирование сообщения составит-------(614+597+70 + 140+140) • 10-9 ~ 0,007 с.
96
Общее время на передачу сообщения составит ^ 1,717 с.
Для кодирования требуется хранить матрицу A размером 14 • 10 = 140 байт, для декодирования, согласно замечанию 2, — матрицу HD размером 24 • 10 = 240 байт. Дополнительно на таблицы умножения и деления достаточно выделить 2 • 16 • 16 байт, поэтому затратами памяти для C также можно пренебречь.
Таким образом, в рамках данной модели код C оказывается быстрее в ~
~ 1,12 раз при пренебрежимо малых для обоих кодов затратах памяти.
ЛИТЕРАТУРА
1. Влэдуц С. Г., Ногин Д. Ю., Цфасман М. А. Алгеброгеометрические коды. Основные понятия. М.: МЦНМО, 2002. 504 с.
2. Семеновых Д. Н. О теоретико-числовых вопросах в теории кодирования: дис. ... канд. физ.-мат. наук. М.: МГУ, 2005. 60 с.
3. Menezes A., Wu Y.-H., and Zuccherato R. An Elementary Introduction to Hyperelliptic Curves. Research report. Waterloo: Faculty of Mathematics, University of Waterloo, 1996. No. 19. 35 p.
4. Богачев К. Ю. Практикум на ЭВМ. Методы решения линейных систем и нахождения собственных значений. М.: МГУ, 1998. 79 с.
5. Мак-Вильямс Ф.Дж., Слоэн Н.Дж. А. Теория кодов, исправляющих ошибки. М.: Связь,
1979. 774 с.
REFERENCES
1. Vleduts S. G., Nogin D. Yu., Tsfasman M. A. Algebrogeometricheskie kody. Osnovnye ponyatiya [Algebro-Geometric Codes. Basic Concepts]. Moscow, MCCME Publ., 2002. 504 p. (in Russian)
2. Semenovykh D. N. O teoretiko-chislovykh voprosakh v teorii kodirovaniya [On Number-Theoretic Problems in Coding Theory]. PhD Thesis, Moscow, MSU Publ., 2005. 60 p. (in Russian)
3. Menezes A., Wu Y.-H., and Zuccherato R. An Elementary Introduction to Hyperelliptic Curves. Research report. Waterloo, Faculty of Mathematics, University of Waterloo, 1996, no. 19. 35 p.
4. Bogachev K. Yu. Praktikum na EVM. Metody resheniya lineynykh sistem i nakhozhdeniya sobstvennykh znacheniy [Workshop on the Computer. Methods for Linear Systems Solving and Eigenvalues Finding]. Moscow, MSU Publ., 1998. 79 p. (in Russian)
5. Mak-Vil'yams F. Dzh., Sloen N. Dzh. A. Teoriya kodov, ispravlyayushchikh oshibki [The Theory of Error-Correcting Codes]. Moscow, Svyaz’ Publ., 1979. 774 p. (in Russian)