УДК 004.421.5, 004.312.22
Р. Н. Хусаинов, М. Д. Галимов, Б. Ф. Эминов, А. И. Крюков
РАЗРАБОТКА ПРОГРАММНОЙ РЕАЛИЗАЦИИ АЛГОРИТМА БЕРЛЕКЭМПА-МЭССИ
ДЛЯ АНАЛИЗА И СИНТЕЗА РЕКУРРЕНТНЫХ ДВОИЧНЫХ ПОСЛЕДОВАТЕЛЬНОСТЕЙ
Ключевые слова: алгоритм Берлекэмпа-Мэсси, характеристический полином, линейный регистр сдвига, поле Галуа, бинарные последовательности, программное обеспечение, компьютерное моделирование.
В работе представлена программная реализация алгоритма Берлекэмпа-Мэсси, позволяющая по заданной двоичной последовательности получать метрику линейной сложности, характеристический полином f(x) и строить график профиля линейной сложности, наглядно показывающего случайность последовательности. Описаны проектирование и разработка программной реализации, представлены оценки вычислительной сложности. Проведено тестирование на последовательностях различного происхождения.
Keywords: Berlekamp-Massey algorithm, characteristic polynomial, linear shift register, Galois field, software, binary sequences,
software, computer simulation.
This work shows full process ofBerlekamp-Massey algorithm software developing. Our software obtains linear complexity metric from initial binary sequence, f(x) characteristic polynomial and draws diagram of linear complexity characteristics. It help to define quality of randomness for initial binary sequence. We described designing and developing processes for software, and represented all evaluation for computing complexity. We tested different sequences from different sources.
Введение
Разработанный авторами Э.Берлекэмпом и Дж. Мэсси алгоритм Берлекэмпа-Мэсси (АБМ) [1, 2] является базовым в использовании кодирования Рида-Соломона, позволяющего корректировать ошибки в передаваемых данных. Кодирование Рида-Соломона используется при восстановлении информации с CD-ROM, в архивах для восстановления информации при повреждении части данных, в отказоустойчивом кодировании, в опто-, в спутниковой и радиорелейной передаче данных.
На сегодняшний день алгоритм Берлекэмпа-Мэсси находит широкое применение в следующих областях: для кодирования информации - "решение ключевого уравнения над произвольным полем" [1]; для верификации корректности цифровых схем; в криптографии при верификации поточных шифров, при изучении систем воссоздающих псевдослучайные числа на их аналитическую сложность - получения метрики линейной сложности (ЛС) [3, 4]; в моделировании для изучении качества случайных данных [4].
Рассматриваемый алгоритм также находит применение при декодировании кодов Боуза-Чоудхури-Хоквингема, циклических и обобщенных циклических кодов, альтернативных кодов и кодов Гоппы, некоторых подклассов алгебро-геометрических кодов [5]. Алгоритм Берлекэмпа-Мэсси используется при решении ганкелевых, теплицевых, разреженных и общих систем линейных уравнений и при поиске рациональных аппроксимаций функций.
Данный алгоритм находит применение в синтезе и анализе рекуррентных q-ричных и двоичных последовательностей u. Применим алгоритм для последовательностей с элементами из таких алгебраических структур как конечные поля и кольца, для исследования линейной сложности марковских последовательностей; детальный список работ представ-
лен в [5]. Существуют и вероятностные версии алгоритма.
Алгоритм Бэрлекемпа-Мэсси имеет следующие характеристики:
- вычисляется меньший по длине линейный регистр сдвига (ЛРС), выходная последовательность которого равна и; вычисляется задающий ЛРС минимальный характеристический многочлен А(х) = хЬ + еЬ-1 х^1 + ... + е1х + е0 степени Ь, ci е вР(^е), де > 2 - простое число, определяющее порядок поля;
- минимум входных данных - для воссоздания многочлена Ах) степени Ь, задающего линейный регистр сдвига, потребуется 2Ь элементов из и;
- графическая характеристика «профиль линейной сложности» [4], пошагово создаваемая АБМ и позволяющая вычислить период последовательности - при некоторой величине ] значение метрики ЛС перестает возрастать, а профиль линейной сложности становится горизонтальной линией.
Целью работы является создание базового инструмента для построения характеристического полинома исследуемых последовательностей [4] и получения профиля линейной сложности [4]. Полученные результаты планируется использовать для исследования качества случайных/псевдослучайных последовательностей от различных моделей генераторов и для сравнения скоростных характеристик вычислений программной и аппаратной реализаций алгоритма Берлекэмпа-Мэсси.
Модель работы алгоритма Берлекэмпа-Мэсси
Алгоритм Берлекэмпа-Мэсси позволяет выполнить нахождение минимального ЛРС для поданной на вход бинарной последовательности [2, 6]. АБМ вычисляет минимальный полином, получающий линейную рекуррентную последовательность над произвольным полем характеристики д. Обобщенная
блок-схема алгоритма Берлекэмпа-Мэсси изображена на рис. 1.
Разработанная программная реализации АБМ имеет следующие характеристики.
- многочлены представлены двоичными векторами с двоичные коэффициентами при неизвестных многочлена;
- для вычисления выражения X регистр с единицей в младшем разряде смешается на к позиций в сторону старшей степени полинома;
- умножение/сложение многочленов проводится в арифметике поля ОЕ(2);
- последовательности с нулями опускаются;
- умножение многочленов выполнячется при модификации синтезируемого многочлена.
Рис. 1 - Обобщенная блок-схема алгоритма Бер-лекэмпа-Мэсси
Пусть с ожидаемого линейного регистра сдвига числа снимаются с большего разряда, а начальная установка состояний регистра выполняется с меньшего разряда. Тогда правило построения линейных рекуррентных последовательностей задается рекуррентным линейным соотношением [4] вида
Ь
и] = Х и]-г-1Сг = и]-1С1 + и}-2С2 + ... + и'-ЬСЬ ,
где Uj е GF(qc), j = 0, q -1 - элементы последова-
тельности, получаемые с ЛРС; с{ е вР(дС), , = 0, Ь-1 - коэффициенты при неизвестных получаемого многочлена /Ь)(х); знак «+» обозначает знак сложения по модулю дс. Тогда запишем систему линейных уравнений относительно неизвестных с,-:
= uj-ici + uj-2c2 + ••• + uj-LcL,
1 = UjC1 + Uj-1C2 + ••• + Uj - L+1CL,
j
Uj +L = Uj+L-1C1 + Uj+L-2C2 + ••• + UjCL •
Эта система уравнений автоматизировано решается с помощью алгоритма Берлекэмпа-Мэсси, с восстановлением вида задающего полинома /х) и его степени Ь. Для последовательности и длины 1С, где символы и, е вР(дС), за , шагов (( < 1С) пошагово, с изменением коэффициентов и длины в точках съема,
получается регистр, заданный системой вида (Ь, /Хх)). Существует несколько регистров с одинаковыми параметрами Ь,. К началу ,-го шага получим следующую совокупность регистров:
(Ьо,/»(х)), (Ь1,/(1)(х)), . . . ,(Ь,-1,/-1)(х)).
Пара (Ь,--1, /-1)(х)) определяет построенный минимальный регистр. Все операции выполняются с операциями поля вР(дС) - по модулю дС.
После очередного --го шага на выходе регистра сдвига, заданного системой (Ь,-1, /1-1)(х)), выдается предполагаемый следующий символ последовательности
Li-1
С Г\-j
где cf'' - коэффициенты при неизвестных
U, =-Zc
j=1
,(i-1)
многочленаf' )(x), определяющего текущий регистр сдвига^
Оценена вычислительная сложность реализации алгоритма Берлекэмпа-Месси для двоичных последовательностей длиной lc относительно
h /2 h /2 сложения - 2 ^ (L +1)2 , умножения - 2 ^ L2 , где L
L=1 L=1
- значение линейной сложности Таким образом алгоритм обладает вычислительную сложность
O( lc3)-
Программная реализация алгоритма Берлекэмпа-Мэсси
Для реализации алгоритма Берлекэмпа-Мэсси был выбран язык программирования С# с применением объектно-ориентированной методологии В процессе работы над реализацией алгоритма была использована свободно распространяемая интегрированная среда разработки Microsoft Visual C# 2015^ В работе также использовалась библиотека с открытыми исходными кодами ZedGraph, распространяемая для академического использования с открытыми кодами, обеспечивающая построение графиков^ Главное окно ПО представлено на рис 2^
Рис. 2 - Главное окно программной реализации алгоритма Берлекэмпа-Мэсси
'=1
U
Кроме вычисления характеристического многочлена и его степени (значения ЛС) для заданной двоичной последовательности, ПО позволяет строить профиль линейной сложности. Профиль ЛС является двумерным графиком в декартовых координатах: по оси ординат задается текущая степень характеристического многочлена, а по оси абсцисс - значения длины последовательности и. Профиль состоит из прямых, параллельных оси абсцисс и аппроксимируемых прямой вида L(i) = i/2, i = 0, lc -1, где lc -длина последовательности и. В [4] профиль линейной сложности используется для статистической проверки равенства профилей генерируемых последовательностей.
Предварительное моделирование [7] упростило дальнейшую разработку программной реализации алгоритма Берлекэмпа-Мэсси. В реализации предусмотрено два класса, выполняющих основные задачи: класс регистра сдвига с линейной обратной связью (RSLOS) и сам класс алгоритма Берлекэмпа-Мэсси (Algorithm). Функции данных классов вызываются в главной форме программы по мере необходимости. Оба класса (RSLOS и Algorithm) имеют функции предустановки начальных значений переменных и векторов и функции запуска основной части класса: сдвига регистра и вычисление полинома соответственно.
Ниже приведен перечень файлов, содержащих исходный код, с кратким описанием их назначения:
• RSLOS.cs - класс регистра сдвига с линейной обратной связью;
• Algorithm.cs - класс, реализующий алгоритм Берлекэмпа-Мэсси;
• Form1.cs, Form1.Designer.cs, Forml.resx - средства, основывающие главную форму, необходимые для взаимодействия основных классов программы;
• Program.cs - точка входа в программу;
• ZedGraph.dll - сторонняя библиотека для построения графиков и работы с ними.
Класс RSLOS (регистр сдвига с линейной обратной связью) предназначен для моделирования линейного регистра сдвига, который является одним из способов представления линейной рекуррентной последовательности. Его цель заключается в проверке корректности работы алгоритма Берлекэмпа-Мэсси.
Класс Algorithm (реализация алгоритма Берле-кэмпа-Мэсси) является основным классом программы, решающим задачу построения полинома мини-
мальной степени для поданной на вход линейной рекуррентной последовательности. Как было описано ранее, данный класс имеет две функции. В первой происходит инициализация переменных и массивов, а сам алгоритм выполняется в теле второй функции.
Заключение
Разработана программная реализация алгоритма Берлекэмпа-Мэсси, позволяющая по заданной двоичной последовательности получать ее характеристический полином fx). Корректность функционирования программной реализации АБМ верифицировалась с помощью последовательностей с различными аналитическими сложностями. Получена оценка вычислительной сложности программной реализации алгоритма Берлекэмпа-Мэсси. Актуальной является задача исследования большего класса последовательностей с элементами, принадлежащими полю GF(qc), где qc > 2 и простое. Также планируется реализовать алгоритм Берлекэмпа-Мэсси на аппаратном уровне и выполнить сравнение скоростных показателей вычислений для программной и аппаратной реализации алгоритма. Для аппаратной реализации планируется выполнить сравнение реализаций алгоритма между микроконтроллерами Atmel AVR серии ATxmega, ST Microelectronics STM32 серии F4xx и ПЛИС фирмы Altera.
Литература
1. Берлекэмп Э.Р. Алгебраическая теория кодирования / Э. Р. Берлекэмп. Пер. с англ. М.: Мир, 1971. 477 с.
2. Massey J.L. Shift Register Synthesis and BCH Decoding // IEEE Trans. On Inform. Theory. 1969 Vol. IT-15, N. 1.
3. Кугураков В.С., Кирпичников А.П., Сущевский Д.Г. О генерации псевдослучайных PIN-кодов криптографическим методом /Вестник Казан. гос. технол. ун-та-2015. №17. С.190-193.
4. Алферов А.П., Зубов А.Ю., Кузьмин А.С., Черемушкин А.В. Основы криптографии. М.: Гелиос АРВ, 2002. 480 с.
5. Захаров В.М., Эминов Б.Ф. Статистический анализ линейной сложности регулярных цепей Маркова // Исслед. по информ., 10. Казань, Отечество, 2006. С.37-50.
6. Блейхут Р. Теория и практика кодов, контролирующих ошибки / Р. Блейхут. Пер. с англ. М.: Мир, 1986. 576 c.
7. Валиуллин А.Х. Разработка математической модели и расчет напряженного состояния вращающегося диска // Вестник Казан. гос. технол. ун-та, 2015. №17. С.179-182.
© Р. Н. Хусаинов - канд. техн. наук, доц. каф. инженерной компьютерной графики и автоматизированного проектирования КНИТУ, xysainov57@mail.ru; М. Д. Галимов - асс. каф. компьютерных систем КНИТУ-КАИ, galimov.cs@kstu-kai.ru; Б. Ф. Эминов - канд. физ.-мат.наук, доц. каф. компьютерных систем КНИТУ-КАИ, bulfami@mail.ru; А. И. Крюков - магистрант каф. компьютерных систем КНИТУ-КАИ, alexanderlevor@live.ru.
© R. N. Khusainov, Cand. Sci. (Tech.), Docent, Department of the Engineering Computer Grafics and Automated Design, Kazan National Research Technological University, xysainov57@mail.ru; M. D. Galimov, Assistant of Computer systems department, Kazan National Research Technical University - Kazan Aviation Institute, galimov.cs@kstu-kai.ru; B. F. Eminov - Cand. of Sci. (PhD) in physics and mathematics, Docent of Computer systems department, Kazan National Research Technical University - Kazan Aviation Institute, bulfami@mail.ru; A. 1 Kryukov - Postgraduate student of Computer systems department, Kazan National Research Technical University - Kazan Aviation Institute, alexanderlevor@live.ru.