Модификация алгоритма Герцеля—Блейхута

СПИСОК ЛИТЕРАТУРЫ

1. Беззатеев С. В., Литвинов М. Ю., Трояновский Б. К. Использование помехоустойчивых кодов для шифрации видеоинформации // ИУС. 2007. № 5(30). С. 23—26.

2. Koeune F., Quisquater J. J. Side Channel Attacks. Scientific Report. K2Crypt, 2002.

3. Biham E., Shamir A. Differential Cryptanalysis of DES-like Cryptosystems. The Weizmann Institute of Science, Department of Applied Mathematics. July 19, 1990.

4. Dusart P., Letourneux G., Vivolo O. Differential Fault Analysis on AES // Cryptology ePrint Archive. Report 2003/010.

5. Kulikowski K. J., Karpovsky M. G., Taubin A. Robust Codes and Robust, Fault Tolerant Architectures of the Advanced Encryption Standard // J. of System Architecture. 2007. Vol. 53. P. 138—149.

6. Cramer R., Dodis Y., Fehr S., Padr)> C., Wichs D. Detection of Algebraic Manipulation with Applications to Robust Secret Sharing and Fuzzy Extractors // Advances in Cryptology. Eurocrypt Lecture Notes in Computer Science. 2008. Vol. 4965. P. 471—488.

7. Akdemir K. D., Wang Z., Karpovsky M. G., Sunar B. Design of Cryptographic Devices Resilient to Fault Injection Attacks Using Nonlinear Robust Codes // Fault Analysis in Cryptography. 2011.

8. Тужилин М. Э. Почти совершенные нелинейные функции // ПДМ. 2009. № 3. С. 14—20.

9. Kulikowski K., Karpovsky M. G. Robust Correction of Repeating Errors by Nonlinear Codes // Communications. IET. 2011. Vol. 5, N 4. P. 2317—2327.

Сведения об авторе

Максим Олегович Алексеев — аспирант; Санкт-Петербургский государственный университет аэро-

космического приборостроения, кафедра аэрокосмических компьютерных технологий; E-mail: alexeevmo@gmail.com

Рекомендована кафедрой Поступила в редакцию

№ 51 безопасности информационных систем 01.02.13 г.

УДК 621.391

С. В. Федоренко МОДИФИКАЦИЯ АЛГОРИТМА ГЕРЦЕЛЯ—БЛЕЙХУТА

Рассматриваются классический алгоритм Герцеля—Блейхута вычисления дискретного преобразования Фурье над конечным полем, а также его модификации. Показано, что модифицированный алгоритм относится скорее к классу быстрых алгоритмов вычисления дискретного преобразование Фурье, чем к классу полубыстрых.

Ключевые слова: дискретное преобразование Фурье, быстрое преобразование Фурье, сложность алгоритма, быстрый алгоритм, полубыстрый алгоритм, конечное поле.

Быстрый алгоритм — это вычислительная процедура, которая значительно сокращает число необходимых операций сложения и умножения по сравнению с прямым метод вычисления. Быстрое преобразование Фурье (БПФ) — это метод вычисления n -точечного преобразования, который использует около n log n операций умножения и около n log n операций сложения в поле вычисления преобразования Фурье [1].

Полубыстрый алгоритм — это вычислительная процедура, позволяющая значительно сократить число необходимых операций умножения по сравнению с прямым метод вычисления, не уменьшая число сложений. Полубыстрый алгоритм вычисления преобразования Фурье —

18

С. В. Федоренко

это метод вычисления n -точечного преобразования Фурье, который использует около n log n операций умножения и около n2 операций сложения в поле вычисления преобразования Фурье [1].

Дискретное преобразование Фурье (ДПФ) длины n вектора f = f), i е [0, n -1], n | (q -1), в конечном поле GF(q) есть вектор F = (Fj) ,

n-1

Fj = £ fiaj, j е [0, n -1],

i=0

где a (ядро ДПФ) является элементом порядка n в конечном поле GF(q).

Далее предполагается, что длина n -точечного преобразования Фурье над GF(2m) есть

n-1

n = 2m -1. Произвольный вектор f = f ), i е [0, n -1], свяжем с многочленом f (х) = £ fix1 и

i=0

получим Fj = f (aJ ). Поле вычисления преобразования Фурье есть конечное поле GF (2m), а

a — примитивный элемент поля GF(2m) . Все логарифмы вычисляются по основанию 2.

Алгоритм Герцеля—Блейхута. Рассмотрим модификацию [2, 3] алгоритма для вычисления ДПФ над конечными полями [4, 5].

Алгоритм Герцеля—Блейхута состоит из двух шагов. На первом шаге выполняется деление с остатком многочлена f (х) на каждый минимальный многочлен Mk (х) :

f (х) = Mk (х) qk (х) + rk (х),

< deg rk(х) < deg Mk(х) = mk, k е [0, l -1],

mk -1

где rk (х) = £ rj кх}, l — число двоичных классов сопряженности.

j=0

На втором шаге выполняется вычисление значений rk (х) во всех элементах конечного

поля:

mk -1

F = f (aa') = rk (ai) = £ r} kaij,

j=0

i е [0, n -1],

где элемент a1 — корень минимального многочлена Mk (х).

Алгоритм Герцеля—Блейхута принадлежит к классу полубыстрых и имеет сложность порядка n log n операций умножения и порядка n2 операций сложения над элементами поля GF (2m ) [2].

Модификация первого шага алгоритма Герцеля—Блейхута. В работе [6] предложен способ улучшения первого шага алгоритма Герцеля—Блейхута, в ней показано, что асимптотическая сложность этого шага составляет O(n (log n) log log n) операций над элементами поля GF (2m ).

Построим дерево делителей. На самом нижнем уровне находятся l минимальных многочленов. Предположим, что l есть степень числа 2, иначе дополним множество минимальных многочленов до степени числа 2 фиктивными многочленами, равными единице. На следующем уровне располагаются l /2 произведений пар минимальных многочленов. Далее на

каждом уровне располагаются произведения пар многочленов из предыдущего уровня.

2т -1

В корне дерева находится двучлен x -1. Алгоритм состоит в последовательном вычислении остатков от деления, начиная с исходного многочлена f (x), на все делители из каждого уровня дерева сверху вниз. Известно, например [7], что сложность деления многочлена степени 2s на многочлен степени s имеет порядок D( s) = O (s log s log log s) операций. Из очевидного неравенства pD(s / p) < D(s) следует, что для каждого уровня дерева сложность вычисления всех остатков от делений не превышает D(n). Число уровней в дереве делителей ( n Л

есть log l = O log — I = O(log n) . Тогда общее число операций имеет порядок

I m J

D(n) log l = O(n (log n) log log n) . Заметим, что приведенная оценка сложности алгоритма явно завышена.

Модификация второго шага алгоритма Герцеля—Блейхута. Предложим вариант улучшения второго шага алгоритма Герцеля—Блейхута. Из работ [8, 9] следует, что второй шаг алгоритма можно свести к вычислению l m -точечных циклических сверток. Конструктивный метод построения циклических сверток для длин m = 2l, i > 0, имеющий сложность

порядка 2 m log m операций умножения и m log m операций сложения, введен автором настоящей статьи. Таким образом, верхняя оценка асимптотической сложности второго шага

2 (n 2 Л

алгоритма имеет порядок O(l m ) = O — m I = O(n log n) операций сложения и умножения

Im J

над элементами поля GF (2m ).

Заключение. В работе показано, что модификация алгоритма Герцеля—Блейхута с общей сложностью порядка O(n (log n)2 log log n) операций над элементами поля GF(2m) относится скорее к классу быстрых алгоритмов вычисления ДПФ, чем к классу полубыстрых алгоритмов.

Автор выражает признательность фонду имени Александра фон Гумбольдта (Германия) за многолетнюю поддержку научных исследований.

СПИСОК ЛИТЕРАТУРЫ

1. Blahut R. E. Algebraic Codes on Lines, Planes, and Curves: An Engineering Approach. Cambridge, UK: Cambridge University Press, 2008. 543 р.

2. Блейхут Р. Теория и практика кодов, контролирующих ошибки. М.: Мир, 1986. 576 с.

3. Blahut R. E. Fast Algorithms for Signal Processing. Cambridge, UK: Cambridge University Press, 2010. 453 р.

4. Goertzel G. An algorithm for the evaluation of finite trigonometric series // The American Mathematical Monthly. 1958. Vol. 65, N 1. P. 34—35.

5. Блейхут Р. Быстрые алгоритмы цифровой обработки сигналов. М.: Мир, 1989. 448 с.

6. Trifonov P. On the additive complexity of the cyclotomic FFT algorithm // Proc. of the IEEE Information Theory Workshop. Lausanne, Switzerland, 2012. Р. 537—541.

7. von zur Gathen J., Gerhard J. Modern computer algebra. Cambridge, UK: Cambridge University Press, 1999.

8. Трифонов П. В., Федоренко С. В. Метод быстрого вычисления преобразования Фурье над конечным полем // Проблемы передачи информации. 2003. Т. 39, № 3. С. 3—10.

9. Fedorenko S. V. The discrete Fourier transform over a finite field with reduced multiplicative complexity // Proc. of the IEEE Intern. Symp. on Information Theory. St. Petersburg, 2011. P. 1200—1204.

20

А. И. Акмалходжаев, А. В. Козлов

Сведения об авторе

Сергей Валентинович Федоренко — д-р техн. наук, профессор; Санкт-Петербургский государственный

университет аэрокосмического приборостроения, кафедра безопасности информационных систем; E-mail: sfedorenko@ieee.org

Рекомендована кафедрой Поступила в редакцию

№ 51 безопасности информационных систем 0l.02.13 г.

УДК 621.391

А. И. Акмалходжаев, А. В. Козлов НОВЫЙ АЛГОРИТМ СПИСОЧНОГО ДЕКОДИРОВАНИЯ ТУРБОКОДОВ

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

Ключевые слова: турбокоды, турбодекодирование, списочное декодирование.

Введение. Декодирование турбокода — это итеративный процесс, в ходе которого два декодера сверточного кода с мягким выходом обмениваются значениями оценок внешних вероятностей [1—3]. Обычно достаточно 8—10 итераций для того, чтобы изменения оценок декодированных символов стали незначительными, дальнейшее итерирование декодера практически не приводит к уменьшению вероятности ошибки. Одним из способов снижения вероятности ошибки является использование списочного декодирования.

В настоящей работе рассматривается новый метод списочного декодирования турбоко-дов, основанный на списочном декодере сверточного кода с мягким выходом. Каждый мягкий выход является последовательностью априорных вероятностей, которые подаются на вход независимых турбодекодеров (рис. 1). Предложенный метод обеспечивает сходимость разных декодеров к различным кодовым словам, из которых затем выбирается подходящее. Список декодированных слов с мягкими решениями может быть сгенерирован с использованием первого, второго или обоих сверточных кодов.

Рис. 1

Впервые подход с использованием списочного декодирования с мягким выходом был рассмотрен в работе [4], в рамках этого подхода был предложен алгоритм декодирования сверточного кода. Однако его использование давало выигрыш лишь на малых длинах, в то время как на больших длинах выигрыш был незначителен. Предложенный в настоящей рабо-