УДК 681.3.067
АЛГОРИТМ И СРЕДСТВА ГЕНЕРАЦИИ ЛИНЕЙНЫХ РЕКУРРЕНТНЫХ ПОСЛЕДОВАТЕЛЬНОСТЕЙ
МЕЛЬНИКОВА О.А., ОЛЕШКО О.И., ГОЛОВАШИЧС.А.
Рассматриваются вопросы построения примитивных образующих полиномов для линейных рекуррентных регистров, применяемых для генерации линейных рекуррентных последовательностей максимального периода. Предложен алгоритм проверки трёхчленных многочленов на неприводимость и принципы построения на их основе примитивных полиномов.
Линейные рекуррентные последовательности максимального периода (ЛРПМ) применяются в системах связи со сложными сигналами, а также в системах криптографической защиты информации. Их применение в системах связи объясняется хорошими корреляционными свойствами, а применение в системах защиты информации — заведомо известным периодом повторения, идеальными свойствами псевдослучайности.
Для формирования ЛРПМ применяются линейные рекуррентные регистры (ЛРР). Работа ЛРР по формированию Л РП М полностью определяется характеристическим многочленом:
f(X)=AoXn+A1M-1+...+An-iX+An , (1)
где A0,Ab---,An — коэффициенты многочлена над полем GF(P).
В названных приложениях наибольшее применение нашли двоичные ЛРПМ (P=2). Основные свойства двоичных ЛРПМ: длина ЛРПМ равна 2n-1, где n — число разрядов ЛРР; число единиц в ЛРПМ на одну больше, чем нулей; сложение по модулю2 любой ЛРПМ с другой ЛРПМ, полученной из данной путем циклического сдвига, также является ЛРПМ, которая представляет собой циклический сдвиг исходной ЛРПМ на другое число позиций; каждое возможное состояние линейного рекуррентного регистра за время формирования полной ЛРПМ возникает в некоторый момент времени только один раз; для определения закона функционирования ЛРПМ необходимо получить 2п безошибочных бит. Состояние ЛРР, при котором все разряды содержат нули — запрещено.
ЛРПМ обладает свойством псевдослучайности, т. е. в ней 1/2 всех серий подряд расположенных одинаковых символов имеет длину 1, (1/2)2 длину 2, (1/2)3 длину 3.
1. Линейные рекуррентные регистры
Пусть необходимо построить ЛРР, вырабатывающий двоичную ЛРПМ длиной^-!, работа которого определяется характеристическим многочленом (1). Структурная схема ЛРР представлена на рис.
Вектор (a1,a2,...,an)i определяеттекущее состояние регистра (или его исходное состояние перед началом работы), а вектор (k0,k1,...,kn) определяет необходимые обратные связи. При подаче на ЛРР тактовой сдвигающей частоты регистр входит в рабочее состояние.
Xі X2
Рис. Структура линейного регистра
n
X
На каждом такте i содержимое последней ячейки (an) считывается на выход (yi), тем самым дополняя создаваемую ЛРПМ очередным символом. В то же время значения всех ячеек умножаются на соответствующие коэффициенты k и поступают на вход общего сумматора. Результат суммирования умножается на к0 и поступает на вход регистра (ячейка a1). На этом работа ЛРР в очередном такте заканчивается. Так как ЛРПМ имеет период^-1, то после 21-1 тактов работы регистр принимает исходное состояние. В нашем случае необходимо получить двоичную последовательность, поэтому вектор (a1,a2,...,an) является двоичным, и в сумматоре выполняется сложение по модулю2. Отметим, что нулевое состояние регистра является запрещенным, так как оно приводит к нулевой последовательности; при корректном выборе характеристического многочлена, правильном синтезе регистра и выборе ненулевого вектора (a1,a2,...,an) оно не может возникнуть.
2. Принцип построения примитивных полиномов
Для определения структуры ЛРР разрядности n необходимо знать характеристический многочлен степени n, причем многочлен f(X) степени n должен быть неприводимым к виду произведения многочленов меньших степеней и примитивным относительно двучлена XN—1, где N=2n-1, т. е. должен делить его без остатка. Поскольку ЛРПМ широко применяются, то их свойства и многочлены были изучены основательно [1].
Проверка примитивности выбранного характеристического многочлена небольших степеней проводится с помощью построения функций автокорреляции и взаимокорреляции.
Значение корреляционных функций определяется как разность между числом совпадений и числом несовпадений при посимвольном сравнении кодовой последовательности или последовательностей в случае определения взаимной корреляции. При построении корреляционной функции происходит сравнение двух ЛРПМ, причем сравнение проводится после каждого сдвига одной последовательности относительно другой на один символ на протяжении всего периода ЛРПМ. Естественно, что периоды сравниваемых последовательностей должны быть равны. Функция автокорреляции (в сравнении участвует одна последовательность) для примитивного характеристического многочлена равна -1 при всех значениях сдвига, кроме нулевого. В случае нулевого сдвига (условие полной синхронизации) ненормированное значение функции автокорреляции равно 2n-1. Функция взаимной корреляции, когда в качестве сравниваемых последовательностей выступают две ЛРПМ, построенные на основе примитивных многочленов, при малой амплитуде разбросов говорит о хоро-
РИ, 1997, № 1
83
ших корреляционных свойствах ЛРПМ. Таким образом, для проверки характеристического многочлена малой степени на примитивность достаточно проанализировать свойства построенной на его основе ЛРПМ. Известны таблицы, в которых приведены некоторые примитивные многочлены до степени 34 [1]. Проверить примитивность многочленов степеней, больших 34, весьма сложно. Эта задача сводится к нахождению трехчленных многочленов степени n вида
f(X)=Xn+Xr+1 (2)
над полем из двух элементов, причем r<(n+1)/2.
Основой для нахождения таких многочленов является утверждение [3]: поскольку 0 и 1 не могут быть корнями многочлена (2) (X+X2 и (2) взаимопросты), то трехчлен неприводим если
X2n = X( mod (Xn +X + 1)). (3)
Воспользовавшись тем, что для любого многочлена g(X) над полем Pверно равенство [5]:
(g(X))2 = g(X2), (4)
построим цепочки сравнения вида
X2k = gk(X) (mod(Xn+Xr + 1)), (5)
где gk(X) — многочлен степени, меньшей n.
Посредством последовательного нахождения остатков можно реализовать эффективный способ проверки трехчленных многочленов на примитивность и с его помощью выявить необходимое множество примитивных многочленов. Проведенный анализ показал, что по известному неприводимому многочлену степени n, имеющему вид
f(X)=Xn+CX-1+...+Cn-iX+Cn, (6)
строится неприводимый многочлен степени n вида g(X)=Xn+t1X'-I+...+tn-1X+tri (7)
такой, что при элементе N (примитивном по модулю 2n-1) вектор коэффициентов (t2,t2,...,tn) является функцией от вектора коэффициентов (C1,C2,...,Cn) и, если A — корень неприводимого многочленаf(X), то корнем многочлена g(X) является А^.
3. Алгоритм построения примитивных трехчленов
Если n — простое число, то число неприводимых многочленов степени n над полем P находится по [4]: Y(n) = (Pn-P)/n, (8)
а число примитивных многочленов, при P=2, как Ф(2п-1)/п, (9)
где Ф(X) — функция Эйлера [2].
Допустим, что 2n-1—простое число, тогда Ф(2^-1)=2^-2, поэтому число примитивных многочленов над полем 2равно (2^-2)/n. Следовательно, при простых n и 2^-1 любой неприводимый многочлен степени n над полем из двух элементов является примитивным. Заметим, что это свойство выполняется только для характеристики поля P=2.
Рассмотрим задачу нахождения неприводимых трёхчленных многочленов степени n над полем из двух элементов вида (2). Будем предполагать, что n— простое число (n не равно 2), а также что r<(n+1)/2, чтобы исключить “зеркально симметричные” многочлены. Многочлен неприводим тогда и только тогда, когда выполняется тождество (3).
Если найдено сравнение
X2k = an-1Xn-I+an-2Xn-2+...+a1X+a0(modf(X)), (10) то X2k+I=(a2k)2= an-jX2(n-I)+an-2X2(n-2)+...
+a1X2+a0(mod f(X)). (11)
Чтобы получить из X2k сравнение X2k+I, следует каждую степень X2m (m=1,2, ... , n-1) заменить сравнимым с ней многочленом степени, меньшей n, по модулю f(X). Известно, что Xn=Xr+1(modf(X)). Обозначим n=2S+1. Степени X2i(i<S) заменять не следует, поскольку в этом случае 2i<n:
X2S+i=xn+i-I=x+i-I+X-1 . (12)
Возьмем 1<i<n-r, тогда правая часть сравнения (12) имеет степень, меньшую n. Если i>n-r, то
X2S+i=xn-I+(r+i-n)+xi-I=X2S+(r+i-n)+xi-I . (13)
Используя для первого слагаемого (12), получим:
X2S+i=X2r+i-n-I+X+i-n-I+Xi-I . (14)
При 2S=n-1 имеем X2S=Xn-1, поэтому окончательно формулы будут иметь вид
Xn+l-I=X+l-I+X-Inри 1<i<n-r; (15)
Xn+i-I=x2r+i-n-I+Xr+i-n-I+X-Inри n-r+1<i<n-1. (16)
Формулы дают возможность составить алгоритм проверки трёхчленов (2) на неприводимость, который опишем на примере степени n =89. Будем искать неприводимый многочлен степени 89 среди
f(X)=X89+Xr+1, при 1<r< 44. (17)
Требуется проверить сравнение
X289 =X( modf(X)). (18)
По (15) и (16) при X89=Xr+1(modf(X)) получим: X88+i=X+i-I+X-:I, при1<і<89-г; (19)
X88+i=X2r+i-90+X+i-90+X-:l, при89-Ш8<88 (20)
Например, по (19) X27 = XI28=X39+r+ X39. Последовательно найдем остатки от деления на f(X) для (X28,...,X289). Например, X28=(X27)2=XI28=(X39+r+ +X39)2=X78+2r+X78, а дальше применяем (19) или (20) в зависимости от r. Если связать с каждым остатком от деления на f(X) многочлен
f(X)=Ao+A!X+... +A88X88 (21)
или вектор A=(A0,Ai,...,A88), то остатку от деления X27 На f(X) соответствует вектор, где Лишь A39+r=A39=1, остальные координаты равны 0.
Опишем, как по вектору A=(A0,Ai,...,A88), соответствующему остатку от деления X2n на f(X), строится вектор B=(B0,Bi,...,B88), соответствующий остатку от деления X2(n+I) Haf(X):
1. Если Ak=1(0<к<88), то вычисляем 2к.
2. Если 2к<88, то В2к=1.
3. Если 2k>89, то i=2k-88.
4. Если 1<i<89-r, то Br+i-]=Bi-]=1 по (19).
5. Если 89-r<i<88, то Bt-j =B2r+i-90=Br+i-90=1, согласно (20).
6. Ak=Bk (0<к<88).
Все присваивания выполняются по модулю 2.
Шаги 1 -6 повторяются 82 раза, начиная с X27. Если по окончании цикла получим вектор В c BI=1 (остаток равен X), то f(X) — неприводимый и, следовательно, примитивный трёхчлен, так как 89 и 289-1 простые числа. Теперь изложим основные теоретические выкладки, позволяющие предположить, что по известному неприводимому многочлену степени n можно построить другой неприводимый многочлен той же степени.
Предположим, что найден неприводимый примитивный многочлен степени n. Если n и 2n-1 — простые, то любой неприводимый многочлен степе-
84
РИ, 1997, № 1
ни n примитивен. Пусть C1, C2,.., Cn — элементарные симметрические функции n переменных: C1(XhX2,..,Xri)=X1+X2+...+Xn> C2(X1,X2,...,Xn)=X1X2+X1X3+...+Xn-1Xn, (22)
Cn(Xj,X2,...,Xn)=XjX2...Xn .
Тогда через Cf обозначим значения симметрических многочленов в точке (a1,a2,...,an), где a — корни многочленаf(X). Корни примитивного многочлена f(X) равны: a,a2,a22,...,a2n-1 (a — фиксированный корень многочленаf(X)). Пусть Л^не является степенью двойки (3D<N<2n-1), тогда aN— примитивный элемент, корень примитивного многочлена g(X) степени n, отличного от f(X). Остальные его корни имеют вид: aN*2,aN*22,...,aN*2n-1, т.е. корни многочлена g(x) являются N-ми степенями корней многочлена f(X). Следовательно,
Cg=Ci(a1N,a2N,... ,anN). (23)
Если выразить Cg через Cf, то можно найти коэффициенты многочлена g(X). Обозначим:
Sk=S(Xik)=X1k+X2k+...+Xnk; (24)
tk=S(X1N,X2N,...XkN)=Ck(X1N,X2N,..,XnN). (25) Будем искать коэффициенты g(X) в следующем порядке: через коэффициенты f(X) найдем Sk, а через Sk выразим tk. Для Sk известны рекуррентные формулы Ньютона, которые запишем с учетом двоичной характеристики поля:
Sk=Sk-1C1+Sk-2C2+...+S1Ck-1+kCk, для k<n; (26)
Sk=Sk-1C1+Sk-2C2+...+Sk-nCn, для k>n. (27) Для экономии вычислений нужно учитывать, что S2k2=Sk. Формулы (26) и (27) позволяют, зная C1,C2,...,Cn и начиная с S1=C1, последовательно вычислять S1, S2,...,Sk для любого k.
По стандартной процедуре выражения симметрического многочлена через элементарные симметрические многочлены найдем, что
t1=S(X1N)=C3+C1C2+C3; (28)
t2=S(XNX2N)=C23+C12C4+C2C4+C1C5+C6 . (29) По индукции получится формула
tk=tk-1SN*1+tk-2SN*2+...+t1SN*(k-1)+SN*k, (30)
или все коэффициенты нового неприводимого многочлена для k<3. Приняв их за начальные, после повторения той же процедуры получаем коэффициенты следующего неприводимого многочлена. Таким образом, мы сможем получить все неприводимые многочлены степени n, причем за первые (22-2)/ n шагов, но только в том случае, если N является первообразным корнем сравнения:
X2N-2 = 1( mod2N-1). (31)
4. Анализ основных приложений
Основными приложениями решения задач построения примитивных полиномов являются системы защиты информации и системы кодирования. Необходимость знания примитивных полиномов с различными базами вплоть до 1024 связана с потребностью создания средств исходных последовательностей. Дело в том, что требуемое качество скрытия смыслового содержания может быть достигнуто, если период последовательности составляет порядка 104о-10300 символов. При этом указанный период должен быть гарантирован, что обеспечивается ис-
пользованием линейных автоматов типа ЛРР, в которых обратные логические связи реализуются в соответствии с выбранным примитивным полиномом. При этом в системах защиты различного назначения длины периодов последовательностей могут быть различными, что вызывает необходимость построения примитивных полиномов для различных длин. Кроме того, качество защиты информации может быть улучшено за счет смены законов формирования последовательностей в динамическом режиме, непосредственно в процессе работы системы. Для этого необходимо знать не только один полином, а уже все используемое множество изоморфизмов примитивных полиномов.
Вторым приложением работы является формирование сложных фазоманипулированных сигналов с расширением спектра. Применение для этих целей рассматриваемых рекуррентных последовательнос -тей обеспечивает быстрый поиск сигналов и их прием на фоне мощных помех. Сложные сигналы, сформированные на основе линейных последовательностей, обладают идеальными автокорреляционными и хорошими взаимокорреляционными свойствами. В табл. приведены некоторые неприводимые трехчлены от 35 до 257 степени.
Таблица
Степень n Варианты степени r Степень n Варианты степени r
35 2 142 21
44 5 150 53,73
49 9,12,15,22 159 31,34,40
57 4,7,22,25 167 6,35,59,77
63 1,5,11,28,31 174 13,57
68 9,33 183 56
76 21 194 87
86 21 202 55
90 27 210 7,21,63
94 21 217 45,64,66,82,85
98 11,27 222 105
103 9,13,30,31 228 63,113
108 17,27,31,33,45 234 31,103
111 10,49 239 36,81
118 33,45 244 111
123 2 249 35,86
129 5,31,46 253 46
Литература: 1. Питерсон У., Уэлдон Э. Коды, исправляющие ошибки. М.: Мир.— 1976.— 594 с. 2.ВиноградовИ.М. Основы теории чисел. М.: Наука, Главная редакция физико-математической литературы.— 1981.— 176 с. 3. Завало C.T., Костарчук В.Н., Хощет Б.И. Алгебра и теория чисел. Киев: В. шк. Голови. Изд-во,— 1980,— 408 с. 4 .Долгов В.И., Горбенко И.Д., Сныткин И.И. Теория дискретных сигналов. Часть 1. Оптимальные дискретные сигналы с одно- и двухуровневой ПФАК. МО СССР,1983.— 142 с. 5.Жальников В. Криптография от папируса до компьюте-ра.- М.: ABF.- 1996.- 336 с.
Поступила в редколлегию 12.10.97
Мельникова Оксана Анатольевна, аспирантка кафедры ЭВМ ХТУРЭ. Научные интересы: криптография. Адрес: 310726, Украина, Харьков, пр.Ленина, 14, тел. 30-24-50.
Олешко Олег Иванович, аспирант кафедры ПО ЭВМ ХТУРЭ. Научные интересы: криптография. Адрес: 310726, Украина, Харьков, пр.Ленина, 14, тел. 30-24-50.
Головашич Сергей Александрович, стажер-исследователь кафедры ЭВМ ХТУРЭ. Научные интересы: криптография. Адрес: 310726, Харьков, пр.Ленина, 14, тел. 3024-50.
РИ, 1997, № 1
85