МАТЕМАТИКА MATHEMATICS
Научная статья DOI: 10.18287/2541-7525-2021-27-2-7-15
УДК 519.725 Дата: поступления статьи: 05.02.2021
после рецензирования: 10.03.2021 принятия статьи: 28.05.2021
С.М. Рацеев
Ульяновский государственный университет, г. Ульяновск, Российская Федерация E-mail: [email protected]. ORCID: https://orcid.org/0000-0003-4995-9418
О.И. Череватенко Ульяновский государственный педагогический университет имени И.Н. Ульянова, г. Ульяновск, Российская Федерация E-mail: [email protected]. ORCID: https://orcid.org/0000-0003-3931-9425
ОБ АЛГОРИТМАХ ДЕКОДИРОВАНИЯ ОБОБЩЕННЫХ КОДОВ РИДА — СОЛОМОНА НА СЛУЧАЙ ОШИБОК И СТИРАНИЙ. II
АННОТАЦИЯ
Статья является продолжением работы авторов «Об алгоритмах декодирования обобщенных кодов Рида — Соломона на случай ошибок и стираний».
В данной работе приводится еще одна модификация алгоритма Гао и алгоритма Берлекэмпа — Месси. Первый из данных алгоритмов относится к алгоритмам бессиндромного декодирования, второй — к алгоритмам синдромного декодирования. Актуальность данных алгоритмов состоит в том, что они применимы для декодирования кодов Гоппы, которые лежат в основе некоторых перспективных постквантовых криптосистем.
Ключевые слова: помехоустойчивые коды; коды Рида — Соломона; коды Гоппы; декодирование кода.
Цитирование. Рацеев С.М., Череватенко О.И. Об алгоритмах декодирования обобщенных кодов Рида — Соломона на случай ошибок и стираний. II // Вестник Самарского университета. Естественнонаучная серия. 2021. Т. 27, № 2. С. 7-15. DOI: http://doi.org/10.18287/2541-7525-2021-27-2-7-15.
Информация о конфликте интересов: авторы и рецензенты заявляют об отсутствии конфликта интересов.
© Рацеев С.М., 2021
Сергей Михайлович Рацеев — доктор физико-математических наук, доцент, профессор кафедры информационной безопасности и теории управления, Ульяновский государственный университет, 432017, Российская Федерация, г. Ульяновск, ул. Льва Толстого, 42.
©c Череватенко О.И., 2021 Ольга Ивановна Череватенко — кандидат физико-математических наук, доцент, доцент кафедры высшей математики, Ульяновский государственный педагогический университет имени И.Н. Ульянова, 432071, Российская Федерация, г. Ульяновск, пл. Ленина, 4/5.
Введение
Пусть а = (ао, ai,..., an-i), где ai — различные элементы поля F = GF(q), у = (уо, yi,..., yn-i) — ненулевые (не обязательно различные) элементы из F. Тогда обобщенный код Рида — Соломона, обозначаемый GRSk(а,у), состоит из всех кодовых векторов вида
и = (уоЬ(ао),у1Ь(а1),. .. ,уп-1Ь(ап-1)), (1)
где Ь(х) — информационные многочлены над полем Г степени не выше к — 1.
В данной статье приводятся алгоритмы декодирования для обобщенных кодов РС на случай ошибок и стираний: декодирование на основе алгоритма Гао [1] и на основе алгоритма Берлекэмпа — Месси [2]. В работе [3] в алгоритме декодирования на основе метода Гао компоненты искаженного кодового вектора, содержащие стирания, удалялись. В приводимом ниже алгоритме значения данных компонент будут заменяться нулевыми значениями. Достоинство данного метода заключается в том, что многочлен т(х) не нужно пересчитывать в зависимости от позиций стертых символов. Матрицу Вандермонда V в новом алгоритме пересчитывать тоже не нужно. Это значит, что, учитывая работу [4], при {ао,а\,... ,ап-\] = ОГ(?)\{0| представленный алгоритм будет иметь сложность O(n(logп)2). Так как в работе [3] алгоритм декодирования на основе алгоритма Берлекэмпа — Месси в явном виде не приводился, то для полноты картины этот алгоритм приводится в данной работе. Более того, приведем обоснование корректности его использования для случая ошибок и стираний. При этом, в отличие от кодов РС, в обобщенных кодах РС одна из компонент вектора а может быть нулевой, это нужно учитывать для алгоритма декодирования на основе алгоритма Берлекэмпа — Месси.
Напомним, что актуальность данных алгоритмов состоит в том, что они применимы для декодирования кодов Гоппы [5-8], которые лежат в основе некоторых перспективных постквантовых криптосистем [9; 10].
1. Декодирование ОРС-кодов на основе алгоритма Гао на случай ошибок и стираний
Предположим, что в канале связи действуют ошибки и стирания. Пусть после передачи кодового вектора и € ОКБ^ (а, у) на приемной стороне получен вектор V, в котором £ ошибок и в стираний, причем ! ^ 2Ь + в + 1. Заменим в векторе V стертые символы, например, нулями. Получим при этом вектор V. Пусть ошибки произошли на позициях а стирания — на позициях гг+1,..., гг+я. Пусть Х\ =
= а¿1,.. .XI = а— неизвестные локаторы ошибок, Хг+1 = аь+1,..., Хг+а = — известные локаторы стираний.
Определим многочлен:
т(х) = (х — ао)(х — а\) ... (х — ап-1).
Также определим многочлен локаторов ошибок а(х) и многочлен локаторов стираний V(х) следующим образом:
а(х) = (х — Х1) ... (х — Хг), V(х) = (х — Х+) ... (х — Хг+е).
Обозначим а(х) = a(x)v(х). Если ошибок и стираний не было, то будем полагать, что а(х) = 1.
Если VI = щ, то VI = у^Ь(а^). Если = щ, то на позиции г произошла ошибка или стирание, поэтому ст(а{) = 0. Из этого следует, что
<г(а4)у-1 щ = о(аг)Ь(а4), г = 0,1,. . .,п — 1.
Обозначим р(х) = а(х)Ь(х). Тогда
¿(агУу-1^ = р(а^), г = 0,1,...,п — 1.
Построим интерполяционный многочлен Лагранжа ](х) степени не выше п — 1, проходящий через точки
(ао/у-1 щ), (а.1,у-1У1),..., (аг—1,у--1 гП-1):
Тогда из равенств: получаем сравнение:
f (ai) = y-1Vi, i = 0, l,...,n - 1, deg f (x) < n - 1. а(а )f (a) = р(а), i = 0, l,...,n - 1
v(x)f(x) = p(x) (mod m(x)). После обозначения f(x) = f (x)v(x) данное сравнение приобретает вид
a(x)f(x) = pV(x) (mod m(x)). (2)
Заметим, что
n — к — s n + к + s deg a(x) < ---, degp(x) < ---, (3)
n + k + a n + k + s , .
deg rj-1{x) > ---, deg rj (x) < ---. (4)
так как
d — s — 1 n — к — s deg a(x) < t < -^-=-2-'
degp(x) = dega(x) + degv(x) + degb(x) ^ n — к — s n + к + s
+s +к — 1 <—r~
Алгоритм 1 (декодирование ОРС кодов методом Гао на случай ошибок и стираний). Вход: принятый вектор v.
Выход: исходный информационный вектор b, если в соответствующем кодовом векторе u произошло s стираний и t ошибок при d ^ 2t + s + 1.
1. Определяется t = [(d — s — 1)/2]. В векторе v все стирания заменяют нулями, получая тем самым вектор V. Вычисляются значения локаторов стираний Xt+i = ait+1,..., Xt+s = ait+s на основе известных позиций стираний it+i,... ,it+s. Также вычисляется многочлен локаторов стираний v(x) = = (x — Xt+i)... (x — Xt+s).
2. Интерполяция. Строится интерполяционный многочлен f (x), для которого
f (ai) = y-1vVi, i = 0,1,...,n — 1.
Вычисляется многочлен f(x) = f (x)v(x).
3. Незаконченный обобщенный алгоритм Евклида. Пусть r^i(x) = m(x), ro(x) = f(x), v^i(x) = 0, vo(x) = 1. Производится последовательность действий обобщенного алгоритма Евклида:
ri-2 (x) = r—i(x)qi-i(x) + ri(x),
vi(x) = v—2(x) — vi-i(x)qi-i(x), i > 1,
до тех пор, пока не достигается такого rj(x), для которого
n + к + s n + к + s --, deg rj(x) < --
4. Деление. Информационный многочлен равен b(x) = v (X)X(x).
Теорема 1. Если в кодовом векторе произошло t ошибок и s стираний, причем d ^ 2t + s + + 1, то алгоритм декодирования 1 всегда приводит к единственному решению, а именно к исходному информационному вектору b.
Доказательство. Пусть b(x) — исходный информационный многочлен, u(x) — кодовый многочлен, полученный с помощью формулы (1). Заметим, что для a(x) и p(x) (истинные значения), которые получены на основе исходных данных, сравнение (2) выполнено, причем b(x) = p(x)/(a(x)v(x)).
Пусть с помощью алгоритма 1 получены значения rj (x) и vj (x), причем выполнено (4). Покажем, что rj(x) делится на vj(x)v(x), причем rj(x)/(vj(x)v(x)) = b(x). Домножив первое из приведенных ниже сравнений
a(x)f(x) = p(x) (mod m(x)),
vj(x)f(x) = rj(x) (mod m(x))
на vj (x), а второе — на o~(x), получим
vj(x)p(x) = a(x)rj(x) (mod m(x)). (5)
Оценим сверху степени многочленов из левой и правой частей данного сравнения. Учитывая неравенства (3) и (4), получаем
n — к — s n + к + s deg a(x)rj(x) < -^--1--2- = n.
Так как
n + к + s n — к — s deg vj (x) = deg m(x) — deg rj-1(x) ^ n--2-=-2-'
то
n — к — s n + к + s deg vj (x)p(x) < -2--1--2- = n.
Следовательно, из сравнения (5) получаем равенство
vj (x)p(x) = a(x)rj (x).
Так как p(x) = a(x)v(x)b(x), то rj(x) = vj(x)v(x)b(x). □
Пример 1. Рассмотрим обобщенный код Рида — Соломона над полем GF(7) с параметрами n = 7, к = 3, d = 5, a = (0,1, 2, 3, 4, 5, 6), y = (2,1, 3,1, 4,1, 5). Так как d = 5, то данный код может исправлять либо до двух ошибок, либо одну ошибку и до двух стираний, либо до четырех стираний.
Так как вектор а содержит все элементы поля ОГ(7), то т(х) = х7 — х. Ниже приведена матрица
Вандермонда V на основе вектора а, обратная к ней матрица V 1 вектора y:
и диагональная матрица Y на основе
V
/ 1 0 0 0 0
0 0
1 6 1 6 1
6 1
V-
1 0 0 0 0
0 0
6 6 6 6 6
6 6
У = Diag(2,1, 3,1,4,1, 5).
Заметим, что первые к = 3 строки матрицы VУ образуют порождающую матрицу О нашего кода.
Рассмотрим случай одной ошибки и двух стираний. Пусть Ь = (3, 5, 2) — информационный вектор, который соответствует многочлену Ь(х) = 3 + 5х + 2х2. После кодирования вектора Ь получаем кодовый вектор (который можно получить несколькими способами):
и = (уоЬ(0),уф(1),...,у6Ь(6))= ЬО =
= (Ьо, Ь1,Ь2,0,0, 0, 0'^У = (6, 3,0,1, 3,1,0).
Пусть на приемном конце получен вектор
V = (*, 3, 5,1, *, 1,0),
т. е. произошли два стирания и одна ошибка. Применим алгоритм декодирования 1.
1. Полагаем в = 2, Ь = [(! — в — 1)/2] = 1. Заменив в векторе V стертые символы нулями, получаем V = (0, 3, 5,1,0,1, 0). Также вычисляем многочлен локаторов стираний V(х) = (х — 0)(х — 4) = 3х + х2.
2. Интерполяция. Вычисляем коэффициенты многочлена /(х) = /о + /1х + ... + f6x&::
(1о, /1,..., /б) = ЩУ-V-1 = (0,1, 4, 2, 3, 2, 5), / (х) = х + 4х2 + 2х3 + 3х4 + 2х5 + 5х6.
Вычисляем /(х) = /(x)v(х) = 3х2 + 6х3 + 3х4 + 4х5 + 2х6 + 3х7 + 5х8.
3. Незаконченный обобщенный алгоритм Евклида. Полагаем г-1(х) = т(х), го(х) = /(х), v-l(x) = 0, vо(x) = 1. Применяем обобщенный алгоритм Евклида:
г-1(х) = то(х)до(х) + т'1 (х), до(х) = 0, Г1(х) = 6х + х7, Vl(x) = v-l(x) — vо(x)qо(x) = 0, го(х) = Т1(х^1(х) + Г2(х), ql(x) = 3 + 5х,
г2(х) = 3х + х2 + 6х3 + 3х4 + 4х5 + 2х6, V2(x) = vо(x) — Vl(x)ql(x) = 1, Г1(х) = r2(x)q2(x) + гз(х), q2(x) = 6 + 4х,
г3(х) = 2х + 3х2 + 2х3 + 6хъ, vз(x) = Vl(x) — V2(x)q2(x) = 1 + 3х.
После третьего шага процесс останавливается, так как degГ2(х) = 6, degГ3(х) = 5, причем (п + к + в)/2 = = 6.
4. Деление. Исходный информационный многочлен равен
Г3(х)
b(x)
v3(x)v(x)
3 + 5x + 2x2.
1
1
1
1
2. Декодирование ОРС-кодов на основе алгоритма Берлекэмпа — Месси
Пусть V — полученный на приемной стороне вектор, в котором могут быть ошибки и стирания. Пусть Ь — максимальное число возможных ошибок при фиксированном числе стираний в в векторе V, ! ^ 2Ь + в + 1, Ь = [(! — в — 1)/2], т — реальное число ошибок, т ^ Ь. Так как позиции стертых
символов известны, то заменим эти символы в векторе V, например на нули, и будем обращаться с полученным вектором VI как с вектором, содержащим только ошибки. Пусть ошибки произошли на позициях г!,...,гт, а стирания — на позициях гт+1,... ,гт+8. При этом известны только позиции гт+1,..., гт+е. После того как на данные позиции поместили нули, с какими-то позициями могли угадать (если в кодовом векторе там действительно стояли нули). Поэтому V = и + е, где е — вектор ошибок веса не более т + в.
Вычисляя синдромный вектор, получаем:
S = VHT = eHT = ( ...:
...
1
ao
1
ai
ao
n-k-1 ^n-k-1
1
an-1
n — k— 1 *n-1
( wo 0
0 wi
00
ei 1 Wii + ... + eim eii wii aii + ... + eim+
n-k-1
0 0
Wn-1 ) J
T
\ eil wil ai1
n k 1
+ ... + ei , Wi , a„-
/
Пусть X1 = ai1,.. . Xm = ai
неизвестные локаторы ошибок, Xm+1 = aim+1,..., Xm+s
известные локаторы стираний, Y1 = ei1,..., Ym+s = eim+s Zj = Yjwij, j = 1,... ,m + s. Тогда
значения ошибок в векторе v. Обозначим
50 = Z1 + ... + Zm + Zm+1 + ... + Zm+s,
51 = Z1X1 + ... + ZmXm + Zm+1Xm+1 + ... + Zm+sZm+s,
a _ 7 v-2t+s-1 , , /7 v2t+s-1 1 у v-2t+s-1 , , /7 v-2t+s-1
S2t+s-1 = Z1X1 + ... + ZmXm + Zm+1Xm+1 + ... + Zm+sXm+s .
Запишем синдромный многочлен в виде
s1
2t+s-1
S (x) Sixi
i=0
2t+s-1 / m+s
i=0
E Zj X:
j=1
m+s
^ I xi =E Zj IE (Xj x)
j=1
(2t+s-1 \
e x x)ii
m+s 1 / v ~\2t+s m+s 7
Ez 1 — (Xjx) = ^_Z
j 1 - X, x ¿-^1- X.
m+s Z X2t+s 'О — x2t+s£ jj
j=1
j=1
x
1 — XA x
j=1 j
Полагая
m+ s
v(x) = JJ (1 — Xix) = Vixi, vo = 1,
i=1
i=0
Kx)=Yl Zi П (1 — Xjx), Ф(x)=J2 ZiX,
2t+s
г=1 г=\
3 =
после приведения всех дробей к общему знаменателю получим
Б(х) = Щ- - х*+' ^
П (1 — Xj x),
v(x)
v(x)
Тогда
v(x)S(x) = v(x) (mod x2t+s).
Заметим, что a(x) = a(x)v(x), где a(x) — это многочлен неизвестных локаторов ошибок, v(x) многочлен известных локаторов стираний:
v(x) = П(1 — Xix)^_(1 — Xm+ix) = a(x)v (x).
i=1
i=1
Введем в рассмотрение многочлен S(x) = S(x)v(x) — модифицированный синдромный многочлен. Тогда ключевое уравнение примет вид
a(x)S(x) = S(x) (mod x2t+s), (6)
где
deg a(x) ^ m, deg s(x) ^ m + s — 1, <r(0) = 1.
(7)
x
e
e
i1
x
1
=a
m+s
m+s
m+s
Пусть
S(x) = So + Six + ... + S2t+2s-ix2t+2s-1 = = S (x)v (x) = (So + Six + ... + S2t+s-ix2t+s-1)(vo + vix + ... + Vsxs), где vo = 1, Vi = ( — 1)i&i(Xm+i,...,Xm+s) — элементарный симметрический многочлен от
Xm+i, . . . , Xm+s , i = 1,...,S.
Так как в сравнении (6) deg ¡S(x) ^ m + s — 1, deg S(x) ^ 2t + 2s — 1, deg &(x) ^ m, то необходимым условием выполнения данного сравнения является тот факт, что коэффициенты многочлена &(x)S(x) при степенях j = m + s,m + s + 1,..., 2t + s — 1 равны нулю. Поэтому получаем такую систему линейных уравнений:
&oSs+m + & iSs+m-i + . . . + &mSs = О, &oSs+m+i + & iSs+m + ... + &mSs + i = °
&oSs+2t-i + &iSs+2t-2 + ... + &mSs + 2t-m-i = 0. Так как &o = 1, то данная система в матричной форме примет такой вид:
/ Ss+m-i Ss+m-2
SSs
\ (
SS
s+m
SS
s+m-i
SS
s+i
&i &2
\
(
SS
s+m
s+m+i
V Щц + 2г-2 Щв+2г-3 . . . Щц + 2г-т-1 / ) \ Ss+2t—1 /
Для нахождения решения системы (8) применим следующий алгоритм.
Алгоритм 2 (алгоритм Берлекэмпа — Месси)
Вход: последовательность а1,...,ап над некоторым полем.
Выход: ЬЕВИ, (Ь, /(х)) минимальной длины Ь, для которого
(8)
—аз =2^ /газ —, ] = Ь + 1, Ь + 2, ... ,п.
г=1
1. Определить г := 0, /(х) := 1, Ь(х) := 1, Ь := 0.
2. Цикл г := 1,..., п
ь
2.1. Определить Д := аг + /гаг—г.
г=1
2.2. Если Д = 0, то Ь(х) := х ■ Ь(х).
2.3. Если Д = 0 :
2.3.1. Если 2Ь < г:
Ьи/(х) := /(х) — Д ■ х ■ Ь(х), Ь(х) := Д-1 ■ /(х), /(х) := Ьи/(х), Ь := г — Ь.
2.3.2. Иначе (т. е. выполнено 2Ь ^ г): /(х) := /(х) — Д ■ х ■ Ь(х),
Ь( х) := х ■ Ь(х) .
Теорема 2. Пусть ! ^ 2Ь + в + 1. Если на вход алгоритма 2 подать последовательность щц, й^!,..., Ss+2t-l, то на выходе алгоритма будет верное значение многочлена локаторов ошибок а(х).
Доказательство. Пусть а(х) — многочлен, полученный после применения алгоритма 2. Так как коэффициенты многочлена локаторов ошибок а(х) являются решением системы (8), то по свойству алгоритма Берлекэмпа — Месси Ь ^ т. Удалив в системе (8) 2Ь — 2т последних уравнений, получим новую систему с квадратной матрицей системы порядка т. Из теоремы 5 работы [3] следует, что данная матрица невырождена, поэтому полученная новая система имеет единственное решение. Это значит, что а(х) = а(х) и Ь = т. □
Алгоритм 3 (декодирование ОРС-кодов на основе алгоритма Берлекэмпа — Месси на случай ошибок и стираний).
Вход: принятый вектор V, в котором в стираний и не более Ь ошибок.
Выход: исходный кодовый вектор и, если ! ^ 2Ь + в + 1.
1. Определяется Ь = [(! — в —1)/2]. В векторе V все стирания заменяются нулями, получая тем самым вектор V. Находятся компоненты Бо, Б1,..., Б21++ц-1 синдромного вектора ЩНТ. Если они все равны нулю, то возвращается вектор V и процедура окончена.
Вычисляются значения локаторов стираний Xt+i — а.
it+i >
X
t+s
it+1,
, it+s
Вычисляются коэффициенты модифицированного синдромного
позиций стираний многочлена щ(х).
2. На вход алгоритма 2 подается последовательность Ss, ¿^,+1,..., Ss+2t-1. На выходе данного алгоритма получается многочлен а(х). Пусть / = degа(х).
3. Если / > 0, то отыскиваются / корней многочлена а(х) последовательной подстановкой в него ненулевых элементов поля Г. При этом локаторы ошибок — это величины, обратные корням многочлена а(х).
4. При вычислении значений ошибок выполняется один из следующих пунктов.
4.1. Если среди локаторов стираний Х^1,..., Х1+, имеется нулевое значение (в противном случае переходим в пункт 4.2), скажем, Хр = 0, то пусть
М = {1,...,/}и{г + 1,...,г + в|\|р|. Находятся Zj, ] € М, например, с помощью алгоритма Форни для обобщенных кодов РС:
Zj
-х-1) 1,
UieM\{j}(1 " XiXj )
j е M.
(9)
После этого находятся значения ошибок Уз = Zj/тг., ] € М. У вектора V из гз-го символа, Хз = аг., вычитается значение Уз, ] € М. При этом получается вектор и. Пусть для некоторого г выполнено аг = 0. Вычисляется значение Zp, равное скалярному произведению вектора и на первую строку матрицы Н. Вычисляется значение ошибки Ур = Zp/wi. Осталось в векторе и из г-го символа вычесть Ур.
4.2. Если условие 4.1 не выполнено, то пусть М = {1,...,/} и {Ь + 1,...,Ь + в}. По формуле (9) находятся значения Zj, затем значения ошибок Уз = Zj, ] € М. У вектора V из -го символа, Хз = аг., вычитается значение Уз, ] € М. При этом получается вектор и.
Если аг = 0 для некоторого г и deg а(х) < Ь, то вычисляется значение Zо, равное скалярному произведению вектора V на первую строку матрицы Н, а затем вычисляется значение ошибки Уо = = Zо/wi. Осталось в векторе и из г-го символа вычесть Уо.
Пример 2. Продолжим рассматривать пример 3 работы [3]. Пусть на приемной стороне получен тот же вектор V = (1, 3, 6,10, 9,1,10, *, 8). После замены стертых символов нулями получаем вектор V = = (1, 3, 6,10, 9,1,10, 0, 8). Компоненты синдромного вектора равны: = (4,10, 5, 9, 3, 8). Определяем в = 1, Ь = [(! — в — 1)/2] = 2. Поэтому на вход алгоритма 2 передаем значения Sl = 10, S2 =5, 53 = 9, S4 = 3. Получаем
r Л f (x) b(x) L
0 1 1 0
1 10 1+ x 10 1
2 4 1 + 5x 10x 1
3 1 1 + 5x + x2 1 + 5x 2
4 9 1 + 7x x + 5x2 2
Следовательно, a(x) — 1 +7x.
ait+s на основе известных
Заключение
В данной статье приводится еще одна модификация алгоритма Гао и алгоритма Берлекэмпа — Месси. Первый из данных алгоритмов относится к алгоритмам бессиндромного декодирования, второй — к алгоритмам синдромного декодирования. Актуальность данных алгоритмов состоит в том, что они применимы для декодирования кодов Гоппы, которые лежат в основе некоторых перспективных постквантовых криптосистем.
Литература
[1] Gao S. A new algorithm for decoding Reed — Solomon codes // In: Bhargava V.K., Poor H.V., Tarokh V., Yoon S. (eds) Communications, Information and Network Security. The Springer International Series in Engineering and Computer Science (Communications and Information Theory). Boston, MA.: Springer, 2003, vol. 712, pp. 55-68. DOI: https://doi.org/10.1007/978-1-4757-3789-9_5.
[2] Massey J.L. Shift-register synthesis and BCH decoding // IEEE Trans. Inf. Theory. 1969. Vol. IT. 15, № 1. P. 122-127. URL: https://crypto.stanford.edu/ mironov/cs359/massey.pdf.
[3] Рацеев С.М., Череватенко О.И. Об алгоритмах декодирования обобщенных кодов Рида — Соломона на случай ошибок и стираний // Вестник Самарского университета. Естественнонаучная серия. 2020. Т. 26, № 3. С. 17-29. DOI: http://doi.org/10.18287/2541-7525-2020-26-3-17-29.
[4] Федоренко С.В. Простой алгоритм декодирования алгебраических кодов // Информационно-управляющие системы, 2008. № 3(34). С. 23-27. URL: https://elibrary.ru/item.asp?id=10607208.
[5] Гоппа В.Д. Новый класс линейных корректирующих кодов // Пробл. передачи информ. 1970. Т. 6, № 3. С. 24-30. URL: http://mi.mathnet.ru/ppi1748; http://xn-80af7aea.xn-p1ai/Publications/linear_correcting_codes.pdf.
[6] Рацеев С.М. Элементы высшей алгебры и теории кодирования: учеб. пособие для вузов. Санкт-Петербург: Лань, 2022. 656 с. URL: https://reader.lanbook.com/book/187575?demoKey=9c43d0c829634cd713016a7fb3743823#1.
[7] Рацеев С.М. Об алгоритмах декодирования кодов Гоппы // Челяб. физ.-матем. журн. 2020. Т. 5, № 3. С. 327-341. DOI: http://doi.org/10.47475/2500-0101-2020-15307.
[8] Patterson N.J. The algebraic decoding of Goppa codes // IEEE Transactions on Information Theory. 1975. Vol. 21, Issue 2. P. 203-207. DOI: http://doi.org/10.1109/TIT.1975.1055350
[9] Bernstein D., Chou T., Lange T., Maurich I., Misoczki R., Niederhagen R., Persichetti E., Peters C., Schwabe P., Sendrier N., Szefer J., Wang W. Classic McEliece: conservative code-based cryptography. Project documentation: [Электронный ресурс]. URL: https://classic.mceliece.org/nist/mceliece-20190331.pdf, свободный. Яз. англ. (дата обращения: 22.12.2020).
[10] Рацеев С.М. Математические методы защиты информации: учеб. пособие для вузов. Санкт-Петербург: Лань, 2022. 544 с. URL: https://e.lanbook.com/book/193323.
DOI: 10.18287/2541-7525-2021-27-2-7-15 Submited: 05.02.2021
Revised: 10.03.2021 Accepted: 28.05.2021
S.M. Ratseev
Ulyanovsk State University, Ulyanovsk, Russian Federation E-mail: [email protected]. ORCID: https://orcid.org/0000-0003-4995-9418
O.I. Cherevatenko
Ulyanovsk State University of Education, Ulyanovsk, Russian Federation E-mail: [email protected]. ORCID: https://orcid.org/0000-0003-3931-9425
ON DECODING ALGORITHMS FOR GENERALIZED REED — SOLOMON CODES WITH ERRORS AND ERASURES. II
ABSTRACT
The article is a continuation of the authors' work «On decoding algorithms for generalized Reed —Solomon codes with errors and erasures». In this work, another modification of the Gao algorithm and the Berlekamp — Massey algorithm is given. The first of these algorithms is a syndrome-free decoding algorithm, the second is a syndrome decoding algorithm. The relevance of these algorithms is that they are applicable for decoding Goppa codes, which are the basis of some promising post-quantum cryptosystems.
Key words: error-correcting codes; Reed — Solomon codes; Goppa codes; code decoding.
Citation. Ratseev S.M., Cherevatenko O.I. On decoding algorithms for generalized Reed-Solomon
codes with errors and erasures. II. Vestnik Samarskogo universiteta. Estestvennonauchnaia seriia
= Vestnik of Samara University. Natural Science Series, 2021, vol. 27, no. 2, pp. 7-15. DOI: http://doi.org/10.18287/2541-7525-2021-27-2-7-15. (In Russ.)
Information about the conflict of interests: authors and reviewers declare no conflict of interests.
© Ratseev S.M., 2021
Sergey M. Ratseev — Doctor of Physical and Mathematical Sciences, associate professor, Department of Information Security and Control Theory, Ulyanovsk State University, 42, Leo Tolstoy Street, Ulyanovsk, 432017, Russian Federation.
© Cherevatenko O.I., 2021 Olga I. Cherevatenko — Candidate of Physical and Matheatical Sciences, associate professor, Department of Higher Mathematics, Ulyanovsk State University of Education, 4/5, Lenin Square, Ulyanovsk, 432063, Russian Federation.
References
[1] Gao S. A new algorithm for decoding Reed—Solomon codes. In: Bhargava V.K., Poor H.V., Tarokh V., Yoon S. (Eds.) Communications, Information and Network Security. The Springer International Series in Engineering and Computer Science (Communications and Information Theory). Boston, MA.: Springer, 2003, vol. 712, pp. 55-68. DOI: http://doi.org/10.1007/978-1-4757-3789-9_5.
[2] Massey J.L. Shift-register synthesis and BCH decoding. IEEE Transactions on Information Theory, 1969, vol. IT. 15, no. 1, pp. 122-127. Available at: https://crypto.stanford.edu/ mironov/cs359/massey.pdf.
[3] Ratseev S.M., Cherevatenko O.I. On decoding algorithms for generalized Reed-Solomon codes with errors and erasures. Vestnik Samarskogo universiteta. Estestvennonauchnaia seriia = Vestnik of Samara University. Natural Science Series, 2020, vol. 26, no. 3, pp. 17-29. DOI: http://doi.org/10.18287/2541-7525-2020-26-3-17-29. (In Russ.)
[4] Fedorenko S.V. A simple algorithm for decoding algebraic codes. Information and Control S'ystems, 2008, no. 3 (34), pp. 23-27. Available at: https://elibrary.ru/item.asp?id=10607208. (In Russ.)
[5] Goppa V.D. A New Class of Linear Correcting Codes. Probl. Peredachi Inf. [Problems of Information Transmission], 1970, vol. 6, issue 3, pp. 207-212. Available at: http://mi.mathnet.ru/ppi1748; http://xn-80af7aea.xn-p1ai/Publications/linear_correcting_codes.pdf. (In Russ.)
[6] Ratseev S.M. Elements of higher algebra and coding theory. St. Petersburg: Lan', 2022, 656 p. Available at: https://reader.lanbook.com/book/187575?demoKey=9c43d0c829634cd713016a7fb3743823#1 (In Russ.)
[7] Ratseev S.M. On decoding algorithms for Goppa codes. Chelyabinskiy Fizilko-Matematicheskiy Zhurnal = Chelyabinsk Physical and Mathematical Journal, 2020, vol. 5, no. 3, pp. 327-341. DOI: http://doi.org/10.47475/2500-0101-2020-15307. (In Russ.)
[8] Patterson N.J. The algebraic decoding of Goppa codes. IEEE Transactions on Information Theory, 1975, vol. 21, issue 2, pp. 203-207. DOI: http://doi.org/10.1109/TIT.1975.1055350
[9] Bernstein D., Chou T., Lange T., Maurich I., Misoczki R., Niederhagen R., Persichetti E., Peters C., Schwabe P., Sendrier N., Szefer J., Wang W. Classic McEliece: conservative code-based cryptography. Project documentation. Available at: https://classic.mceliece.org/nist/mceliece-20190331.pdf (accessed 22.12.2020).
[10] Ratseev S.M. Mathematical methods of information security: textbook. Saint Petersburg: Lan', 2022, 544 p. Available at: https://e.lanbook.com/book/193323. (In Russ.)