Научная статья на тему 'ОБ АЛГОРИТМАХ ДЕКОДИРОВАНИЯ ОБОБЩЕННЫХ КОДОВ РИДА - СОЛОМОНА НА СЛУЧАЙ ОШИБОК И СТИРАНИЙ. II'

ОБ АЛГОРИТМАХ ДЕКОДИРОВАНИЯ ОБОБЩЕННЫХ КОДОВ РИДА - СОЛОМОНА НА СЛУЧАЙ ОШИБОК И СТИРАНИЙ. II Текст научной статьи по специальности «Математика»

CC BY
23
6
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПОМЕХОУСТОЙЧИВЫЕ КОДЫ / КОДЫ РИДА - СОЛОМОНА / КОДЫ ГОППЫ / ДЕКОДИРОВАНИЕ КОДА

Аннотация научной статьи по математике, автор научной работы — Рацеев С. М., Череватенко О. И.

Статья является продолжением работы авторов "Об алгоритмах декодирования обобщенных кодов Рида - Соломона на случай ошибок и стираний". В данной работе приводится еще одна модификация алгоритма Гао и алгоритма Берлекэмпа - Месси. Первый из данных алгоритмов относится к алгоритмам бессиндромного декодирования, второй - к алгоритмам синдромного декодирования. Актуальность данных алгоритмов состоит в том, что они применимы для декодирования кодов Гоппы, которые лежат в основе некоторых перспективных постквантовых криптосистем.

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

ON DECODING ALGORITHMS FOR GENERALIZED REED - SOLOMON CODES WITH ERRORS AND ERASURES. II

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.

Текст научной работы на тему «ОБ АЛГОРИТМАХ ДЕКОДИРОВАНИЯ ОБОБЩЕННЫХ КОДОВ РИДА - СОЛОМОНА НА СЛУЧАЙ ОШИБОК И СТИРАНИЙ. II»

МАТЕМАТИКА 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&::

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

(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

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

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

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

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.)

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