You are on page 1of 19

IV.

Блокові та потокові шифри


Версія 1.13++

VI.1. Схеми блокового шифрування та сучасні блокові шифри

Як ми бачили при дослідженні властивостей класичних шифрів, майже всі вони


успішно атакуються завдяки тим чи іншим уразливостям навіть у найслабшій моделі атаки за
шифротекстом – в першу чергу, завдяки витоку інформації про відкритий текст у шифртекст.
При використанні ж моделей атаки із відомими відкритими текстами стійкість класичних
шифрів прямує до нуля.
Клод Шеннон вперше намагався формалізувати вимоги до шифросистем, за
виконання яких відомі на той час методи статистичного криптоаналізу виявились б
незастосовними. Зокрема, Шеннон визначив дві основні характеристики надійного
алгоритму шифрування:
1) розсіювання (confusion): повне розпорошення статистичних характеристик
відкритого тексту у шифротексті; в ідеалі множина шифротекстів повинна мати максимально
можливу ентропію, а всі можливі статистики на ній – мати рівномірний розподіл;
2) перемішування (diffusion): кожен біт шифртексту повинен якомога складнішим
чином залежати як від всіх бітів відкритого тексту, так і від всіх бітів ключа.
Розсіювання забезпечують перетворення, що мають високий кореляційний імунітет, а
перемішування – перетворення із високою нелінійністю, великим алгебраїчним степенем та
лавинними ефектами. Оскільки ці властивості суперечать одна одній, Шеннон запропонував
комбінувати перетворення (ітерації), кожне з яких забезпечувало б ту чи іншу властивість, у
кількості, необхідній для досягнення стійкості. Так з’явилась концепція ітеративних шифрів.
Отже, ітеративний шифр – це шифруюче перетворення Y  EK (X ) , що складається із
послідовних шифруючих відображень (раундів або циклів):

EK ( X )  Fk(rr ) ( Fk(rr11) (...( Fk(22) ( Fk(11) ( X )))...)) ,

де r – кількість раундів. Раундові відображення Fk(ii ) можуть бути довільними, але більшість
сучасних шифрів використовує однакові за структурою раунди. Раундові ключі ki
генеруються із ключа шифрування K за допомогою окремої процедури – схеми генерування
раундових ключів (key schedule): KS ( K )  (k1 , k2 , ..., kr ) . До цієї процедури висувається
вимога, щоб раундові ключі були статистично нерозрізнюваними із послідовністю
випадкових незалежних рівноімовірних ключів. На рисунку 4.1 наведено загальний вигляд
r-раундового ітеративного шифру.
Першою схемою шифрування, яка втілювала ідеї Шеннона та мала властивості
розсіювання та перемішування, була підстановочно-перестановочна мережа, або просто
SP-мережа (substitution-permutation network, SPN). У SP-мережі кожен раунд складається із
трьох операцій:
– додавання із раундовим ключем (найчастіше – за допомогою операції побітового
додавання );
– нелінійна заміна: вхідний блок розбивається на підблоки, кожен з яких
замінюється згідно спеціальних таблиць, що мають назву S-блоків (від англ.
substitution boxes);
– лінійне перетворення: вхідний блок перетворюється у вихідний за допомогою
деякого відображення, яке перемішує біти виходів S-блоків між собою.

1
K Ключовий розклад X

k1 F(1)

k2 F(2)

k3 F(3)

...
kr F(r)

Y
Рисунок 4.1 – Загальний вигляд ітеративного блочного шифру.

Формально SP-мережу можна описати так. Нехай n  m  u і кожен бітовий вектор


x  Vn розглядається також як x  ( x1 , x2 , ..., xm ) , xi  Vu . Тоді SP-мережа – це ітеративний
блочний шифр, один раунд якої має вид

F : Vn  K  Vn ,
Fk ( x)  L(S ( x  k )) ,

де L – лінійне перетворення, S  (s1, s2 , ..., sm ) – шар нелінійних S-блоків si : Vu  Vu , що


застосовуються до окремих частин входу: S ( x)  (s1 ( x1 ), ..., sm ( xm )) .
У SP-мережах можуть використовуватись як однакові, так і різні S-блоки. В якості
лінійних перетворень спочатку використовувались бітові перестановки, однак сучасні шифри
застосовують більш складні відображення, що мають значно кращі криптографічні
властивості. Наприкінці шифрування до шифртексту обов’язково додається спеціальний
раундовий ключ; часто з останнього раунду вилучається лінійне перетворення.
Розшифрування відбувається шляхом зворотного застосування всіх операцій; звідси
випливає, що і S-блоки, і лінійне перетворення повинні бути бієктивними функціями.
Діаграма шифрування та розшифрування у SP-мережі наведена на рисунку 4.2.

Å K1 Å Kr
-1 -1 -1
S1 S2 S3 S4 S5 S6 S7 S8 S 1 S2 S 3 S4-1 S5-1 S6-1 S7-1 S8-1
L Å Kr-1
Å K2 L-1
S1 S2 S3 S4 S5 S6 S7 S8 S1-1 S2-1 S3-1 S4-1 S5-1 S6-1 S7-1 S8-1
L ...
... Å K2
Å Kr-1 L-1
S1 S2 S3 S4 S5 S6 S7 S8 S1-1 S2-1 S3-1 S4-1 S5-1 S6-1 S7-1 S8-1

Å Kr Å K1

Рисунок 4.2 – Діаграми шифрування (ліворуч) та розшифрування (праворуч) SP-мережі.


2
Іншою відомою схемою шифрування стала схема Фейстеля, названа так на честь
співробітника IBM Хорста Фейстеля, який розробив її під час створення одного с перших
сучасних блочних шифрів – алгоритму LUCIFER. В подальшому схема Фейстеля лягла в
основу шифру DES, що й спричинило її популярність.
В схемі Фейстеля вхідний блок даних розбивається на дві половини: X  ( x, y) , і
шифруюче перетворення застосовується лише до однієї з них. Більш формально, схема
Фейстеля має такий вигляд:

Ek ( X )  swap( Fk r ( Fk r 1 (...Fk1 ( x, y)...))),


Fk ( x, y)  ( y, x  f k ( y)) ,

де f – раундове шифруюче перетворення. Наприкінці шифрування половини блоку


шифртексту міняються місцями: swap( x, y)  ( y, x) . Можливі діаграми одного раунду схеми
Фейстеля наведено на рис. 4.3.

x y x y

f f k

Рисунок 4.3 – Різні форми діаграми одного раунду схеми Фейстеля.

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


обчислювальних архітектурах (за рахунок того, що, скажімо, для 64-бітного вхідного блоку
потрібно було будувати лише 32-бітне перетворення). Більш того, схема Фейстеля має
властивість інволютивності: схема розшифрування повністю співпадає із схемою
шифрування і відрізняється лише зворотнім порядком подачі раундових ключів. Нарешті, на
відміну від SP-мереж, функція f необов’язково повинна бути бієктивною.

4.1. а) Пояснять, навіщо наприкінці шифрування у SP-мережі додається окремий


ключ.
б) Поясніть, чому з точки зору криптостійкості можна вилучити лінійне перетворення
із останнього раунду шифрування SP-мережі.
в) Чи можна також вилучити з останнього раунду SP-мережі шар нелінійних S-блоків
(шар підстановки)?

4.2. Розглянемо такий учбовий приклад SP-мережі. Нехай n  6 , шар підстановки


складається з двох однакових трибітових S-блоків, які задаються таблицею заміни
S  (7, 2, 0, 5, 1, 3, 4, 6) , а лінійне перетворення L є простим циклічним зсувом на одну
позицію праворуч.
а) Зашифруйте повідомлення X  010101 двома раундами такої SP-мережі, якщо
раундові ключі дорівнюють K1  110100 , K 2  010111 , K3  010001 .
б) Розшифруйте повідомлення Y  110000 із наведеними раундовими ключами.

3
4.3. а) Професор Лінивцев запропонував для побудови блокових шифрів схему
шифрування, яку назвав S-мережа; вона відрізняється від звичайної SP-мережі відсутністю
лінійних перетворень, тобто кожен раунд має вид Fk ( x)  S ( x  k ) . Покажіть професору, що
така конструкція не настільки криптографічно стійка, як йому здається.
б) Професор Лінивцев запропонував іншу схему шифрування, яку назвав P-мережа;
вона відрізняється від звичайної SP-мережі відсутністю S-блоків, тобто кожен раунд має вид
Fk ( x)  L( x  k ) . Побудуйте атаку із відомими або обраними відкритими текстами на
r-раундовий шифр такого виду із невідомими для аналітика раундовими ключами ki .

4.4. Шифр ARIA, один з двох національних стандартів шифрування Південної Кореї,
побудовано на основі модифікованої SP-мережі1:
– використовується парна кількість раундів;
– непарні раунди мають класичний вигляд: Fk(odd) ( x)  L(S ( x  k )) ;
– парні раунди відрізняються від непарних тим, що замість S-блоків si
1 1 1 1 1
використовуються обернені S-блоки s : F i k ( x)  L(S ( x  k )) , де S  (s , ..., s ) ;
( even )
1 m

– лінійне перетворення L є інволютивним: L( L( X ))  X ;


– з останнього раунду лінійне перетворення вилучено, але наприкінці додається
окремий раундовий ключ k r 1 .
Доведіть, що схема ARIA є інволютивною з точністю до подачі раундових ключів та
покажіть, як має формуватись послідовність раундових ключів для розшифрування з
послідовності (k1, k2 , ..., kr , kr 1 ) раундових ключів для шифрування.

4.5. а) Доведіть, що один раунд схеми Фейстеля (без фінальної перестановки частин
блоку) є інволютивним перетворенням.
б) Поясніть, чому раундове шифруюче перетворення f у схемі Фейстеля не
обов’язково повинно бути бієкцією.
в) Доведіть, що процедура розшифрування в схемі Фейстеля відрізняється від
процедури шифрування лише зворотнім порядком подачі раундових ключів.

4.6. Розглянемо такий учбовий приклад SP-мережі. Нехай n  12 ; шестибітова


раундова функція має вид f k ( x)  L(S ( x  k )) , функція підстановки S складається з двох
однакових трибітових S-блоків, які задаються таблицею заміни s  (7, 2, 0, 5, 1, 3, 4, 6) , а
лінійне перетворення L є простим циклічним зсувом на одну позицію праворуч.
Зашифруйте повідомлення X  010101 000111 двома раундами такої схеми Фейстеля,
використовуючи раундові ключі k1  110100 , k2  010111 .

4.7. а) Розглянемо r-раундовий шифр, побудований за схемою Фейстеля, в якому


раундова функція має вид f k ( x)  x  k . Ключі на кожному раунді є однаковими. Покажіть,
як за значенням шифртексту Y знаходиться значення відкритого тексту X.
б) Нехай в описаному в п. а) шифрі кожен раунд шифрується окремим раундовим
ключем k i . Опишіть атаку із відомими або обраними відкритими текстами на r-раундовий
шифр такого виду. Яку складність має запропонована вами атака?
в) Побудуйте атаку із відомими або обраними відкритими текстами на описаний
r-раундовий шифр, якщо раундова функція має вид f k ( x)  L( x  k ) , де L – лінійне відносно
операції  перетворення, а кожен раунд шифрується окремим раундовим ключем k i .

1
Інший стандарт Південної Кореї, алгоритм SEED, побудовано на основі каскадної схеми Фейстеля.
4
4.8. Сімейство блочних шифрів MISTY побудовано на основі схеми шифрування (так
званої L-схеми), в якій один раунд має такий вигляд:

Fk ( x, y)  ( y, y  f k ( x)) .

Побудуйте схему розшифрування, зобразіть відповідні діаграми. Чи обов’язково


раундова функція f повинна бути бієктивною?
Чи буде ця схема інволютивною при зворотній подачі ключів? Розгляньте випадки,
коли схема шифрування завершується фінальною перестановкою частин блоку (як у схемі
Фейстеля) та коли такої перестановки нема.

4.9. Альтернативою до L-схеми є R-схема, в якій один раунд має такий вигляд:

Fk ( x, y)  ( y  f k ( x), f k ( x)) .

Побудуйте схему розшифрування, зобразіть відповідні діаграми. Чи обов’язково


раундова функція f повинна бути бієктивною?
Чи буде ця схема інволютивною при зворотній подачі ключів? Розгляньте випадки,
коли схема шифрування завершується фінальною перестановкою частин блоку (як у схемі
Фейстеля) та коли такої перестановки нема.

4.10. Позначимо через X i послідовність проміжних шифротекстів ітеративного


r-раундового шифру: X i  Fk(i i ) ( X i1 ) , де X 0  X – відкритий текст, X r  Y – результуючий
шифротекст.
а) У схемі Фейстеля доцільно кожен проміжний шифротекст розбивати на половини:
X i  ( xi , yi ) . Покажіть, що r-раундову схему Фейстеля можна представити в
альтернативному варіанті2, як процедуру обчислення рекурентної послідовності другого
порядку y1 , y0 , y1 , …, yr 1 , yr , поклавши початкові значення y1  x0 та y0 з відкритого
тексту X 0  X . Наведіть рекурентне співвідношення (яке, з очевидних причин, повинно
залежати від послідовності раундових ключів k i та раундового шифруючого перетворення f )
та покажіть, чому дорівнює шифротекст Y.
б) Побудуйте аналогічні альтернативні варіанти для L-схеми та R-схеми.

Нехай на множині усіх двійкових векторів Vn задано деяку операцію, яка утворює
структуру абелевої групи; цю операцію будемо позначати символом «+», а обернену до неї
операцію – символом «–». Прикладами таких операції можуть виступати звичайне побітове
додавання (XOR) або додавання за модулем 2 n , якщо бітові вектори інтерпретувати як цілі
невід’ємні числа у двійковому записі.

4.11. а) Розглянемо модифіковану схему Фейстеля, в якій кожен раунд має вигляд

Fk ( x, y)  ( y, x  f k ( y)) .

2
Наведений альтернативний варіант використовується для ефективної програмної реалізації схем Фейстеля,
оскільки дозволяє оперувати тільки змінними половинного розміру та уникати постійного обміну половин
блоку проміжних шифротекстів під час шифрування.
5
Побудуйте схему розшифрування, зобразіть діаграми раундів шифрування та
розшифрування. Чи буде ця схема інволютивною при зворотній подачі ключів? Чи
обов’язково раундова функція f повинна бути бієктивною?
б) Розглянемо модифіковану схему Фейстеля, яка побудована таким чином:
– використовується парна кількість раундів;
– всі непарні раунди мають вигляд Fk ( x, y)  ( y, x  f k ( y)) ;
– всі парні раунди мають вигляд Fk ( x, y)  ( y, x  f k ( y)) .
Побудуйте схему розшифрування, зобразіть діаграми раундів шифрування та
розшифрування. Чи буде ця схема інволютивною при зворотній подачі ключів?

4.12. а) r-раундовий шифр E складається з раундів такого виду:

Fk ( x, y)  ( x  f k ( x  y), y  f k ( x  y)) .

Побудуйте схему розшифрування, зобразіть відповідні діаграми. Чи буде ця схема


інволютивною при зворотній подачі ключів? Чи обов’язково раундова функція f повинна
бути бієктивною?
б) Доведіть, що якщо EK ( x, y)  (a, b) , де E – шифр з п. а), то x  y  a  b .
в) Схема Лая-Мессі (Lai-Massey) складається з раундів такого виду:

Fk ( x, y)  ( ( x  f k ( x  y)), y  f k ( x  y)) ,

де  – деяке перетворення; в останньому раунді шифрування перетворення  не


застосовується. На основі схеми Лая-Мессі побудовані такі шифри як IDEA та FOX.
Побудуйте схему розшифрування та діаграму раунду. За яких умов на  схема Лая-
Мессі буде інволютивною при зворотній подачі ключів?

4.13. Розглянемо схему шифрування, один раунд якої має вигляд

Fk ( x, y)  ( x  f k ( x  y), y  f k ( x  y)) .

а) Побудуйте схему розшифрування, зобразіть відповідні діаграми. Чи буде ця схема


інволютивною при зворотній подачі ключів? Чи обов’язково раундова функція f повинна
бути бієктивною?
б) Сформулюйте властивість даної схеми шифрування, аналогічну вказаній
у задачі 4.12б.
в) Запропонуйте аналог схеми Лая-Мессі, що використовує раундові перетворення
зазначеного вигляду.
г) Розв’яжіть пункти а)-в), якщо кожен раунд схеми шифрування має вигляд

Fk ( x, y)  ( x  f k ( x  y), y  f k ( x  y))

4.14. Для заданих шифруючих перетворень Fk намалюйте діаграми обчислення та


наведіть розшифровуючі перетворення в аналітичному виді.
а) Fk1 ,k2 ( x, y)  ( y, f k1 ( x)  g k2 ( y)) ; (LB-схема)
б) Fk1 ,k2 ( x, y)  ( y  g k2 ( f k1 ( x)), f k1 ( x)) ; (RB-схема)
в) Fk1 ,k2 ( x, y)  ( g k2 ( y)  f k1 ( x), f k1 ( x)) ; (LR-схема)
г) Fk ( x, y, z, t )  (t , x, y  f k ( x), z ) ;
6
д) Fk ( x, y, z, t )  (t , y  f k ( x), y, z) ;
е) Fk ( x, y, z, t )  (t , f k ( x), y  f k ( x), z) ;
є) Fk1 ,k2 ( x, y, z, t )  (t  g k2 ( z ), x, y  f k1 ( x), z) ; (схема CLEFIA)
ж) Fk1 ,k2 ( x, y, z, t )  (t , y  f k1 ( x), y, t  g k2 ( z )) ;
з) Fk1 ,k2 ( x, y, z, t )  (t  g k2 ( z ), f k1 ( x), y  f k1 ( x), g k2 ( z )) ;
и) Fk ( x, y)  ( y,  ( x)  f k ( y)) ; (схема LBlock)
і) Fk ( x, y)  ( ( y), x  f k ( ( y))) ; (схема Blowfish)
ї) Fk ( x, y)  ( ( y),  ( x)  f k ( ( y))) .
Тут f k , g k – раундові шифруючі перетворення, ,  – лінійні перетворення, ключі
k1 , k2 є незалежними.

4.15. Японський національний стандарт шифрування, алгоритм Camellia, побудовано


на такій модифікації схеми Фейстеля:
– виконується шість раундів звичайної схеми Фейстеля;
– до проміжного шифртексту ( x, y) застосовується функція G:

G( x, y)  ( FLk ( x), FLk1 ( y)) ,

де FL – деяке бієктивне перетворення (при кожному фіксованому значенні ключа k), FL1 –
обернене до FL перетворення, k та k  – спеціальні окремі раундові ключі;
– виконуються наступні шість раундів звичайної схеми Фейстеля;
– знову застосовується функція G із відповідними ключами;
– виконуються останні шість раундів схеми Фейстеля;
– в результуючому шифротексті переставляються ліва та права частини.
Таким чином, схема Camellia використовує 20 раундів та 22 раундових ключа: 18
раундів звичайної схеми Фейстеля, кожен з яких використовує свій власний раундовий ключ,
та два проміжних раунди G, кожен з яких використовує свої два раундові ключі.
Доведіть, що схема Camellia також є інволютивною при зворотній подачі раундових
ключів (з урахуванням спеціальних раундових ключів для функцій FL / FL1 ).

4.16. Абоненти мережі використовують для шифрування алгоритм DES з ключами, які
для них генерує центр управління ключами. Для шифрування абонентських ключів центр
також застосовує алгоритм DES і деякий майстер-ключ. Вважаючи, що кожен блок
шифротексту – це один зашифрований ключ DES включно з бітами контролю, оцініть
відстань однозначності такої криптосистеми.

Шифр TripleDES – одна з модифікацій алгоритму шифрування DES, яка направлена


на збільшення довжини ключа та загальної стійкості цього алгоритму. Якщо позначити через
EK ( X )  DESK ( X ) функцію шифрування DES, а через DK (X ) – функцію розшифрування
DES, то шифр TripleDES визначається так:

TripleDES K1 , K 2 , K 3 ( X )  EK 3 ( DK 2 ( EK1 ( X ))) .

Також на практиці часто використовувати шифр TripleDES із двома ключами:

TripleDES K1 , K 2 ( X )  EK1 ( DK 2 ( EK1 ( X ))) .

7
4.17. Однією з вимог, які висувались до модифікацій алгоритму DES, була вимога
зворотної сумісності: реалізації модифікованих алгоритмів повинні були легко інтегруватись
із програмами, що підтримували лише оригінальну версію шифру.
а) Покажіть, як з реалізації функції TripleDES у вигляді «чорної скриньки» (тобто не
маючи можливості вносити зміни у внутрішню реалізацію) одержати функцію DES.
б) Покажіть, як одержати функцію DES із функції TripleDES із двома ключами.

4.18. а) Опишіть атаку типу “meet-in-the-middle” на шифр DoubleDES. Скільки вона


вимагає часу та скільки пам’яті?
б) Опишіть аналогічну атаку на шифр TripleDES із двома ключами. Оцініть параметри
та складність цієї атаки.

Якщо у відкритому тексті змінити один чи декілька бітів, то у шифротексті та


проміжних шифротекстах також будуть змінені деякі біти; при цьому окремі біти можуть
бути незміненими, гарантовано зміненими та зміненими із певною імовірністю. Графічне
зображення таких послідовних змін в залежності від зміни у вхідному повідомленні носить
назву мапа лавинного ефекту. Мапи лавинного ефекту дозволяють наочно встановити, чи
задовольняє ітеративний шифр строгим лавинним критеріям, а також вплив кількості раундів
шифрування на лавинні ефекти та виконання принципу перемішування за Шенноном.
Для спрощення побудови мап лавинних ефектів ми припускаємо, що усі S-блоки, які
використовуються у шифрі, задовольняють усім критеріям поширення; відповідна, зміна
кожного біту на вході призводить до зміни усіх бітів виходу з імовірністю ½.

4.19. а) Нехай деяке повідомлення X шифрується r раундами шифру DES. Скільки біт
шифртексту залишаться незмінними, якщо в X змінити значення одного біту на протилежне?
Розв’яжіть задачу для r  1, 2, 3, 4 . При розв’язанні вважайте, що S-блоки шифру мають
строгий лавинний ефект за кожною змінною.
б) Побудуйте мапу лавинного ефекту.
в) Яка мінімальна необхідна кількість раундів, щоб зміна одного біту входу впливала
на всі біти виходу?
г)* Використовуючи мапу лавинного ефекту, побудуйте статистичну атаку, яка
знаходить ключ останнього раунду, для r  1, 2, 3, 4 .

4.20. а) Розв’яжіть задачу 4.19 для шифру AES при r  1, 2, 3 .


б) Розв’яжіть задачу 4.19 для шифрів «Калина-128», «Калина-256», «Калина-512»
(число означає розмір блоку вхідного повідомлення) та r  1, 2, 3 .

4.21. а) Шифр ГОСТ є модифікацією шифру ГОСТ, в якій, на відміну від


оригінальної версії, раундові ключі додаються за допомогою операції . Розв’яжіть задачу
4.19 для шифру ГОСТ та r  1, 2, 3, 4, 5 .
б) Розв’яжіть задачу 4.19 для оригінального шифру ГОСТ та r  1, 2, 3, 4, 5 . Окремо
враховуйте біти, що гарантовано підпадають під вплив лавинних ефектів, та біти, що можуть
афектуватись внаслідок виникнення переносів під час додавання із ключем. Визначте
мінімальну необхідну кількість раундів, щоб зміна одного біту входу гарантовано накривала
лавинними ефектами усі біти виходу.

4.22. а) Алгоритм шифрування DES використовує вісім S-блоків виду S : V6  V4 .


Скільки існує способів задати S-блоки для шифру DES, якщо в якості S-блоків дозволяється
використовувати довільні відображення?

8
б) Скільки існує способів задати S-блоки для шифру DES, якщо кожен S-блок
побудовано комбінацією з чотирьох різних перестановок на множині V4 (як описано в
оригінальному алгоритмі DES)?
в) Алгоритм шифрування ГОСТ використовує вісім S-блоків виду S : V4  V4 .
Скільки існує способів задати S-блоки для шифру ГОСТ? Розглянути випадки, коли в якості
S-блоків обираються довільні відображення або тільки перестановки на V4 .
г) Алгоритм шифрування AES використовує S-блок виду S : V8  V8 . Скільки існує
способів задати S-блок для шифру AES?
У всіх пунктах даної задачі треба знайти точне значення та асимптотично наближену
оцінку у вигляді певного степеня двійки.

4.23. а) Нехай F ( X , K ) – раундова функція шифру DES. Доведіть, що


F ( X , K )  F ( X , K ) , де рискою позначено інверсію всіх бітів вектору.
б) Доведіть, що для шифру DES виконується властивість доповнення (complementary
property): якщо DESK ( X )  Y , то DESK ( X )  Y . Як це зменшує стійкість шифру до атак
повного перебору ключа?
в) Доведіть, що властивість доповнення вірна і для шифру TripleDES.
г) Чи вірна властивість доповнення для шифру TripleDES із двома ключами?
д) Чи вірна властивість доповнення для шифру DESX?

4.24. а) Нехай шифр E побудовано на основі схеми Фейстеля із раундовими


функціями виду f k ( x)  g ( x  k ) , а раундові ключі генеруються простим копіюванням
деяких бітів основного ключа шифрування. Доведіть, що для шифру E буде виконуватись
властивість доповнення незалежно від кількості раундів шифрування.
б) Шифр E побудовано з шифру E, описаного в попередньому пункті, застосуванням
додаткового забілювання:

EK ,K1 ,K2 ( X )  EK ( X  K1 )  K 2 .

Доведіть, що для шифру E також виконується властивість доповнення.

4.25. а) Нехай шифр E побудовано на основі схеми Фейстеля із парною кількістю


раундів і раундовими функціями виду f k ( x)  g ( x  k ) , а процедура генерування раундових
ключів KS шифру має таку властивість: існує таке значення , що

K : KS ( K  )  KS ( K )  (1, 2 , 1, 2 , ..., 1, 2 )

для двох фіксованих векторів 1 ,  2 . Доведіть, що тоді для шифру E виконується узагальнена
властивість доповнення:

x, y, K : EK ( x, y)  EK  ( x   2 , y  1 )  (1 ,  2 ) .

б) Покажіть, що властивість доповнення DES є частковим випадком описаної в п. а)


узагальненої властивості.
в) Опишіть узагальнену властивість доповнення для наведеного шифру E із непарною
кількістю раундів.

9
4.26. Покажіть, що для шифру ГОСТ виконується узагальнена властивість доповнення
для векторів 1   2  10...0 . Як виглядає вектор , який описує різницю між ключами?

4.27. а) Опишіть узагальнену властивість доповнення для схеми MISTY із раундовими


функціями виду f k ( x)  g ( x  k ) .
б) Опишіть узагальнену властивість доповнення для R-схеми із раундовими
функціями виду f k ( x)  g ( x  k ) .

4.28. а) Покажіть, що ключ шифрування в схемі Фейстеля буде інволютивним, якщо з


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

4.29. Скільки існує інволютивних ключів в алгоритмі ГОСТ? Яка імовірність при
випадковій генерації ключа шифрування натрапити на інволютивний ключ?

4.30. Назвемо ключ шифрування ітеративного шифру m-слабким, якщо множина


раундових ключів, які генеруються з нього, містить лише m різних значень.
а) Довести, що для будь-якої схеми Фейстеля 1-слабкі ключі є інволютивними. Чи
справедливе обернене твердження?
б) Знайдіть кількість 1-слабких та 2-слабких ключів шифру ГОСТ.

4.31. Позначимо через ( x0 , y0 ) відкритий текст, а через ( xi , yi ) – проміжний


шифротекст після i-того раунду шифрування шифром ГОСТ; відповідно,
ГОСТK ( x0 , y0 )  ( x32 , y32 ) . Доведіть, що якщо x24  y24 , то ( x16 , y16 )  ( x32 , y32 ) . З якою
імовірністю виникне така ситуація?

4.32. а) (lifting property) Нехай шифр E побудовано на основі схеми Фейстеля із


розміром блоку 2n та раундовими перетвореннями f k , причому всі раундові ключі є
однаковими і дорівнюють k. Доведіть, що якщо Ek ( y, x)  (b, a) і f k ( x)  y , то
Ek ( x, 0)  (c, b) .
б) Нехай описаний шифр E доступний аналітику у вигляді «чорної скриньки», тобто
аналітик може шифрувати довільні відкриті тексти, але не знає ані ключа k, ані функції f.
Покажіть, як аналітик може обчислити значення z  f k (0) , виконавши не більш ніж 2n
операцій шифрування.
в)* (атака Саарінена) Розглянемо шифр ГОСТ, в якому S-блоки є секретними, тобто
виступають як довгострокові ключові елементи. Покажіть, що якщо аналітик може
встановлювати свої значення основного ключа шифрування K (так звана модель атаки із
обраним ключем) та виконувати шифрування довільних текстів, то він може визначити точні
значення S-блоків, виконавши не більш ніж 232  211 шифрувань.

10
IV.2. Режими роботи блокових шифрів

Блокові шифри за означенням можуть шифрувати лише повідомлення фіксованої


довжини, яка співпадає із розміром блоку. У випадках, коли вхідне повідомлення має іншу
довжину (як більше, так і менше), блоковий шифр безпосередньо використати не можна;
тому розроблені так звані режими роботи блокових шифрів, які дозволяють застосувати
блокові шифри для шифрування повідомлень довільної довжини.
Надалі будемо використовувати таку нотацію. Вхідне повідомлення M
представляється у виді послідовності блоків M  M1 || M 2 || M 3 || ... || M t 1 || M t , де усі блоки
мають довжину n бітів, окрім, можливо, останнього блоку M t , довжина якого може бути
менше n. Деякі режими вимагають, щоб усі блоки відкритого тексту були розміру n, і тоді до
неповного останнього блоку повідомлення застосовується спеціальна процедура паддінгу,
яка доповнює блок до необхідної довжини.
Для шифрування використовується довільний блоковий шифр із деяким ключем K, і
через E K ми позначаємо функцію шифрування, а через DK – функцію розшифрування. За
допомогою блокового шифру блоки M i перетворюються у блоки шифротексту Ci , причому
довжина останнього блоку шифротексту Ct може не співпадати із довжиною M t ; сам
шифротекст одержується зчепленням усіх блоків: C  C1 || C2 || C3 || ... || Ct 1 || Ct .
Багато режимів також використовують стартовий вектор шифрування (англ.
initializing vector), який ми будемо позначати як IV або C0 . Стартовий вектор шифрування не
є секретним значенням і його можна передавати разом із шифротекстом відкритими
каналами зв’язку; головна його задача – внести рандомізацію у процес шифрування на
одному ключі, оскільки процедура заміни ключа шифрування зазвичай складна
організаційно.
У наступній таблиці наведено опис основних режимів роботи блокових шифрів, які
наводяться у стандартах NIST SP 800-38A та ISO/IEC 10116.

Назва Шифрування Розшифрування Зауваження


ECB Ci  EK (M i ) M i  DK (Ci ) Паддінг потрібен
Ci  EK (M i  Ci 1 ) M i  DK (Ci )  Ci1 IV потрібен
CBC
Паддінг потрібен
CFB Ci  M i  EK (Ci1 ) M i  EK (Ci1 )  Ci IV потрібен
S 0  IV , Si  EK (Si 1 ) , S 0  IV , Si  EK (Si 1 ) ,
OFB IV потрібен
Ci  M i  Si M i  Ci  Si
Використовується
Si  EK (Ti ) , Si  EK (Ti ) ,
CTR послідовність Ti , яка
Ci  M i  Si M i  Ci  Si
генерується з IV

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

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


шифрів. Нехай вхідна послідовність бітів розбивається на блоки по чотири біти, а в якості
1 2 3 4
шифруючого перетворення використовується перестановка бітів P   
3 1 4 2 
(перестановка з шифру LBlock).

11
Зашифруйте повідомлення M  0011011011 у режимах а) ECB, б) CBC, в) CFB,
г) OFB. У якості стартового вектору шифрування використовуйте вектор IV  1101 .
Використовуйте паддінг нульовими бітами за необхідності.
Розшифруйте повідомлення C  000011110101 в усіх наведених режимах,
використовуючи стартовий вектор IV  1100 .

4.34. Нехай використовується блокове шифрування у режимі лічильника (CTR) із


розміром блоку чотири біти, і блоки Ti формуються за правилом Ti  IV || i , де i –
двійкове зображення номеру блоку i (цілого невід’ємного числа), яке займає два біти.
Зашифруйте повідомлення M  0011011011 у режимі лічильника, використовуючи в
1 2 3 4
якості шифру перестановку бітів P    та стартовий вектор IV  01 .
 3 1 4 2 

4.35. Для шифрування своїх файлів пан Лінивцев використовує однаковий ключ та
однаковий вектор ініціалізації шифрування.
а) Опишіть, яку інформацію про його файли може одержати аналітик, якщо пан
Лінивцев користується режимами CTR або OFB.
б) Дайте відповідь для випадку, коли використовуються режими CBC або CFB.

4.36. Покажіть, що якщо не захищати цілісність стартового вектору IV під час


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

4.37. У блокового шифру E довжина блоку та довжина ключа збігаються. Пан


Неуважний при шифруванні своїх даних переплутав ключ K та стартовий вектор
шифрування IV. До яких наслідків це може привести? Дайте відповідь для режимів CBC,
CFB, OFB та CTR.

4.38. Нехай блоковий шифр моделюється випадковою перестановкою, яка працює у


режимі OFB.
а) Знайдіть розподіл довжини періоду вироблюваної гами для випадкового значення
IV, а також середнє значення довжини періоду.
б) Оцініть кількість векторів IV, для яких очікувана довжина періоду не буде
перевищувати задану довжину T.

4.39. Попередні версії режиму OFB (наприклад, у першій версії специфікації NIST)
дозволяли використовувати в якості гами не весь вихідний блок довжини n, а лише його
частину довжини m, m  n . У такому випадку можна вважати, що блоковий шифр
моделюється випадковим (небієктивним) відображенням виду Vn  Vm .
Знайдіть середнє значення довжини періоду вироблюваної гами в даному випадку при
випадковому виборі IV. Порівняйте із результатами попередньої задачі.

4.40. Замість паддінгу у режимах блокового шифрування іноді використовують


техніку захвату шифротексту (англ. ciphertext stealing). Для режиму ECB ця техніка
описується таким чином.
Нехай M t 1 – останній повний блок відкритого тексту, а M t – останній блок
відкритого тексту, довжина якого дорівнює M t  l  n . Тоді при шифруванні виконуються
такі дії:

12
Z  Ek (M t 1 ) , Ct 1  Ek (M t || Right nl (Z )) , Ct  Left l (Z ) ,

де Left та Right – функції, які повертають відповідну кількість бітів з лівого та правого боку
вектору відповідно.
а) Опишіть схему розшифрування для режиму EBC із захватом шифротексту.
б) З якими суто практичними труднощами пов’язана реалізація захвату шифротексту?
в) Опишіть режим роботи CBC із захватом шифротексту.

4.41. а) Послідовність блоків відкритого тексту M1 , M 2 ,..., M t була зашифрована у


режимі CTR у шифртекст C1 , C2 ,..., Ct . Аналітик знає значення блоку M 2 і хоче
модифікувати шифртекст так, щоб при розшифруванні замість M 2 з’являлось інше
повідомлення M 2 . Чи може він це зробити, не знаючи ключа?
б) Дайте відповідь, якщо використовується режим OFB.
в) Дайте відповідь, якщо використовується режим CFB.

4.42. Шифротекст C1 , C2 ,..., Ct одержано шляхом шифрування у режимі CBC.


а) Покажіть, що якщо два блоку шифротексту рівні ( Ci  C j ), то аналітик може
відновити щонайменше n бітів інформації про відкритий текст.
б) Скільки інформації про відкритий текст має аналітик, якщо Ci  C j ?
в) Нехай у шифротексті C1 , C2 ,..., Ct всі блоки виявились попарно різними. Оцініть
кількість відкритих текстів, які може відкинути аналітик.

4.43. Шифротекст C1 , C2 ,..., Ct одержано шляхом шифрування у режимі CFB. Скільки


інформації одержить про відкритий текст аналітик, якщо два блоку шифротексту виявились
рівними (тобто, Ci  C j )?
Підказка. Розгляньте наступні блоки відкритого тексту та шифротексту.

4.44. Шифротекст C1 , C2 ,..., Ct одержано шляхом шифрування у режимі CTR. Оцініть


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

4.45. Через шум у каналі зв’язку під час передачі зашифрованих даних був випадково
змінений один біт шифртексту. Яких змін зазнає відкритий текст після розшифрування?
Дайте відповідь для всіх п’яти режимів роботи блочних шифраторів.

4.46. Приймаючий декодер каналу зв’язку, виявивши помилку в блоці зашифрованих


даних, відкидає його. Яких змін зазнає відкритий текст після розшифрування, якщо був
відкинутий один блок шифртексту? Дайте відповідь для всіх п’яти режимів роботи блочних
шифраторів.

4.47. Режим блокового шифрування PCBC (Propagating Cipher Block Chaining), який
використовувався у протоколі Kerberos v4, описується такими рівняннями:
шифрування: Ci  EK (M i  M i1  Ci1 ) ,
розшифрування: M i  DK (Ci )  M i1  Ci1 ,
при цьому вважається, що M 0  C0  IV .
а) Розв’яжіть задачі 4.45 та 4.46 для цього режиму шифрування.

13
б) Доведіть, що якщо поміняти місцями два сусідні блоки шифртексту, то у після
розшифрування у відкритому тексту невірними будуть лише ці два блоки. Що буде із
відкритим текстом, якщо поміняти місцями два несусідні блоки шифртексту?

4.48. Режим блокового шифрування IGE (Infinite Garble Extension), який, зокрема,
використовується у месенджері Telegram, описується такими рівняннями:
шифрування: Ci  EK (M i  Ci1 )  M i1 ,
розшифрування: M i  DK (Ci  M i1 )  Ci1 ,
при цьому стартові значення M 0 та C0 генеруються деяким чином зі стартового вектору IV.
Розв’яжіть задачі 4.45 та 4.46 для цього режиму шифрування.

4.49. Режим блокового шифрування CBCC (CBC with Checksum) описується такими
рівняннями:
шифрування: Ci  EK (M i  Si ) , Si1  Si  Ci ,
розшифрування: M i  DK (Ci )  Si ,
де початкове значення S0 : IV . Розв’яжіть задачі 4.45 та 4.46 для цього режиму
шифрування.

4.50. Режим блокового шифрування OFBNLF (Output FeedBack with Non-Linear


Function) описується такими рівняннями:
шифрування: Ci  EKi (M i ) , Ki1  EK ( Ki ) ,
розшифрування: M i  DKi (Ci ) ,
де початковий ключ K 0 : IV .
а) Розв’яжіть задачі 4.45 та 4.46 для цього режиму шифрування.
б) Який суто практичний недолік має цей режим для сучасних алгоритмів блокового
шифрування (наприклад, при використанні шифру «Калина» в якості E)?

IV.3. Схеми потокового шифрування

Позначимо через F2  {0, 1} двійкове поле (поле бітів).


Лінійна рекурентна послідовність порядку n над полем F2 – це послідовність
( si ) , i  0 , що визначається за таким правилом: початкові значення s0 , s1 , ..., sn1  F2 є
довільними, а наступні значення обчислюються за формулою:

sin  an1sin1  an2 sin2  ...  a1si1  a0 si , i  0 , (4.1)

де at  F2 – фіксовані коефіцієнти, а всі операції виконуються у полі F2 .


Одержувати лінійні рекурентні послідовності на практиці можна за допомогою
спеціальних апаратних пристроїв – регістрів зсуву з лінійним зворотним зв’язком (або
просто лінійних регістрів зсуву, відповідна абревіатура ЛРЗ). Регістр зсуву описується
схемою, наведеною на рис. 4.4.

14
+
а0 а1 а2 а3 ... аn-1

s0 s1 s2 s3 ... sn-1

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

На кожному такті роботи регістр повертає значення нульової комірки на вихід, зсуває
значення комірок, а в останню комірку заносить наступне обчислене значення, яке
відповідає наступному елементу рекурентної послідовності.
Станом регістру s(t ) називається заповнення комірок у момент часу t. Стан регістру
природно розглядати як двійковий вектор: s(t )  (st , st 1 , ..., st n1 ) . Зрозуміло, що
послідовність, яку генерує регістр, повністю визначається коефіцієнтами зворотного зв’язку
ai та початковим станом регістру.
Властивості послідовностей, які генерує лінійний регістр зсуву, можна визначити
аналітично за допомогою спеціального поліному, який називається характеристичним
поліномом ЛРЗ; він також є характеристичним поліномом будь-якої лінійної рекурентної
послідовності, що генерується даним регістром. Для рекуренти, що описується
співвідношенням (4.1), характеристичний поліном p( x)  F2 [ x] має вид

p( x)  x n  an1 x n1  an2 x n2  ...  a1 x  a0 .

За допомогою характеристичного поліному можна визначати періоди послідовностей,


які генерує ЛРЗ; зокрема, якщо характеристичний поліном є примітивним над F2 , то регістр
буде генерувати послідовність максимального можливого періоду 2n  1 , і в процесі
генерування він пройде через усі можливі ненульові стани.
Послідовності максимального періоду виявились настільки важливими в теорії
кодування, теорії обробки сигналів, задачах нелінійної локації та криптографії, що вони
одержали окрему назву – М-послідовності.
У подальшому розглядаються лише лінійні регістри над полем F2 , які генерують
М-послідовності.

4.51. Доведіть такі властивості М-послідовності, яка генерується лінійним регістром


довжини n:
а) період містить рівно 2 n1 одиниць та 2n1  1 нулів;
б) період містить рівно одну серію із n одиниць та не містить жодної серії з n нулів;
в) період містить рівно одну серію з n  1 нуля та не містить жодної серії з n  1
одиниці;
г) для довільного r, 1  r  n  1, період містить 2nr 2 серії одиниць довжини r та таку
ж кількість серій нулів довжини r.

4.52. Доведіть, що якщо регістр генерує М-послідовність, то для довільного моменту


часу  існує такий момент часу , що виконується співвідношення

t  0 : s(t )  s(t   )  s(t   ) .


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

4.53. Функція автокореляції двійкової послідовності s  ( si ) із періодом 2n  1


визначається як
1 2 2
n

 s (t )  n  [sk  sk t ]  [sk  sk t ] , 0  t  2n  2 ,
2  1 k 0

де квадратними дужками позначено індикатор відповідної події (дужки Айверсона): [P]


дорівнює 1, якщо P є істинним, та 0, якщо P є хибним. Функція автокореляції для двійкових
послідовностей має такий саме зміст, як і функція автокореляції для булевих функцій,
виступаючи певною мірою самоподібності.
1
Доведіть, що для довільної М-послідовності  s (0)  1 та  s (t )   n при
2 1
довільному t  0 .

4.54. а) Доведіть, що послідовні n станів лінійного регістру є лінійно незалежними.


б) Покажіть, як з послідовних 2n бітів послідовності відновити початковий стан
лінійного регістру.

4.55. Нехай d – деяке натуральне число. Послідовність ( zi ) називається


d-розрідженням послідовності ( si ) , якщо zi  sid для довільного i. Доведіть, що якщо ( si ) є
лінійною двійковою рекурентною послідовністю, то для довільного d її d-розрідження також
є лінійною рекурентною послідовністю, тобто існує лінійний регістр, який її породжує.
Знайдіть довжину даного регістру.

Безпосереднє використання лінійних рекурентних послідовностей, наприклад, в


якості ключів є ненадійним через виключно лінійні залежності. Тому для криптографічних
застосувань у роботу лінійних регістрів вносять певні нелінійні елементи. Перелічимо
основні способи внесення нелінійності у роботу регістрів та генерування відповідних
послідовностей.
1) Схеми нелінійної фільтрації: на кожному такті деяка нелінійна булева функція
застосовується до стану регістра (або тільки до його окремих біт). Значення функції є бітом
вихідної послідовності.
2) Схеми нелінійної комбінації: використовується декілька ЛРЗ, виходи яких
подаються на вхід деякої нелінійної булевої функції. Значення функції є бітом вихідної
послідовності.
3) Схеми нелінійного зворотного зв’язку: у регістрі лінійна рекурентна
залежність (4.1) замінюється на нелінійну. Поведінка регістру при цьому стає вкрай
непередбачуваною. Вихід регістру є бітом вихідної послідовності.
4) Схеми із нерівномірним рухом: регістр працює нерівномірно, виконуючи за один
крок декілька тактів (зсувів). При цьому поведінка регістру зазвичай задається іншим
регістром, який називається керуючим. На цьому принципі побудовані так звані stop-and-go-
генератори та (i, j)-steps-генератори.
5) Стискаючі генератори: послідовність, яку генерує лінійний регістр, або яка
знімається із бітів його внутрішнього стану, перетворюється на нову послідовність
визначеними правилами заміни (визначені шаблони з декількох бітів замінюються одним
бітом).

16
4.56. а) Доведіть, що для довільних натуральних n, m виконується співвідношення

gcd( 2n  1, 2m  1)  2gcd(n, m)  1 .

Підказка. Скористайтесь алгоритмом Евкліда.


б) Знайдіть період схеми нелінійної комбінації. За якої умови він досягатиме
максимального значення?
в) Знайдіть період схеми нелінійної фільтрації.

Розглянемо побудову базової кореляційної атаки на схему нелінійної комбінації. Для


спрощення викладу будемо вважати, що використовуються три лінійні регістри L1 , L2 та L3 ,
які генерують послідовності ( xi ) , ( yi ) та ( si ) відповідно, а результуюча гама обчислюється
за допомогою нелінійної функції F: zi  F ( xi , yi , si ) .
Нехай виявилось, що функція F корелює із першим аргументом, тобто
Prx, y ,s {F ( x, y, s)  x}  p  0.5 . Аналітик може знайти початковий стан регістру L1 з таких
міркувань: для правильного початкового значення регістру L1 статистика
R  ( x0  z0 )  ( x1  z1 )  ...  ( xN 1  z N 1 ) буде підкорюватись біноміальному розподілу із
параметрами N та 1  p , в той час як для неправильного імовірність співпадіння символів
дорівнює ½, а статистика R буде підкорюватись біноміальному розподілу із параметрами N
та ½. Отже, якщо аналітик має відрізок гами ( zi ) , i  0, N  1 , то він може перебрати усі
можливі значення початкового стану регістру L1 та для кожного розв’язати статистичну
задачу розрізнення гіпотез, визначивши розподіл статистики R та, відповідно, чи є початкове
значення істинним.
Якщо p  0.5 , то задача розрізнення ефективно розв’язується шляхом вибору певного
порогового значення C: якщо R  C , то R ~ Bin ( N , 0.5) і початкове значення неправильне;
якщо ж R  C , то R ~ Bin ( N , 1  p) і початкове значення правильне. При достатньо великих
значеннях N біноміальний розподіл Bin ( N , q) апроксимується нормальним розподілом з
параметрами a  Nq ,   Nq(1  q) , що дозволяє оцінювати імовірності помилок першого
та другого роду, а також підбирати параметри атаки (необхідну довжину відрізку гами N та
порогове значення C) для гарантування низьких імовірностей помилок.

4.57. Покажіть, як обчислюються значення N та C зі значень імовірностей помилок


першого та другого роду  та .

4.58. Побудуйте базову кореляційну атаку на схеми нелінійної комбінації з трьома


регістрами та такими комбінуючими функціями:
а) F ( x, y, s)  sx  (1  s) y (генератор Джиффі);
б) F ( x, y, s)  xy  xs  ys ;
в) F ( x, y, s)  x  y  xys ;
г) F ( x, y, s)  x  ys .
Оцініть складність побудованих атак.

4.59. Знайдіть всі комбінуючі функції, для яких схема нелінійної комбінації є
повністю захищеною від кореляційних атак. Чому такі схеми не використовуються на
практиці?

17
Інший потужний клас атак на потокові шифри, так звані атаки лінеаризації,
використовує аналіз алгебраїчних співвідношень між бітами станів регістрів та бітами
виробленої гами та зведення їх у той чи інший спосіб до лінійних.
Розглянемо побудову атаки лінеаризації методом введення нових змінних. Нехай у
схемі нелінійної фільтрації біт гами z i обчислюється через біти стану ( si ) за допомогою
функції F ( x1 , x2 ,..., xn ) : zi  F (si , si1 ,..., sin1 ) ; тоді для кожного нелінійного доданка xi1 xi2 ...
АНФ функції F вводиться нова змінна ui1 ,i2 ,...  xi1 xi2 ... , і одержане співвідношення стає
лінійним у нових змінних. Маючи достатньо велику кількість бітів гами, одержуємо систему
лінійних рівнянь над змінними si та ui1 ,i2 ,... , яку вже можна ефективно розв’язати, наприклад,
методом Гаусса. Після розв’язання системи усі співвідношення ui1 ,i2 ,...  xi1 xi2 ... (із
відповідною підстановкою змінних si ) використовуються для перевірки одержаних
розв’язків на коректність.
Для схеми нелінійної комбінації алгоритм побудови атаки виглядає так само, тільки
змінні ( si ) будуть описувати біти станів регістрів, які комбінуються.

4.60. Оцініть складність атаки лінеаризації на схему нелінійної фільтрації із регістром


довжини n та необхідну кількість N відомих бітів гами для успішного проведення атаки,
якщо фільтруюча функція є
а) квадратичною;
б) кубічною;
в) степеня r.

4.61. Оцініть складність атаки лінеаризації на схему нелінійної комбінації, яка


складається із t регістрів довжин n1 , n2 , ..., nt , та необхідну кількість N відомих бітів гами для
успішного проведення атаки, якщо комбінуюча функція є
а) квадратичною;
б) кубічною;
в) степеня r.

4.62. Обчислювальна архітектура дозволяє використовувати лінійні регістри


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

4.63. Обчислювальна архітектура дозволяє використовувати лінійні регістри


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

Регістри зсуву із нелінійним зворотним зв’язком (або просто нелінійні регістри зсуву)
визначаються за допомогою нелінійної булевої функції f  BFn ; при цьому послідовність,
яку генерує такий регістр, задається співвідношенням

sin  f (si , si1 , ..., sin2 , sin1 ) , i  0 .

18
За функцією f визначається функція оновлення стану F  BFn,n нелінійного регістру
зсуву; відповідно, s(t  1)  F (s(t )) . Регістр називається несингулярним, якщо функція
оновлення стану F є бієктивною, тобто у будь-якого стану регістра є лише один можливий
попередник.

4.64. а) Покажіть, що якщо нелінійний регістр є несингулярним, то він з будь-якого


початкового стану буде генерувати періодичну послідовність без передперіоду.
б) (Голомб) Доведіть, що нелінійний регістр є несингулярним тоді та тільки тоді, коли
існує така булева функція g  BFn1 , що

x1 , x2 , ..., xn1 : f ( x1 , x2 , ..., xn1 , xn1 )  x1  g ( x2 , ..., xn1 , xn1 ).

19

You might also like