Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Lab_5_AOK_1

.pdf
Скачиваний:
24
Добавлен:
12.02.2016
Размер:
537.21 Кб
Скачать

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”

ГЕНЕРАТОРИ ПСЕВДОВИПАДКОВИХ ПОСЛІДОВНОСТЕЙ НА ОСНОВІ РЕГІСТРІВ ЗСУВУ З ЛІНІЙНИМ ЗВОРОТНИМ ЗВЯЗКОМ

МЕТОДИЧНІ ВКАЗІВКИ ДО ЛАБОРАТОРНОЇ РОБОТИ № 5 З ДИСЦИПЛІНИ “АЛГОРИТМІЧНІ ОСНОВИ КРИПТОЛОГІЇ” для студентів базового напряму

6.170101 “Безпека інформаційних і комунікаційних систем”

Затверджено на засiданнi кафедри “Безпека інформаційних технологій”, протокол № 13 від 28.05.2012 р.

Львів – 2012

Генератори псевдовипадкових послідовностей на основі регістрів зсуву з лінійним зворотним зв’язком: Методичні вказівки до лабораторної роботи №5 з дисципліни “Алгоритмічні основи криптології” для студентів базового напряму 6.170101 “Безпека інформаційних і комунікаційних систем” /Укл.: А.Е.Лагун, Ю.М.Костів - Львів: НУЛП 2012. - 15 с.

Укладачі: А.Е.Лагун, к.т.н., доцент Ю.М.Костів, асистент

Відповідальний за випуск:

Л.В. Мороз, к.т.н., доцент

Рецензент: В.М.Максимович, д.т.н., професор

Мета роботи - вивчити основні методи реалізації генераторів псевдовипадкових послідовностей та ознайомитись з методами аналізу з використанням статистичних тестів та навчитися розробляти програмне забезпечення для реалізації перерахованих алгоритмів на комп’ютері.

1.ОСНОВНІ ТЕОРЕТИЧНІ ВІДОМОСТІ

1.1.Регістри зсуву

Переважна більшість запропонованих до теперішнього часу генераторів потокового шифрування будуються на основі регістрів зсуву, а точніше, на РЗЛЗЗ - регістрах зсуву з лінійним зворотним зв'язком. Це зумовлено трьома основними причинами:

-послідовності, які генерують РЗЛЗЗ, мають хороші статистичні властивості;

-їх поведінка легко аналізується з використанням алгебри;

-їхні структури легко піддаються програмній та апаратній реалізації. Регістр зсуву із зворотним зв'язком складається з двох частин: регістра

зсуву і функції зворотного зв'язку. Регістр зсуву - це послідовність бітових комірок, тому довжину регістра виражають в бітах: якщо регістр складається з r комірок, то говорять, що це r-бітовий регістр зсуву. Кожного разу, коли генерується новий біт, всі біти регістра зсуваються на одну позицію вправо. Новий лівий біт обчислюється як функція від інших біт регістра, конкретний вигляд функції залежить від використовуваного зворотного зв'язку. Виходом регістра зсуву в кожному такті є 1 біт, часто це наймолодший біт регістра. Період регістра зсуву – це довжина вихідної послідовності до того моменту часу, поки вона почне повторюватися.

Найпростішим типом регістрів зсуву є регістр зсуву з лінійним зворотним зв'язком або РЗЛЗЗ (рис.1). Двійкові псевдовипадкові періодичні послідовності, що генеруються з використанням регістрів зсуву з лінійним зворотним зв'язком, називаються РЗЛЗЗ-послідовностями або лінійними рекурентними послідовностями.

Від певних комірок регістра робляться відведення, або точки знімання, вміст цих комірок додається за модулем 2, а сума повертається в першу комірку регістра зсуву. (На рис.1 qi {0,1} позначають наявність або відсутність точки відведення у даної комірки. Символ позначає операцію сума за mod 2.)

Рис.1. Регістр зсуву з лінійним зворотнім зв’язком

Регістри зсуву з лінійним зворотним зв'язком використовуються для високошвидкісної апаратної реалізації, легко моделюються на програмному рівні.

Розглянемо основні властивості алгебри регістрів зсуву з лінійним

зворотним зв'язком.

 

 

 

 

 

 

 

 

 

 

 

1.

У РЗЛЗЗ

довжини r

 

відведення комірок q1, q2 ,

...., qr

відповідають поліному зворотного зв'язку

 

 

 

 

 

q X

q

r

X r

q

r

1

X r 1

... q X

1

(1)

 

 

 

 

 

 

 

1

 

 

з

коефіцієнтами

qі .

Період

і

багато

інших

властивостей

РЗЛЗЗ-

послідовності можуть бути виражені в термінах теорії Галуа стосовно заданого многочлена.

2.

Нескінченна

послідовність

a a0 , a1, a2...

може

бути

ідентифікована за допомогою функції, що її породжує A X

i 0 ai X i , яка

єелементом кільця степеневих рядів з цілочисельними коефіцієнтами за mod 2.

3.Розмір найменшого РЗЛЗЗ, що породжує задану періодичну послідовність а, називається лінійною складністю або еквівалентним лінійним

розмахом а (і позначається span(a)); цей параметр є мірою криптографічної стійкості послідовності. Такий регістр зсуву (мінімального розміру) може бути знайдений ефективним способом за допомогою алгоритму Берлекампа-Мессі.

4.Функція побітової суми двох двійкових псевдовипадкових

послідовностей a

a0 , a1, a2 , ... i b b0 , b1, b2 , ... задається сумою

C X A X B X

у кільці степеневих рядів. Якщо а і b періодичні, то такою

ж буде і побітова сума C X , а її еквівалентний лінійний розмах не перевищує суми лінійних розмахів а і b.

5.За визначенням, m-послідовність - це послідовність РЗЛЗЗ

максимально можливого періоду T 2r 1 (де r - кількість комірок регістра). Крім того, відомо, що m-послідовності - це послідовності, які генеруються регістрами з примітивними поліномами зворотного зв'язку. Такі послідовності збалансовані (мають однакову кількість нулів і одиниць) і мають властивість

де Брюїна: у кожному окремому періоді m- послідовності довільна ненульова підпослідовність довжини r з'являється лише один раз.

Багато сучасних потокових шифрів сконструйовані на основі комбінування виходів від декількох РЗЛЗЗ різними нелінійними способами.

1.2 Регістри Фібоначчі і Галуа, їх програмна реалізація.

Як правило, в реальних криптосхемах регістри зсуву з лінійним зворотним зв'язком реалізуються на регістрах Фібоначчі або Галуа, проте всі найбільш важливі теоретичні правила справедливі для обох типів.

Регістри Фібоначчі (рис.1). Функція зворотного зв'язку – це додавання операцією XOR певних біт регістра.

Для прикладу візьмемо многочлен x32 x7 x5 x3 x2 x 1. Це означає, що якщо взяти 32-бітовий регістр зсуву і генерувати нові біти XORдодаванням тридцять другого, сьомого, п'ятого, третього, другого і першого бітів, то результуюча послідовність матиме максимальний період - вона пройде

через 232 1 значення до того, як почне повторюватися.

РЗЛЗЗ в програмній реалізації працюють досить повільно, і швидкість можна збільшити застосуванням для програмування мови Асемблер замість Сі. Ще одне можливе рішення - запускати 16 РЗЛЗЗ (або 32, залежно від розміру слова в комп'ютері) у паралельному режимі. Така схема використовує масив слів таким чином, що кожна бітова комірка регістру представлена окремим РЗЛЗЗ. За умови, що всі вони мають один і той же поліном зворотного зв'язку, така схема працює досить швидко. У загальному випадку найкращий спосіб оновлювати стани регістрів зсуву - це множити поточний стан на відповідні двійкові матриці.

Регістри Галуа. У РЗЛЗЗ можна модифікувати схему зворотного зв'язку перетворивши регістр в так звану "конфігурацію Галуа". Не можна сказати, що результуючий генератор стає кращим з криптографічної точки зору, але він теж може мати максимальний період і простий в програмній реалізації. У цій схемі замість використання біт з точок знімання для генерації нового найлівішого біта, до кожного біта з точки знімання і виходу генератора застосовується операція XOR і результат замінюється сумою, що вийшла; потім вихід генератора стає новим самим лівим бітом. Таким чином, на відміну від регістру Фібоначчі, де зворотний зв'язок є функцією від всіх комірок в регістрі, а результат поміщається в найлівішу комірку, зворотний зв'язок в регістрі Галуа потенційно застосовний до кожної комірки регістра, хоча є функцією тільки від значення найправішої комірки.

Вихідний b 9 b 8 b7 b 6 b 5 b4 b 3 b 2 b 1 b0 біт

Рис.2. Схема регістру Галуа з лінійним зворотним зв’язком

Виграш в тому, що всі операції XOR можна виконувати як одну операцію. Цю схему також можна розпаралелювати, а окремі многочлени зворотного зв'язку можуть бути різні. Крім того, конфігурація Галуа може працювати швидше і при апаратнії реалізації.

Таким чином, якщо використовується елементна база з швидкою реалізацією зсуву, то слід звернутися до регістрів Фібоначчі; якщо ж є можливість застосувати розпаралелювання, то кращий вибір - регістр Галуа.

При програмній реалізації найшвидшими є примітивні тричлени, оскільки для генерації кожного нового біту послідовності додаються всього два біти.

1.3. Статистичні тести

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

За останні двадцять років розроблено велику кількість статистичних тестів для аналізу того, наскільки послідовність здатна демонструвати випадкову поведінку. Використовувані методи для дослідження випадковості двійкової гами довжини N, перевіряють нульову гіпотезу, згідно з якою послідовність одержана на основі N випробувань схеми Бернуллі з ймовірністю появи одиниці, рівній одній другій в кожному випробуванні.

З теоретичної точки зору, проблема тестування виглядає наступним чином. Статистичний тест T для серії, що виробляється генератором

послідовностей довжини N - це функція T: B N {"прийняти", "відкинути"},

яка розділяє множину B N

двійкових послідовностей довжини N s N

s ...s

N

 

 

1

на "погані" або "невипадкові" послідовності

 

 

ST

{s N : T (s N ) "відкинути"} B N

(2)

і решту послідовностей – "хороші" або "випадкові".

Ймовірність того, що вироблена генератором послідовність буде відкинута

ST

У реальних тестах

повинно бути невеликим, наприклад

 

2N

 

 

Для перевірки послідовності великої довжини N довільний статистичний тест T неможливо реалізувати, перевіряючи всю множину ST . Тому статистичний тест реалізують шляхом задання ефективно-обчислюваної тестової функції (статистики) fT , яка відображає двійкові послідовності

довжини N в дійсні числа. Тобто, якщо позначити R N послідовність з N статистично незалежних і симетрично розподілених двійкових випадкових

величин, то можна визначити ймовірнісний

розподіл

випадкової

величини

fT (R N ) , що приймає дійсні значення. Для

 

fT

задають верхній і нижній пороги

t1 і t2 такі, що

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P[ f

T

(R N )

t ] P[ f

T

(R N )

 

 

t

2

]

 

 

 

 

(3)

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Звичайно,

P[ f

T

(R N )

 

t ]

 

P[ f

T

(R N )

t

2

]

 

 

/ 2

.

 

S

T

"поганих"

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

послідовностей з потужністю

 

ST

 

 

2 N

задаються співвідношенням

 

 

 

 

 

 

S

T

={ s N

 

B N : f

T

(R N )

 

t

або f

T

(R N )

t

2

}

 

(4)

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

Як правило,

fT

 

підбирають так, щоб

fT ( R N ) була розподілена відповідно

до одного з відомих ймовірнісних розподілів. Найчастіше це нормальний розподіл або розподіл -квадрат з d ступенями свободи (де d - деяке додатне ціле число). Оскільки для цих розподілів доступні числові таблиці, то подібний вибір істотно спрощує визначення порогів t1 і t2 при заданих і N. Нормальний закон розподілу використовують в тих випадках, коли підсумовується велика кількість незалежних і ідентично розподілених випадкових величин. Розподіл - квадрат з d ступенями свободи - коли підсумовуються квадрати d незалежних і нормально розподілених випадкових величин з нульовим середнім і дисперсією рівною 1.

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

генераторів (псевдо-) випадкових біт.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.3.1. Частотний тест

 

 

 

 

Статистичний тест T

, в якому тестовий параметр

f

T

(S N )

визначається

F

 

 

 

 

 

 

 

 

 

 

 

 

 

так

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(S N )

2

N

 

 

N

 

 

 

 

 

f

 

 

s

 

 

 

 

(5)

 

T

 

 

 

t

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

N

 

 

 

 

 

 

 

F

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i 1

 

 

 

 

 

 

 

 

Кількість "одиниць" у випадковій послідовності R N R ,..., R

N

1

розподілене у відповідності з біноміальним законом розподілу, добре

апроксимується нормальним законом розподілу з середнім

N

і дисперсією

N

,

 

 

 

 

 

 

2

4

 

оскільки E[R ]

 

1

і D[R ]

1

1 i N . Таким чином, ймовірнісний розподіл

i

2

i

4

 

 

 

 

 

 

 

 

 

 

 

 

статистики fT

(R N ) при

достатньо великих N добре

апроксимується

F

 

 

 

 

 

 

 

 

 

нормальним законом розподілу з нульовим середнім і одиничною дисперсією,

а прийнятними межами будуть значення t2

t1 2.5...3.

 

 

 

 

1.3.2. Послідовний тест

 

 

 

У послідовному тесті T

з параметром L, послідовність

s N

ділиться на

N

 

S

 

 

 

L

 

 

 

 

 

послідовних блоків довжиною L (наприклад L=8), і визначається число ns (s N )

появ двійкового представлення цілого числа i

для 0 i

2L

1

Статистика

тесту визначається так

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

L 2L

2

L

1

 

 

 

 

N

2

 

 

 

 

 

 

 

 

 

 

s n

 

 

s n

 

 

 

 

 

 

 

(6)

 

f

TS

 

 

 

 

 

 

n

t

 

 

 

 

 

 

 

 

 

 

N

 

 

 

 

 

 

L 2L

 

 

 

 

 

 

 

 

 

 

 

t

0

 

 

 

 

 

 

 

 

 

При використанні

 

тесту

 

хі-квадрат

 

рекомендується, щоб очікувані

значення щонайменше дорівнювали 5, тобто щоб

 

 

N

5 . Таким чином, при

 

 

 

 

 

L 2L

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

вибраній довжині L розмір масиву для аналізу повинен складати 5

L

2L біт.

 

 

 

 

 

 

 

1.3.3. Тест серій

 

 

 

 

 

 

У тесті серій TR

 

 

з параметром

 

L для послідовності

s N

визначається

nt0 (s N ) - кількість 0-серій довжиною i і, аналогічно, nt1 (s N )

- кількість 1-серій

довжини i для 0 i

L (наприклад L = 15). Статистика тесту визначається так:

 

 

 

 

 

(s N )

 

 

 

 

L

 

(nb (s N ) N / 2i 2 )2

 

 

 

 

 

fT

 

 

 

 

 

 

 

 

і

 

 

 

 

 

 

 

 

 

 

(7)

 

R

b

{0,1} і

1

 

 

N / 2

i 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ймовірнісний

розподіл

 

fT

(RN )

при

 

 

великих

N

дуже

добре

 

 

 

 

 

 

 

 

R

 

 

 

 

 

 

 

 

 

 

 

 

 

 

апроксимується розподілом 2 з 2-ма ступенями свободи, оскільки члени суми

- квадрати незалежних випадкових величин, розподілених нормально з нульовим середнім і одиничною дисперсією.

 

 

1.3.4. Автокореляційний тест

 

 

Для початкової послідовності s N s ,..., s

N

"автокореляційним тестом з

 

 

 

1

 

 

 

затримкою

"

називають

частотний

 

тест

для

послідовності

s1 s1 , s2

s2

,...,sN де

означає додавання за модулем 2. Даний тест

використовується для виявлення можливих кореляцій між бітами послідовності на відстані .

1.3.5. Універсальний тест

Розглянемо два складніші тести, запропоновані для криптографічного аналізу псевдовипадкових послідовностей. У цих тестах розглядаються заходи, пов'язані з появою кожної можливої двійкової структури (патерну) заданої довжини l. Відрізки беруться як двійкові l-грами, що не перекриваються, накладаються з шифропослідовностями. Універсальний тест вимірює відстань від останньої появи двійкової l-грами; тест повторень вимірює кількість повторень двійкових l-грам.

У випадку, коли аналізована послідовність розбита на блоки довжини l, даний алгоритм задає статистику, яка обчислюється шляхом підсумовування логарифмів (log2 ) відстаней до останньої появи кожної l-грами тестованої

послідовності. Цей тест задається двома цілочисельними параметрами Q і K сума яких дорівнює загальній кількості l-грам в досліджуваній послідовності гамми. Q це кількість блоків ініціалізації (l-грам), які використовуються для

початкового заповнення табличного масиву Tab розміром 2l . Значення Tab – це позиції останньої появи кожної із спостережуваних в послідовності l-грам. Якщо який-небудь патерн l-грами не з'явився в процесі ініціалізації, тоді його

Tab встановлюється в нуль. Рекомендовано, щоб Q 10 2l . Параметр K представляє кількість блоків для тестування. Рекомендовано, щоб він був

настільки великим, наскільки

це можливо

(K 1000

2l ) . Тестова функція

задається так:

 

 

 

 

 

1

Q K

 

 

f

log2 (i

Tab[s(i)])

(8)

 

K

 

i Q 1

 

 

де Tab[s(i)] - це значення з Tab або остання позиція, що спостерігалася, в потоці двійкових l-грам для даного патерну s(i), відміченого на позиції i.

Значення матсподівання E( f ) і дисперсії D( f ) функції f , зведені Маурером в таблицю і обчислені з припущенням, що s(i) незалежні. Для дисперсії також введено множник

c(L, K ) 0.7

0.8

(4

32

)K 3/ l /15

(9)

 

 

 

 

l

 

l

 

Остаточна статистика:

z

f

E( f )

 

(10)

 

 

 

 

 

 

 

 

c(L, K ) D( f )

порівнюється з випадковою величиною стандартного нормального розподілу. Це двохсторонній тест. Мінімальна довжина шифропослідовності, необхідна

для цього тесту, складає l (10 2l 1000 2l ) біт.

Таблиця 1. Значення математичного сподівання і дисперсії для універсального тесту

l

E(f)

D(f)

l

E(f)

D(f)

 

 

 

 

 

 

1

0,7326495

0,690

9

8,1764248

3,311

2

1,5374383

1,338

10

9,1723243

3,356

3

2,4016068

1,901

11

10,170032

3,384

4

3,3112247

2,358

12

11,168765

3,401

5

4,2534266

2,705

13

12,168070

3,410

6

5,2177052

2,954

14

13,167693

3,416

7

6,1962507

3,125

15

14,167488

3,419

8

7,1836656

3,238

16

15,167379

3,421

 

 

 

 

 

 

1.3.6. Тест повторень

Цей тест для аналізу l-грам запропонований австралійськими криптографами Густафсоном і Доусоном. Тест є результатом апроксимації розподілом Пуассона класичного завдання про розміщення в певних умовах, коли кількість можливих урн дуже велика. У конструкції тесту береться до уваги кількість порожніх урн, а використовувана міра підраховує кількість урн, що повторюються, в тестованої послідовності з R урн (або l-грам).

У класичному завданні про розміщення розглядається експеримент, що полягає у киданні R куль випадковим чином в N урн, так що ймовірність попадання кожної кулі в будь-яку конкретну урну складає 1/N. Кількість

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]