Скачиваний:
83
Добавлен:
15.06.2014
Размер:
804.21 Кб
Скачать

Рис. 2.2. Диаграмма состояний генератора де Брюина

Генератор формирует последовательность максимальной длины 2n, которая носит название последовательность де Брюина.

Пример. Зададим поле GF(2) и определим неприводимый в поле полином f(x) =

=x4 + x3 + x2 + x + 1. Определим циклическую структуру генератора РСЛОС, использующего f (x) в качестве характеристического полинома. Заметим, что (x5 + 1)=

=(x + 1) (x4 + x3 + x2 + + x + 1). Следовательно, f (x) | (x5 + 1), что дает период последовательностей, равный 5. Всего РСЛОС сформирует 15/5 = 3 различных последовательностей. Диаграммы состояний показаны на рис. 2.3.

Рис. 2.3. Диаграммы состояний генератора РСЛОС Генератор не обеспечивает максимального периода последовательности.

24

2.2. Регистры сдвига с линейной обратной связью

К простейшему типу регистра сдвига с обратной связью относится регистр сдвига с линейной обратной связью (РСЛОС). Обратная связь представляет собой операцию суммирования по некоему модулю (для бинарного сигнала – по модулю 2) символов, снимаемых с определенных разрядов регистра сдвига, которые определяет многочлен обратной связи.

Для обеспечения максимального периода конкретного РСЛОС соответствующий многочлен обратной связи должен быть примитивен. Степень многочлена является длиной регистра сдвига. Примитивный многочлен степени n – это неприводимый

многочлен, который является делителем полинома x2n1 +1, но не является

делителем xd +1, для всех d, являющихся делителями числа 2n – 1. Зададим конечное поле F = GF( q) и примитивный полином

f (x) = xn c

n1

xn1

... c x c

0

,

c

i

F .

 

 

 

1

 

 

 

Псевдослучайная m-последовательность a = a0, a1, a2, … с периодом qn - 1 над

полем F задается рекурсивным выражением

 

 

 

 

 

 

 

 

n1

 

 

 

 

 

 

 

ai+n = c j a j +i ,

i = 0,1,... .

 

 

 

j =0

Полином f(x) определяет вид линейной обратной связи и называется характеристическим для последовательности a. Полином m(x), имеющий наименьшую степень среди характеристических полиномов последовательности a, называется минимальным полиномом последовательности. Линейная сложность последовательности LS(a) оценивается через степень минимального полинома LS(a) = = deg(m(x)).

Свойство s-децимации

Пусть f (x) – неприводимый полином над полем GF(q) степени n и s – положительное целое число и имеется последовательность a G(f). Последовательность b = {bi}, символы которой определяются как

bi = asi , i 0 ,

называется децимированной последовательностью и обозначается как b = a(s). Заметим, что если f(x) – неприводимый полином над GF(q) степени n, s – целое положительное число, α - корень f (x) в расширенном поле GF(qn) и существует децимированная последовательность a(s).0, тогда минимальный полином последовательности a(s) является минимальным полиномом и для αs над GF(q).

Рассмотрим s-децимированную m-последовательность. Последовательность будет также m-последовательностью, если выполняется условие НОД(s, qn – 1) = 1.

25

 

 

Пример. Пусть F = GF(2), f (x) = x4 + x + 1, α – корень f(x). Минимальным для αs

будет полиномом

f

α

s (x) . Для последовательности a G( f )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a = 100010011010111… = (Tr(α14 ),Tr(α14α),Tr(α14α2 ),...)

 

получаем следующие виды децимированных последовательностей:

 

 

 

1)

a(3)

=

 

1000110001…, период равен

5,

минимальный

полином

f

α

3 (x) = x4 + x3 + x2 + x +1;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2)

a(5) = 101101…, период равен 3, минимальный полином f

α

5 (x) = x2

+ x +1;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3)

a(7) =

111010110010001……, период равен

15,

минимальный

полином

f

α

7 (x) = x4 + x3 +1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Перестановочные свойства m-последовательности

Пусть d = (qn – 1)/(q – 1), тогда:

-любая m-последовательность над полем F степени n может представлена в виде матрицы размером (q – 1) × d, у который столбцами являются m-после- довательности длиной (q – 1) или нулевые последовательности;

-любая m-последовательность может быть преобразована в матрицу размером

(qm – 1) × v, у которой столбцами являются m-последовательности степени m или нулевые последовательности, если n составное число, m – множитель факторизации числа n, и v = (qn – 1)/(qm – 1).

Пример. Если q = 2, n = 6, f (x) = x6 + x + 1. Псевдослучайная m-последователь- ность a GF(q) путем перестановки может быть преобразована в матрицы A(i,j) двух размеров: 3×21 или 7×9, у которых столбцами являются последовательности длинами соответственно, 3 или 7, а также последовательности, состоящие из одних нулей.

A(3,21) =

0

0

0

0

0

1

0

0

0

0

1

1

0

 

0

0

1

0

1

0

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

,

= 1 1 1 0 1 0 0 0 1 1 1 0 0 1 0 0 1 0 1 1 0

 

1

1

0

1

1

0

0

1

1

0

1

0

 

1

0

1

1

1

1

1

 

 

1

 

0

 

 

 

 

 

 

 

 

 

0

 

0

0

0

0

1

 

0

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

0

0

0

 

1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

1

1

1

 

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

0

 

 

 

 

 

 

 

 

 

 

A(7,9) = 0

 

0

1

1

1

0

 

0

1

0 .

 

 

 

 

 

 

 

 

 

 

 

 

0

 

1

0

1

1

0

 

1

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

0

0

1

 

1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

0

1

1

1

 

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

1

 

 

 

 

26

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

Вариант 1. Число q = p и p – простое число.

Пример. Выберем p = 3, n =3 и пусть f (x) = x3 x2 – 2 – примитивный полином над полем GF(3). Псевдослучайная последовательность имеет период 26 и может быть представлена в виде матрицы

0

0

1

1

1

0

2

1

1

2

1

0

1

A(2,13) =

0

2

2

2

0

1

2

2

1

2

0

.

0

2

Вариант 2. Число q = pn , p – простое число и n > 1.

Пример. Рассмотрим многозначную последовательность степени 3, периода 63, сформированную над полем GF(22). Пусть GF(22) определяется примитивным полиномом вида h(x) = x2 + x +1 и β – корень h(x), тогда GF(22) ={0, 1, β, β 2}. Выберем примитивный полином степени 3 над полем GF(22) вида f(x) = x3 + x2 +β2 +β.

Псевдослучайная последовательность a = {ai} GF(q) формируется с помощью рекурсивного соотношения

a

= a

2+k

+ β2a

+ β a

k

, k = 0,1,2,... .

3+k

 

1+k

 

 

Выберем начальное состояние (1,1,1). Псевдослучайную последовательность можно представить в виде матрицы размером 3×21:

A(3,21) =

 

1

1

1 0

1

β 2 0

0

1

1

β β 2 0

1 0

β 2

1

β 2

1

1

β 2

 

 

 

 

 

β 0

 

 

1 0

0

 

 

β β 2

1 0

β 0

1

 

 

1

 

 

 

 

1

 

 

β

β

β

β

β

β

β

 

 

β

2

β

2

β

2

0

β

2

β 0

0

β

2

β

2

1

β 0

β

2

0

β β

2

β β

2

β

2

β

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.3. Представление периодических последовательностей через функцию следа

Предварительно определим понятие циклотомического смежного класса по модулю 2n – 1. Циклотомический смежный класс числа s представляет собой множество чисел

Cs ={s,2s,22 s,...,2ns 1s}

где ns – наименьшее положительное число такое, что выполняется сравнение

2ns s s mod(2n 1) . Наименьшее число в Cs называется лидером смежного класса. Заметим, что ns | n.

27

Пусть Fq = GF(q) – конечное поле, состоящее из q элементов. Функция следа, отображающая элементы поля F2n в элементы поля F2 , определяется как

 

 

Tr n (x) = x + x2

+... + x2n1 .

 

 

 

 

1

 

 

 

 

 

Используя интерполяционную формулу Лагранжа или что то же самое, что

дискретное преобразование Фурье, для любой функции

f : F2n F2 можно

получить полиномиальное представление вида

 

 

 

 

 

f (x) = ci xi ,

ci F

, причем c

2 j

= ci2 j .

 

 

 

2n

i

 

 

Иными словами, функция f(x) может быть представлена как сумма функций

следа Tr nr (β

r

xr ) , где r I – множество,

состоящее

из

всех циклотомических

1

 

 

 

 

 

 

смежных классов по модулю 2n – 1. Таким образом, имеем

 

 

 

 

f (x) = Tr nr (βr xr ), βr F

.

 

 

 

 

1

2nr

 

 

 

 

r I

 

 

 

 

Любая бинарная последовательность {ak} периода (2n –1) может быть выражена

как

 

 

 

 

 

 

 

 

 

ak

= f (αk ), k = 0,1,2,...,

 

 

 

где α – примитивный элемент в поле F2n .

Линейная сложность бинарной последовательности {ak} определяется как

LS({ak }) =|{0 i < 2n 1| ci 0}|= nr ,

βr 0

где ci – коэффициенты характеристического полинома.

Формирование многозначных последовательностей. Рассмотрим на примере q-ичной m-последовательности. Пусть q = pr , где p – простое нечетное число и пусть α – примитивный элемент поля GF(qn). Функция следа, реализующая отображение GF(qn)GF(q), определяется следующим образом:

 

 

 

 

Tr(x) = x + xq +... + xqn1 .

Псевдослучайная q-ичная последовательность

максимальной длиной (qn-1)

S = (s

0

,...,s

qn 2

) вычисляется через выражение s

= Tr(αi ) . Один период после-

 

 

i

 

довательности S может быть представлен в форме (T ,βT ,...,βq2T ) , где T – q-ичный вектор длиной v = (qn 1)/(q – 1) и β = αv соответствует примитивному элементу поля

GF(q).

28

Пример. Для p = 3, n = 2 и примитивного полинома x2 + x + 2 троичная m- последовательности имеет вид

 

α0 α1 α2 α3 α4 α5 α6 α7,

.

S =

(2 2 0 2 1 1 0 1).

 

Последовательность имеет линейную сложность,равную 2.

Один из приемов повышения линейной сложности это отображение многозначной последовательности в бинарную GF(q)GF(2).

Например. Для рассмотренного выше примера введем следующее правило отображения ρ(1) = ρ(2) = 1 и ρ(0) = 0. Тогда получаем последовательность

S = (1 1 0 1 1 1 0 1),

имеющую период, равный 4 и линейную сложность, равную 4.

Применив правило ρ(1) = 1, ρ(2) = ρ(0) = 0, получим последовательность

S = (0 0 0 0 1 1 0 1),

имеющую период, равный 8 и линейную сложность, равную 8.

2.4. Моделирование генераторов на регистрах сдвига с обратной связью

Моделирование ведется в программной среде Maple.

1. Матричная модель генератора на РСОС.

1.2. Программа универсального генератора с РСОС. Обозначим разряды регистра сдвига как b[i].

> runshift:=proc(f,m) local x, ans, b0,b;

> if nargs>2 then b0:=args[3]; else b0:=[1,0$(m-1)]; fi;

> ans:=[b0]; for x from 1 to 2^m do b:=[f(b0) mod 2,op(b0[1..m-1])];

> if member(b,ans) then break fi; ans:=[op(ans),b]; b0:=b; od; ans:=[op(ans),b]; > RETURN(evalm(ans)) : end:

Пример.

> runshift(b2->((b2[1]+1)*b2[2]+(b2[2]+1)*b2[3]+b2[4]), 4);

29

1

0

0

0

0

1

0

0

 

0

1

0

 

1

 

1

1

0

1

1

1

1

0

0

1

1

1

0

0

1

1

 

0

0

 

 

0

1

1

0

0

0

2. Модель формирования m-последовательности через функцию следа.

2.1.Формирование конечного поля GF(24) по полиному (x4 +x + 1)

>alias(beta=RootOf(x^4+x+1)); (Определение примитивного элемента β );

>FieldTable := Matrix(q,2): (Задание матрицы для элементов поля);

2.2.Введение оператора “MakeTable” , формирующего поле GF(24):

>MakeTable(16, 2, beta);

1

=

 

 

1

 

 

β

=

 

 

β

 

 

β2

=

 

 

β2

 

 

β3

=

 

 

β3

 

 

β4

=

 

β + 1

 

β5

=

 

β2 + β

 

β6

=

 

β3 + β2

 

β7

=

 

β3

β

 

 

 

 

 

 

+ + 1

β8

=

 

β2 + 1

 

β9

=

 

β3 + β

 

β10

=

β2 + β + 1

β11

=

β3 + β2 + β

β12

=

β3

+

β2

β

+ 1

 

 

 

+

 

β13

=

β3 + β2 + 1

β14

=

 

β3 + 1

 

β15

=

 

 

1

 

 

2.3.Вычисление m–последовательности { g[i] } через функцию следа

>for i from 1 to 15 do g[i]:=Eform(Normal(beta^i+beta^(2*i)+beta^(4*i) + beta^(8*i)) mod p); od;

30

g1 := 0, g2 := 0, g3 :=1, g4 := 0, g5 := 0, g6 :=1, g7 :=1, g8 := 0, g9 :=1, g10 := 0, g11 :=1, g12 :=1, g13 :=1, g14 :=1, g15 := 0.

3. Моделирование генератора де Брюина

3.1. Задание 4- разрядного генератора

f:=(a4,a3,a2,a1)->(( (a2*a3*a4 + a2+a1+1 mod 2),a4,a3,a2));

3.2. Вычисление состояний регистра сдвига генератора

a:=(0,0,0,1);

for i from 0 to 15 do a:=f(a) od;

a

:=

0,0,0,1

a

:=

0,0,0,0

a

:=

1,0,0,0

a

:=

1,1,0,0

a

:=

1,1,1,0

a

:=

1,1,1,1

a

:=

0,1,1,1

a

:=

1,0,1,1

a

:=

1,1,0,1

a

:=

0,1,1,0

a

:=

0,0,1,1

a

:=

1,0,0,1

a

:=

0,1,0,0

a

:=

1,0,1,0

a

:=

0,1,0,1

a

:=

0,0,1,0

3.3. Спектр Уолша последовательности де Брюина имеет вид (рис.2.4). 8., -2., 0., -2., -4., 2., 0., -2., 0., 2., 0., 2., -4., -2., 0., 2.

Рис. 2.4. Спектр Уолша

31

3. МЕТОДЫ АНАЛИЗА ПОСЛЕДОВАТЕЛЬНОСТЕЙ ПОТОЧНЫХ КРИПТОСИСТЕМ

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

К первой группе относятся оценки статистических свойств шифропоследовательности: есть ли какой-либо дисбаланс в способе генерации этой последовательности, который позволил бы криптоаналитику предполагать следующий символ с вероятностью лучшей, чем при случайном выборе? Вторая группа оценок предоставляет аналитику возможность на основе уже имеющегося сегмента гаммы сконструировать свою собственную последовательность, которая повторяла бы шифрующую последовательность. В данном случае основной оценкой является сложность воспроизведения последовательности.

3.1. Оценка статистических свойств последовательностей

Постулаты Голомба. При многократном подбрасывании монеты можно ожидать примерно одинакового выпадения «орлов» и «решек». Аналогичным образом можно сформулировать и многие другие свойства для описания статистических характеристик последовательности, которая подразумевается сгенерированной совершенно случайным источником. Одна из первых формулировок некоторых основополагающих правил для статистических свойств периодических псевдослучайных последовательностей была представлена С. Голомбом [1, 14]. Три основных правила получили в открытой криптографии известность как постулаты Голомба.

G1. Количество «1» в каждом периоде должно отличаться от количества «0» не более чем на единицу.

G2. В каждом периоде половина серий (из одинаковых символов) должна иметь длину один, одна четверть должна иметь длину два, одна восьмая должна иметь длину три и т.д. Более того, для каждой из этих длин должно быть одинаковое количество серий из «1» и «0».

G3. Предположим, у нас есть две копии одной и той же последовательности периода p, сдвинутые относительно друг друга на некоторое значение d. Тогда для любой последовательности, удовлетворяющей правилу G3, функция автокорреляции должна принимать лишь два значения (быть двузначной).

Последовательность, удовлетворяющая правилам G1-G3, часто именуется

псевдослучайной последовательностью или ПС-последовательностью. Одних лишь

32

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

Проблема тестирования выглядит следующим образом. Статистический тест для вырабатываемых генератором последовательностей длиной N – это функция

Т: BN → { «принять», «отвергнуть»},

которая разделяет множество BN двоичных длиной N последовательностей

s N = s ,…, s

N

на (обычно небольшое) множество «плохих» или «неслучайных»

1

 

последовательностей

ST ={sN :T (sN ) =<< отвергнуть>>} BN

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

отвергнута, выражается соотношением ρ = | 2SNT | . В реальных тестах ρ должно быть

невелико, например ρ 0.001...0.01.

Наиболее известны следующие виды тестов: частотный, последовательный, тест серий, автокорреляционный, универсальный, тест повторений, сравнение тестов l- грамм, отсечение слабых последовательностей и комплексный тест NIST.

3.2. Оценка линейной сложности

Концепция линейной сложности. Одной из первых аналитических мер качества поточных шифров стала линейная сложность (или линейный размах) шифрующей последовательности, которая определяется как длина L самого короткого регистра сдвига с линейной обратной связью, способного породить эту последовательность. Любая последовательность, сформированная конечным автоматом над конечным полем, имеет конечную линейную сложность. С помощью простого алгоритма БерлекампаМесси (БМ) можно воссоздать РСЛОС, проверив несколько символов гаммы. Определив нужный РСЛОС, можно взломать шифр.

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

33