Технології захисту інформації - копия
.pdf
в часі перетворення до окремих символів відкритого тексту. Як показує аналіз відкритої літератури та результати проведених криптографічних конкурсів [23; 60; 61], на сьогоднішній день реалізовано велику кількість різних методів – як поточних, так і блокових: DES, ORYX, RC2, RC4, RC5 (США), ГОСТ 28147-89 (Росія); Rijndael (Бельгія); SEAL, B-Crypt (Вели-
кобританія); A5, Camellia, Snow (Європа) і багато інших. При цьому переважна більшість блокових методів перетворення інформації поділяється на дві великі групи методів:
методи, побудовані на основі використання ланцюгів Фейстеля
(DES, DEAL, E2, LOKI97, RC6, Twofish, MARS);
методи, побудовані на основі чергування процедур перестановок і підстановок, так званих SPN – конструкцій (Square, Rijndael, SAFER,
Serpent, CRYPTON).
Методи симетричного криптографічного перетворення інформації
Методи блокового перетворення |
|
|
Методи потокового перетворення |
|
||||
|
|
інформації |
|
|
|
|
інформації |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Методи, побудовані на |
|
|
|
|
Методи, побудовані на основі |
|
|
|
основі використання |
|
|
|
|
схем з рівномірним рухом |
|
|
|
ланцюгів Фейстеля |
|
|
|
|
регістрів |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Методи, побудовані на основі |
|
|
|
Методи, побудовані на основі схем |
||
|
|
чергування процедур переста- |
|
|
|
|||
|
|
|
|
|
з нерівномірним рухом регістрів |
|||
|
|
новок і підстановок (SPN – схема) |
|
|
|
|||
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
Рис. 9.3. Класифікація методів симетричного криптографічного
перетворення інформації
Характерною особливістю обох конструкцій блочного криптографічного перетворення інформації є використання в якості шифруючих функцій операцій нелінійного перемішування (нелінійних S-блоків, або нелінійних вузлів заміни). Зазначимо, що в якості шифруючих функцій можуть також додатково використовуватися операції розсіювання (бітові Р-перестановки) і операції введення секретності (складання з ключем), однак нелінійні вузли замін є вузлами, визначальними стійкість перетворення інформації і їх використання характерно як для методів, що вико-
301
ристовують ланцюги Фейстеля, так і для методів, що використовують SPN-структури. В цілому можна констатувати [23; 40; 41; 48; 50 – 52; 61], що стійкість методів блочного криптографічного перетворення інформації базується, насамперед, на стійкості нелінійних вузлів замін.
Стійкість нелінійних вузлів замін, які здійснюють незворотні/важкозворотні нелінійні перетворення, визначають стійкість використовуваних методів в цілому. Тому першочергове значення для підвищення ефективності симетричних криптографічних засобів захисту інформації набуває розробка математичних моделей і обчислювальних методів формування нелінійних вузлів замін з покращеними властивостями.
Подана проблема не є характерною для методів потокового перетворення інформації. Ці методи засновані на використанні як нелінійних вузлів замін булевих функцій, методи формування яких широко обговорюються у відкритій пресі. З точки зору авторів, такий стан – відкритість методів формування нелінійних вузлів замін для методів потокового перетворення інформації і закритість методів формування нелінійних вузлів замін для методів блочного перетворення інформації – можна пояснити двома причинами. Перша причина полягає в тому, що до недавнього часу прерогатива розробки методів потокового перетворення інформації належала виключно європейським розробникам, у яких грань між закритими і відкритими дослідженнями є дуже тонкою, внаслідок чого багато розробки в області захисту інформації є загальнодоступними, а використовуваний математичний апарат широко відомий і повсюдно використовуваний. Друга ж причина полягає в тому, що методи блокового перетворення інформації розроблялися переважно у США в стінах науково-дослідних підрозділів спецслужб, що саме по собі виключало можливість проникнення розробок у відкриту пресу. Можна також припустити, що оскільки задача формування нелінійних вузлів замін для блокових методів значно складніше завдання побудови нелінійних булевих функцій, то досягнення в галузі побудови таких вузлів є чинниками, що визначають степінь захищеності інформаційних ресурсів корпорації/держави. Отже, володіння такими методами є одним з факторів, що визначають степінь успіху/могутності корпорації/країни в цілому, що позиціонує ці методи як стратегічно важливий інтелектуальний продукт, що не підлягає розголошенню.
Для потокових методів перетворення інформації ефективність вузла заміни оцінюється ефективністю безпосередньо нелінійної булевої
302
функції і не викликає проблем. Для блокових методів перетворення інформації ефективність вузла заміни може оцінюватися двома рівноцінними способами:
1.На основі оцінки ефективності протистояння вузла заміни криптоаналітичних атакам у термінах диференційних характеристик (ДХ) [23; 40; 41; 48; 50 – 52; 61]. Використовуються такі критерії, як граничне (максимальне) значення ймовірності r-циклової ДХ, ітеративна ДХ і т. д.
2.На основі оцінки ефективності протистояння вузла заміни криптоаналітичних атакам у термінах булевих функцій [23; 40; 41; 48; 50 – 52; 61] використовуються такі критерії, як нелінійність функції, її збалансованість і т. д.
Нелінійні вузли замін блокових симетричних криптографічних засобів захисту інформації подаються у вигляді обладнання перетворення, реалізованого за допомогою двох комутаторів (рис. 9.3). При
цьому один комутатор перетворює набір з n бітів (a1,a2,...,an ) в одну цифру за підставою 2n, інший комутатор виконує зворотне перетворення, тобто утворює набір з n бітів (b1,b2,...,bn ). Таке обладнання потенційно може замінити будь-який вхідний набір даних (a1,a2,...,an ) на будь-який вихідний набір (b1,b2,...,bn ). Нелінійний вузол заміни (S-блок), схема перетворення даних якого подана на рис. 9.4, містить 2n внутрішніх станів комутаторів, які можуть бути виконані 2n! різними способами. Це означає, що існує 2n! різних варіантів відповідних нелінійних вузлів (таблиць) замін.
|
|
S - блок |
|
|
n |
2n |
2n |
|
n |
a1 |
|
|
|
b1 |
a2 |
Мультиплексор |
|
Демультиплексор |
b2 |
a3 |
|
b3 |
||
... |
|
... |
||
|
|
|
||
an |
|
|
|
bn |
Рис. 9.4. Схема перетворення даних у нелінійному вузлі заміни
303
Формалізуємо процес перетворення даних у нелінійному вузлі замін за допомогою математичної моделі, що дозволяє описати його внутрішню структуру і адекватно оцінити основні показники його ефективності.
Як видно з рис. 9.4, процес перетворення даних у нелінійному вузлі замін у загальному випадку можна представити у вигляді деякого відображення:
: A B , |
(9.1) |
де А – множина можливих наборів (a1,a2,...,an ), що надходять на вхід S- блоку;
В – множина можливих наборів (b1,b2,...,bn ), що надходять на вихід S- блоку.
Властивості відображення (9.1) задаються внутрішньою структурою вузла заміни, тобто набором конкретних комутацій (з’єднань) виходів мультиплексора і входів демультиплексора.
Для формального аналітичного опису внутрішньої структури й оцінки властивостей нелінійного вузла замін пропонується математична модель як абстрактна сукупність наступних елементів (математичної символіки):
1. Множина вхідних векторів:
A |
|
|
|
,...,Ai,...,A |
|
m |
|
|
|
(i) |
(i) |
|
|
|
|
|
|
(i) |
A |
, |
a(i) GF(2) |
,i |
|
m |
||||||||||||
|
|
A1,A2 |
|
|
, Ai |
|
a1 |
,a2 |
,...,am |
|
|
|
j |
|
|
|
|
1,...,2 |
, |
|||||||||||||||||
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
j 1,...,m, |
|
A |
|
|
|
2m . |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
2. Множина вихідних векторів: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
B |
|
|
|
n |
|
|
,Bi |
|
(i) |
(i) |
|
|
|
|
|
|
(i) |
B, |
B(i) GF(2) |
,i |
|
|
m |
, |
||||||||||||
|
B1,B2,...,Bi,...,B |
|
|
|
|
B1 ,B2 ,...,Bn |
|
|
|
j |
|
|
|
1,...,2 |
||||||||||||||||||||||
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
j 1,...,m, |
|
|
B |
|
2n . |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
3. Множина відображень |
1, 2,..., i,..., m |
вхідних векторів з |
|||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 ! |
|
|
|
|
|
|
|
|
||
множини A в множину вихідних векторів В, тобто: |
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||
|
|
|
|
: А B , ,i 1,...,2m! , |
|
|
|
2m! . |
|
|
|
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||
|
|
|
|
i |
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
304
4. Кожне відображення i : А B з множини параметризується сукупністю компонентних криптографічних булевих функцій:
F f1 x1,...,xm ,f2 x1,...,xm ,...,fu x1,...,xm ,...,fn x1,...,xm ,u 1,...,n, F n.
Кожний елемент множини запишемо в алгебраїчній нормальній формі:
f |
|
|
|
|
|
|
|
c |
|
m |
|
|
|
c |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
,..., |
xm |
1,0 |
c |
1,i |
x |
i |
1,ij |
x |
x |
j |
|
... c |
1,12...m |
x |
x |
2 |
...x |
m |
; |
|
|||||||||||||||||
|
1 |
x1 |
|
|
|
|
i 1 |
|
1 i j m |
|
i |
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
c |
|
|
m |
|
|
|
c |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
f |
|
|
,..., |
xm |
|
|
c |
|
x |
|
|
|
x |
|
x |
|
... c |
|
|
x |
|
x |
|
|
...x |
|
|
; |
|
||||||||||
|
2 |
x1 |
|
|
|
|
2,0 |
i 1 |
2,i |
|
i |
1 i j m |
2,ij |
|
i |
|
|
j |
|
|
2,12...m |
1 |
|
|
2 |
|
|
m |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
... |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
, |
|
|
|
|
|
|
|
|
|
c |
|
|
m |
|
|
|
c |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(9.2) |
||
f |
|
x1 |
,..., |
xm |
|
|
c |
|
x |
|
|
|
x |
|
x |
|
... c |
|
|
x |
|
x |
|
|
...x |
|
|
; |
|
||||||||||
u |
|
|
|
|
|
u,0 |
i 1 |
u,i |
|
i |
1 i j m |
u,ij |
|
i |
|
|
j |
|
|
u,12...m |
1 |
|
|
2 |
|
|
m |
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
... |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
c |
|
|
m |
|
|
|
c |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
f |
|
x1 |
,..., |
xm |
|
|
c |
|
x |
|
|
|
x |
|
x |
|
... c |
|
|
x |
|
x |
|
|
...x |
|
|
. |
|
||||||||||
n |
|
|
|
|
|
n,0 |
i 1 |
n,i |
|
i |
1 i j m |
n,ij |
|
i |
|
|
j |
|
|
n,12...m |
1 |
|
|
2 |
|
|
m |
|
|
||||||||||
5. Система обмежень:
|
Сбf Сбf |
Сбf |
2 |
|
... Сбf |
Сбтр |
|
|
|
|||||
|
|
|
1 |
|
|
|
|
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
Nf min Nf ,Nf |
|
,...,Nf Nтр |
|
|
|
|
|||||
|
|
|
2 |
|
|
|
|
|||||||
|
|
|
|
|
1 |
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
КІf (k) min КІf |
(k),КІf |
(k),...,КІf |
(k) КІтр (k) |
|
|
|
|||||||
|
|
, |
(9.3) |
|||||||||||
|
|
|
1 |
|
2 |
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
КПf (k) min КПf (k),КПf |
|
|
|
|
|
|
|
|
|||||
|
(k),...,КПf |
(k) КПтр (k) |
|
|
||||||||||
|
|
|
1 |
|
|
2 |
|
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
AC |
|
max AC |
,AC |
,...,AC |
|
AC |
|
|
|
|
|||
|
f |
fn |
тр |
|
|
|
||||||||
|
|
|
|
f1 |
|
|
f2 |
|
|
|
|
|||
де Сбf ,Nf ,КІf (k),КПf (k), ACf – значення показників збалансованості, нелінійності, кореляційного імунітету, критерію поширення і автокореляції, відповідно, оцінені за критерієм мінімального ризику;
Сбfi ,Nfi ,КІfi (k),КПfi (k), ACfi – значення показників збалансованості,
нелінійності, кореляційного імунітету, критерію поширення і автокореляції булевої функції fi x1,...,xm , i 1,2,...,n ;Сбтр ,Nтр ,КІтр (k),КПтр (k) , ACтр –
305
необхідні значення показників збалансованості, нелінійності, кореляційного імунітету, критерію поширення і автокореляції відповідно.
|
|
|
|
|
6. Множина |
|
компонентних |
|
|
нелінійних |
булевих |
функцій |
|||||||||||||||||||||||||||||
|
|
f |
1 ,..., |
|
|
|
,f |
2 |
|
|
|
|
|
|
|
,...,f |
u |
|
|
|
|
,...,f |
2n 1 |
|
|
|
|
|
|
||||||||||||
F |
xm |
,..., |
xm |
,..., |
xm |
,..., |
xm |
як повна множина |
|||||||||||||||||||||||||||||||||
|
|
|
|
|
x1 |
|
|
x1 |
|
|
|
|
|
|
x1 |
|
|
|
|
|
x1 |
|
|
||||||||||||||||||
функцій, отриманих лінійною комбінацією булевих функцій fi x1,...,xm з |
|||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
n: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
множини F ,u 1,...,2n , |
F |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
1(x1,...,xm) f1(x1,x2,...,xm ) ; |
|
|
|
|
|
|
|
||||||||||||||||||||||
|
|
|
|
|
|
|
f |
|
|
|
|
|
|
|
|||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
f 2(x1,...,xm) f2(x1,x2,...,xm ) ; |
|
|
|
|
|
|
|
|||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
... |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
fn(x1,...,xm) fn(x1,x2,...,xm ) ; |
|
|
|
|
|
|
|
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(9.4) |
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
fn 1(x1,...,xm) f1(x1,x2,...,xm ) f2(x1,x2,...,xm ) ; |
|
|
|||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
... |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
f 2n 1(x1,...,xm) f1(x1,x2,...,xm ) f2(x1,x2,...,xm ) ... fn(x1,x2,...,xm ) . |
||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
7. Система обмежень: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
Сб *f Сбf 1 |
Сбf 2 |
... Сбf 2n 1 Сб *тр |
|
|
|
|
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
min Nf 1 ,Nf 2 ,...,Nf 2n 1 N *тр |
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
N *f |
|
|
|
|
|
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(k),КІ |
(k),...,КІ |
|
|
|
|
КІ *тр |
(k) |
|
|
||||||||||
|
|
|
|
|
|
КІ *f (k) min КІ |
|
|
|
(k) |
|
|
|||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
f 1 |
|
|
f |
2 |
|
|
|
f 2n 1 |
|
|
|
|
|
|
(9.5) |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(k),КП |
(k),...,КП |
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
КП *f (k) min КП |
|
|
(k) КП *тр (k) |
|
|||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
f 1 |
|
|
|
f 2 |
|
|
|
|
|
f 2n 1 |
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
AC *f |
max |
|
|
|
,AC |
,...,AC |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
AC |
|
f 2n |
AC *тр |
|
|
|
|
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
f 1 |
|
|
f 2 |
|
|
|
1 |
|
|
|
|
|
|
|
||||||
де Сб *f |
,N *f ,КІ *f (k) ,КП *f (k), |
AC *f |
– значення показників збалансова- |
||||||||||||||||||||||||||||||||||||||
ності, нелінійності, кореляційного імунітету, критерію поширення і автокореляції компонентних булевих функцій, відповідно, оцінені за критерієм мінімального ризику;
306
Сбf i ,Nf i ,КІf i (k),КПf i (k), ACf i – значення показників збалансованості, нелінійності, кореляційного імунітету, критерію поширення і автокореляції компонентної булевої функції fl x1,...,xm , i 1,2,...,2n 1;
Сб *тр ,N *тр ,КІ *тр (k),КП *тр (k), AC *тр – необхідні значення показників збалансованості, нелінійності, кореляційного імунітету, критерію поширення і автокореляції до компонентних булевих функцій відповідно.
Усі функції з множини F задовольняють систему обмежень (9.1). Вузли замін, відповідно до запропонованої моделі, задаються значен-
нями |
функцій |
fu x1,...,xm , u 1,...,nз множини |
F , тобто |
значення |
на |
||||||||||||||
виході S-блоку задаються сукупністю рівностей: |
|
|
|
|
|
|
|
||||||||||||
|
|
|
a(l),...,a(l) c |
|
m |
|
a(l) |
c |
a(l)a(l) |
... c |
|
|
a(l)a(l)...a(l); |
||||||
b(l) f |
|
c |
|
|
|
||||||||||||||
|
1 |
1 |
1 |
m |
|
|
1,0 |
i 1 |
1,i |
i |
1 i j m |
1,ij i |
j |
|
1,12...m 1 |
2 |
m |
||
|
|
f2 a1(l),...,am(l) c2,0 |
m |
|
|
|
|
|
|
|
|
|
|
|
|||||
|
c |
2,iai(l) |
c2,ijai(l)a(l)j |
... c2,12...ma1(l)a(l)2 ...am(l); |
|||||||||||||||
b(l)2 |
|||||||||||||||||||
|
|
|
|
|
|
|
|
i 1 |
|
|
1 i j m |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
... |
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
f a(l),...,a(l) |
c |
|
|
m |
|
|
c a(l)a(l) |
|
|
|
|
|
|
||||
b(l) |
|
|
|
|
|
|
|
|
|
|
|||||||||
u,0 |
c |
|
a(l) |
... c |
|
a(l)a(l)...a(l); |
|||||||||||||
|
u |
u |
1 |
m |
|
i 1 |
u,i i |
1 i j m |
u,ij i |
j |
|
|
u,12...m 1 |
2 |
m |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
... |
|
|
|
|
|
|
|
|
||
|
|
fn a1(l),...,am(l) cn,0 |
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
m |
|
|
cn,ijai(l)a(l)j |
|
|
|
|
|
|
||||||||
bn(l) |
cn,iai(l) |
... cn,12...ma1(l)a(l)2 ...am(l). |
|||||||||||||||||
|
|
|
|
|
|
|
|
i 1 |
|
|
1 i j m |
|
|
|
|
|
|
|
|
Будь-яка функція:
fu x1,...,xm F f1 x1,...,xm ,f 2 x1,...,xm ,...,f 2n 1 x1,...,xm ,
u 1,2,...,2n 1,
отримана лінійною комбінацією функцій:
fl(x1,x2,...,xm ) fi(x1,x2,...,xm ) fj(x1,x2,...,xm ) ... fs(x1,x2,...,xm ) , fi(x1,x2,...,xm ),fj(x1,x2,...,xm ),...,fs(x1,x2,...,xm ) F,
задовольняє систему обмежень (9.1) із граничними значеннями Сб *тр ,N *тр ,КІ *тр (k),КП *тр (k), AC *тр .
307
Таким чином, математична модель нелінійних вузлів замін блокових симетричних засобів захисту інформації на основі аналітичного опису основних структурних компонентів системи, що накладає обмеження з нелінійності, збалансованості, кореляційного імунітету, критерію поширення і автокореляції, дозволяє термінами булевої алгебри описувати внутрішню структуру нелінійних вузлів замін і оцінювати основні показники їх ефективності.
9.3. Проблеми генерування випадкових та псевдовипадкових послідовностей
9.3.1. Вимоги до генераторів випадкових та псевдовипадкових послідовностей
Генерування випадкових та псевдовипадкових послідовностей – це необхідний і надзвичайно важливий елемент криптографічних застосувань. Більше того, від якості генераторів, апаратних чи програмних, багато в чому залежить якість самої криптосистеми. Неякісний генератор випадкових послідовностей може піддаватися атакам зловмисників, бути причиною утворення слабких криптографічних ключів. Тому важливість якісного генерування криптографічно стійких послідовностей важко переоцінити.
Криптографічні послідовності використовують в разі: генерування ключів симетричних та асиметричних криптосистем; генерування цифрових підписів; реалізації переважної кількості криптографічних протоколів;
автентифікації, що ґрунтується на криптографічних засобах; потокового шифрування інших криптографічних застосувань.
Послідовності можна розділити на 2 класи: істинно випадкові
(далі будемо називати їх випадковими) та псевдовипадкові.
Випадкові послідовності, як правило, породжуються апаратними або комбінованими, програмно-апаратними засобами, які використовують в якості генеруючого пристрою датчики фізичних величин. Дані, які постачають датчики фізичних величин, обробляються або електронними засобами, або програмними рішеннями, які, власне, і виробляють двійкові послідовності.
308
Псевдовипадкові послідовності, як правило, генеруються програмним чином.
Відмінності між істинно випадковими та псевдовипадковими послідовностями дуже значні. Основна відмінність, найважливіша, полягає в тому, що псевдовипадкова послідовність – періодична. Іншою важливою відмінністю є те, що за однакових початкових умов псевдовипадкова послідовність буде однаковою.
Два ці недоліки псевдовипадкових послідовностей необхідно враховувати при проектуванні криптографічних систем, що використовують такі генератори.
Проектування криптографічно стійких псевдовипадкових послідовностей – дуже важлива криптографічна задача, що стала вже цілою індустрією. Прийнято вважати [23; 33; 43; 45], що стійкий псевдовипадковий генератор, який можна сміливо використовувати у найскладніших криптографічних застосуваннях, повинен мати період ≥ 2256.
Генератори випадкових послідовностей. На ринку немає дешевих апаратних засобів генерування справді випадкових послідовностей, що використовують результати вимірювання певної фізичної величини. Як правило, для побудови таких генераторів можна використати датчик практично довільної фізичної величини, що вимірює її значення з великою точністю:
температури навколишнього середовища; рівня радіоактивності; рівня сейсмічної активності; рівня освітленості;
опору еталонного резистора; інших фізичних величин.
Схема обробки опитує датчик з деякою періодичністю та використовує отримані дані для формування двійкової випадкової послідовності.
У подальшому сигнал може використовувати програмна (або апаратна) реалізація криптографічного пристрою для різних використань.
Перевагами фізичних генераторів випадкових послідовностей можна вважати таке:
1)відсутність періодичності послідовності, що генерується;
2)неможливість отримання однакових послідовностей навіть при однакових зовнішніх умовах.
309
Отже, проектування та реалізація генератора випадкових послідовностей такої схеми – складне і нетривіальне інженерне завдання, причому найскладнішою частиною можна вважати саме датчик фізичної величини, який повинен вимірювати цю величину з максимально можливою точністю.
Однак в якості датчика можна використати будь-який комп’ютер. Непоганими схемами можна вважати генерування випадкових
послідовностей з використання клавіатури або мишки [23; 43].
Перша схема працює таким чином. Програмне забезпечення "просить" користувача набирати на клавіатурі будь-яку інформацію (краще беззмістовний набір символів) на деякий проміжок часу. ПЗ аналізує дії користувача і може використовувати їх, як мінімум, у два різних способи. Перший спосіб полягає в тому, що для генерування випадкової послідовності використовуються проміжки часу, виміряні або у "тіках" процесора, або у мілісекундах між послідовними натисканнями на клавіші. Цей час у двійковому представленні обробляється певним чином, наприклад, виконується додавання усіх розрядів за модулем 2 і на вихід подається черговий біт послідовності. При такому використанні не має значення, що саме набирає користувач на клавіатурі. Другий спосіб обробки отриманої інформації полягає у тому, що ПЗ використовує саме символи, які набирає користувач. У цьому разі буде краще, якщо користувач набиратиме невпорядкований набір символів. Двійкове представлення чергового символу піддається деякій обробці (у найпростішому випадку це може бути та сама сума усіх розрядів за модулем 2, чи вибірка молодших або старших розрядів цього представлення з наступним їх додаванням за модулем 2 тощо) та на вихід подається біт (або кілька бітів) випадкової двійкової послідовності.
Мишку можна використати у такий спосіб. При необхідності генерування випадкової послідовності, наприклад, для створення криптографічного ключа, на екран комп’ютера виводиться форма, на якій у випадковому порядку з’являється об’єкт. Користувача просять клацнути мишкою на цьому об’єкті. ПЗ вимірює проміжки часу між послідовними клацаннями мишкою та, обробляючи двійкове представлення цього проміжку, генерує черговий біт випадкової послідовності. Після генерування потрібної кількості двійкових знаків форма зникає.
Перевагами таких способів генерування двійкових послідовностей є відносна простота їх реалізації. Для цього окрім комп’ютера, програмного
310
