logo
Криптографическая защита информации

5.4. Алгоритм Берлекемпа-Месси

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

Любая периодическая последовательность может рассматриваться как линейная рекуррентная последовательность. Поэтому для любой периодической последовательности существует некоторый линейный регистр сдвига, который ее вырабатывает. Если элементы, образующие период последовательности, выбираются случайно, то степень минимального многочлена такой последовательности близка к величине ее периода. Поэтому линейная сложность может рассматриваться как характеристика сложности аналитического строения псевдослучайной последовательности. Низкую линейную сложность имеют слабые в криптографическом отношении последовательности. Вместе с тем высокая линейная сложность не гарантирует отсутствия других недостатков. Например, для генерации последовательности, период которой имеет вид (0,0,…,0,1), требуется линейный регистр, длина которого совпадает с длиной периода этой последовательности, однако ясно, что считать эту последовательность случайной нельзя.

Эффективным методом нахождения линейного регистра сдвига минимальной длины, генерирующего заданную последовательность, является алгоритм Берлекемпа-Месси.

Пусть Р – некоторое поле, е – единица поля Р. Обозначим через и=(u(0),...,u(l – 1)) начальный отрезок произвольной последовательности и элементов поля Р. Будем говорить, что многочлен

вырабатывает отрезок и, если

то-есть если данный отрезок последовательности является отрезком некоторой линейной рекуррентной последовательности с характеристическим многочленом G(x).

Алгоритм Берлекемпа-Месси строит многочлен G(x) наименьшей степени, вырабатывающий отрезок и. Приведем одну из многочисленных модификаций алгоритма со сложностью, оцениваемой величиной 6т2(1+о(1)) операций поля Р.

Определим операцию умножения последовательности на многочлен.

Для произвольного многочлена

и последовательности v положим H(x)v=w, где

Будем говорить, что многочлен G(x) степени т вырабатывает l т знаков последовательности и, если выполняется равенство

то есть если первые l — т знаков последовательности v равны нулю, а следующий за ними отличен от нуля.

Для многочлена G(x)P[x] степени т и последовательности и введем параметры lи(G) и kи(G) = lи(G)т, где lи(G) – число знаков последовательности и, вырабатываемых многочленом G(x). Ясно, что kи(G) – максимальное число первых подряд идущих нулей в последовательности G(x)u (либо ).

Будем индуктивно строить последовательность многочленов G0(x), G1(x),... неубывающих степеней 0= т0 < т1 т2 ... .

Начальные условия: G0(x)=e, т0 =0.

Этап 1. Если

то полагаем

Если G1(x)и = 0, то есть если kи(G1) = , то G1(x) – искомый минимальный многочлен ЛРП и. В противном случае строим G2(x).

Этап t+1. Пусть многочлены G0(x),...,Gt(x) уже построены, и степень degGj(x) многочлена Gj(x) равна тj, причем 0= т0 < т1 тt. Пусть выполняются соотношения

Определим число s = s(t) так, чтобы выполнялись условия тt = тt-1 = …= тs+1 > тs (такое s найдется, так т1 > т0). Положим

если kt ks,

если kt > ks.

Если Gt+1(x)u = 0, то нужный многочлен построен. В противном случае строим Gt+2(x) .

Теорема 2. Если и линейная рекуррентная последовательность над полем Р с минимальным многочленом F(x) степени т, то F(x)= Gr(x) для некоторого подходящего значения r 2т–1–k0.