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

Технології захисту інформації - копия

.pdf
Скачиваний:
258
Добавлен:
17.03.2016
Размер:
6.65 Mб
Скачать

Дана схема показує процес перетворення текстів як для алгоритму зашифрування, так і розшифрування (природно з урахуванням виконання вимог зворотності перетворень).

j = 0

j = j + 1

так

j>S

STOP

ні

r-раундове перетворення блоків тексту на j-му кроці шифрування

Зсув циклічний загального ключа (ЗК) на 7 розрядів з метою оновлення раундових ключів

Рис. 4.16. Узагальнена структурна схема RSB-алгоритму

Перед початком процедури зашифрування вхідний відкритий текст розбивається на блоки, розмір яких може бути рівним 256, 512 або 1024 біт. Якщо останній блок виявився менше обраного розміру, то він доповнюється пробілами до повного блоку. Назвемо такий текст розширеним файлом. Об’єм розширеного файла при зашифруванні не змінюється, тому об’єм шифротексту завжди буде кратним розміру блоку.

Як видно зі структурної схеми криптоалгоритму (див. рис. 4.16), спочатку виконуються послідовні перетворення усіх блоків розширеного файла з раундовим ключем RK1, потім з ключем RK2 і, нарешті, з ключем RKr. На цьому закінчується обробка тексту на першому кроці зашифрування. За умови, що кількість кроків шифрування s більше одиниці, відбувається часткове відновлення раундових ключів за рахунок циклічного зсуву загального ключа CK на сім розрядів праворуч.

111

Узагальнена структурна схема RSB алгоритму в режимі зашифрування наведена на рис. 4.17, у якому використані такі позначення:

RC (Rоund Code) – операції зашифрування тексту з раундовим ключем; RKij j-й раундовий ключ на i-му кроці зашифрування.

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

 

Исходный

 

 

 

Початковий

 

 

 

 

текст

 

 

 

 

текст

 

 

 

RK11

RC

RK12

RK1r

1- й шаг

RC ...

RC

 

 

 

1-й крок

RK21

RC

. .

RKs1

RC

 

 

RK22

...

 

 

 

2- й шаг

 

 

 

 

RC

 

 

 

RC

 

 

 

 

 

 

 

 

 

 

2-й крок

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

RKs2

 

 

RK sr

 

 

 

RC

 

...

 

 

RC

s-й крок

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Шифротекст

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 4.17. Узагальнена структурна схема алгоритму RSB

Основні операції шифрування такі.

Операція циклічного зсуву (С). За допомогою даної операції здійснюється стохастичний циклічний зсув вліво (для операції зашифрування) N-розрядного блоку (N = 256, 512 або 1024 біти) на випадкове непарне число розрядів у межах від 1 до 255.

Операція перестановки (П) бітів у блоці виконується в такий спосіб. Біт, розташований у розряді блоку під номером x, переміщається в

розряд під номером y, який обчислюється за формулою:

y (xMП )m,

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

112

B – чотири-

Операція заміни (підстановки) елементів блоку (З) є зворотною нелінійною матричною операцією та служить не тільки для розсіювання елементів алфавіту вихідного тексту, але й для підвищення криптостійкості самого RSB-алгоритму до лінійного і диференціального криптоаналізу. Заміна елементів блоку х (у ролі яких виступають вісім 8-, 16або 32-розрядних двійкових кодових комбінацій) на елементи у здійснюється перетворенням:

y((x M3 )m B)m,

уякому M3 – матриця заміни четвертого порядку, що вибирається з бази

за адресою, яка міститься в секторі 3 раундового ключа; розрядна функція (назвемо її бета-функцією), що надає нелінійності

цьому перетворенню. Оператор означає порозрядне сумування за модулем m.

Функції шифрування. У RSB-системі передбачені такі функції шифрування (табл. 4.15).

 

 

Таблиця 4.15

 

Функції шифрування

 

 

 

 

Назва функції

Позначення

п/п

 

 

 

 

 

1

Базова

B / b / z

 

 

 

2

Розширена

R / b / z

 

 

 

3

Стохастична

S / b / z

 

 

 

4

Гамування

G / b / z

 

 

 

5

Комбінована

C / b / z

 

 

 

У табл. 4.15 прийняті такі позначення: великі літери характеризують варіант шифрування; малими літерами b та z (які замінюються цифрами в реальній назві) позначаються розміри блоку та елемента заміни у блоці, відповідно. Далі наведені приклади повного позначення RSB-

криптосистем: RSB-32S/512/32; RSB-32R/1024/8 і т. д.

Перейдемо до опису раундових функцій шифрування (F), скориставшись символами, якими позначаються такі перетворення:

С – стохастичний зсув блоку;

~

C – стохастичний зсув розширеного файла; П – операція перестановки бітів у блоці;

113

З – проста заміна елементів блоку (вісім 8-, 16або 32-розрядних слів), при якій до всіх елементів блоку застосовується та сама матриця заміни M3 ;

~

З – кожний елемент блоку замінюється своєю індивідуальною матрицею заміни M3 ;

~

(F)C – раундова функція F застосовується до всіх блоків розширеного файла, після чого файл піддається стохастичному зсуву.

~

Стохастичний зсув розширеного файла (операція C ) здійснюється наприкінці кожного кроку перетворення вліво (при зашифруванні) або вправо (при розшифруванні) на непарну кількість розрядів від 1 до 255.

~

Операція C уведена для того, щоб уникнути жорсткої розбивки тексту на блоки, що ускладнює роботу криптоаналітика при дешифруванні зашифрованого тексту.

Отже, символічний опис раундових функцій (F) для варіантів зашифрування B, R, S, G і C, відповідно, мають вигляд:

FB CП1ЗП2;

~

 

FR CП1ЗП2

;

~

~

FS (1ЗП2 )C;

~

 

FG CПЗG;

 

~ ~

FC (CПЗG)C.

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

Ідея швидкісної матричної форми шифрування полягає в такому. Виберемо для приклада варіант шифрування RSB-32R/256/16/М з параметрами r = 6 та s = 8, тобто шифруються 256-розрядні блоки розширеного тексту 192-розрядним ключем (що складається із шести 32-розрядних раундових ключів). Розмір елементів заміни дорівнює 16 бітів, а весь процес шифрування завершується за 8 ітерацій.

Раундова функція зашифрування має вигляд: ~ , тобто

FR CП1ЗП2

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

114

(П1), після цього для усіх 16-розрядних елементів блоку виконується операція заміни на індивідуальних матрицях і, нарешті, знову проводиться операція перестановки бітів у блоці (П2). Коли закінчується обробка останнього блоку розширеного файла, аналогічна обробка блоків проводиться спочатку на другому, потім на третьому, четвертому, п’ятому і, нарешті, на шостому раундових ключах. Після цього раундові ключі поновлюються за рахунок циклічного зсуву вліво загального ключа на сім розрядів і процедура обробки блоків триває за вище описаною схемою протягом восьми кроків шифрування.

4.6.2. Алгоритм "Мухомор"

В основу алгоритму "Мухомор" покладено математичні та структурні ідеї схеми Лая – Мессі [22], яка також використовує деякі ідеї, реалізовані в шифрі IDEA NXT. Але в цьому шифрі, порівняно з IDEA NXT, використано ефективніші як з точки зору стійкості, так і з точки зору продуктивності, оригінальні базові криптографічні алгоритми – функції ускладнення базових перетворень М-64, М-128 та М-256, розширено параметри для більших довжин блоків та ключів, запропоновано відповідні реалізації, а також удосконалено схеми розгортання підключів. Усе це дозволило уникнути низки потенційних вразливостей та підвищити продуктивність шифру для апаратної, програмної та апаратно-програм- ної реалізацій.

Структура алгоритму

Вхідними даними алгоритму "Мухомор" є відкритий текст та ключ шифрування, вихідними – шифротекст.

Вхідні, вихідні блоки даних і ключ шифрування алгоритму "Мухомор" подаються у вигляді бітових (байтових) рядків довжиною 128, 256 і 512 бітів (відповідно 16, 32 і 64 байти).

Байтові рядки довжиною n байтів подані у такій формі:

B0B1B2...Bn 1...,

де В0 відповідає першим восьми бітам, В1 – другим і так далі.

Операції лінійного розсіювання в алгоритмі "Мухомор" виконуються над полем Галуа GF(28), яке побудовано на незвідному поліномі:

m(x) x8 x 4 x3 x2 1.

115

Алгоритм підтримує довжину блоку та ключа в 128, 256 і 512 бітів, причому розмір ключа шифрування не може бути менше розміру блоку. Дозволені комбінації розміру блоку та довжини ключа шифрування наведено в табл. 4.16.

 

Таблиця 4.16

Дозволені комбінації розміру блоку і довжини ключа

 

 

Розмір блоку, бітів

Довжина ключа, що підтримується, біт

 

 

128

128, 256, 512

 

 

256

256, 512

 

 

512

512

 

 

Алгоритм шифрування є ітеративною процедурою, що складається з попередньої та фінальної рандомізації а також раундового перетворення. Мінімальна кількість циклів шифрування (Nr) залежно від довжини блоку наведено в табл. 4.17.

 

Таблиця 4.17

Кількість циклів шифрування алгоритму (Nr)

 

 

Довжина блоку (бітів)

Кількість циклів шифрування

 

 

128

11

 

 

256

13

 

 

512

18

 

 

Процедура зашифрування. На вхід процедури подається відкритий текст і підключі шифрування (рис. 4.18).

Вхідне значення (128, 256 або 512 бітів)

Ki,Ki+1

Вихідне значення (128, 256 або 512 бітів)

Рис. 4.18. Схема початкової та фінальної рандомізації

116

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

Схема циклового перетворення наведена на рис. 4.19.

 

Вхідне значення циклового перетворення (128, 256 або 512 бітів)

 

Функція ускладнення

 

(М-64/М-128/М-256)

ОП

ОП

 

Вихідне значення циклового перетворення (128, 256 або 512 бітів)

Рис. 4.19. Блок-схема циклового перетворення

Вхідний блок розбивається на 4 однакових підблоки, різниця між якими подається на вхід функції ускладнення (М-64, М-128 або М-256 для розмірів блоку 128, 256 і 512 бітів відповідно). Вихідне значення функції ускладнення додається за модулем 2 із вхідними значеннями, після чого перший і третій підблоки піддаються операції ортогонального перетворення (ОП). У процесі шифрування виконується циклове перетворення за базовою схемою Лая – Мессі.

Функція ускладнення. Основним перетворенням у функції ускладнення є SL-перетворення, що виконує перетворення 32-бітових блоків даних. Схема SL-перетворення наведена на рис. 4.20.

117

 

 

 

 

Вхідне значення (32

біта)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S0

 

S1

 

S2

 

 

S3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

МДВ-пертворення

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вихідне значення (32

біта)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 4.20. Схема SL-перетворення

При SL-перетворенні вхідне 32-бітове значення ділиться на 4 байти, кожний з яких заміняється відповідно до заданої таблиці підстановки. Після заміни 4 байти (а0,а1,а2, а3 ) подаються на вхід МДВ-перетворення, що виконує матричне множення такого вигляду:

b

 

03

 

a

02 a 03 a 01 a 01 a

0

02

01 01

0

 

 

0

1

2

 

3

 

 

 

 

 

b1

01 02 03 01

a1

01 a0 02 a1 03 a2 01 a3 .

b

 

01 01 02 03

a

 

01 a

 

01 a 02 a

 

03 a

 

 

2

 

 

 

 

 

2

 

 

0

1

2

 

3

 

b3

03 01 01 02

a3

03

a0 01 a1 01 a2 02 a3

Матриця МДВ-перетворення шифру "Мухомор" збігається з матрицею алгоритму Rijndael/AES, але операція множення виконується над іншим незвідним поліномом. Вихідний 32-бітовий вектор МДВперетворення (b0,b1,b2, b3 ) і є вихідним значенням SL-перетворення.

Функції ускладнення М-64, М-128 та М-256 влаштовані інакше. З деталями їх внутрішньої організації можна ознайомитися у [22].

Ортогональне перетворення (ОП) виконується на виході раундового перетворення для обробки першого та третього підблоків. Схема ОП наведена на рис. 4.21.

Вхідне значення ортогонального перетворення

(32, 64 або 128 бітів)

Вихідне значення ортогонального перетворення

(32, 64 або 128 бітів)

Рис. 4.21. Схема ортогонального перетворення

118

Блок, розміром 128, 256 або 512 бітів, залежно від довжини блоку відкритого тексту, що подається на вхід ОП, розбивається на дві половини, з яких права на виході стає лівою, а ліва на виході формується як сума за модулем 2 лівої та правої половин на вході.

Відмінності алгоритму розшифрування. Алгоритм розшифрування є оберненим до алгоритму зашифрування. На вхід подаються блоки шифротексту і підключі розшифрування. На початку розшифрування виконується зняття фінальної рандомізації, після чого отриманий блок даних задану кількість разів обробляється цикловою функцією, потім виконується зняття рандомізації з блоку відкритого тексту. В результаті отримується блок відкритого тексту. Процес розшифрування збігається з процесом зашифруванням за винятком таких деталей: підключі (у тому числі початкової та фінальної рандомізації) подаються у зворотному порядку; замість операції ортогонального перетворення використовується обернена до неї операція ОП-1.

4.6.3. Алгоритм ADE

Основну увагу при розробці ADE приділялося можливості динамічно керувати процесом лінійного розсіювання й нелінійної заміни в ході криптографічного перетворення інформації. Із цією метою в базову структуру алгоритму AES уведено блоки (криптопримітиви) лінійного розсіювання й нелінійних замін, що динамічно змінюються, а правила функціонування їх задаються значеннями раундових ключів. Властивості уведених примітивів криптоалгоритму ADE не поступаються криптопримітивам алгоритму AES, а за рахунок їх динамічної зміни на кожному раунді ітеративної обробки вдається динамічно керувати процесом перетворення інформації. Це, з одного боку, не погіршує (порівняно з AES) стійкість ADE до відомих методів криптоаналізу, з іншого боку, істотно ускладнює процес формування алгебраїчних рівнянь, що аналітично зв’язують стан відкритого тексту, шифротексту i ключа.

Структура алгоритму

Операції у шифрі ADE, як і в шифрі "Мухомор", визначені у полі Галуа над незвідним многочленом: m(x) = x8 + x4 + x3 + x2 + 1.

За своєю конструкцією шифр ADE найбільш близький до AES. Раундове перетворення шифру ADE, як і AES, не використовує структуру Фейстеля. Замість цього воно складається з 3-х окремих інвертованих "однорідних" перетворень, які називаються шарами. Під "однорідністю" мається на увазі те, що кожний біт стану обробляється подібним шляхом.

119

Обґрунтування структурної схеми алгоритму шифрування. ADE,

як і AES, є ітеративним блоковим шифром з різною довжиною блоку та різною довжиною ключа.

Алгоритм ADE побудований за класичною схемою підстановокперестановок та використовує всі переваги алгоритму AES.

З деяким спрощенням можна вважати, що ADE зводиться до відповідних блоків алгоритму AES, тобто при фіксуванні деяких системних параметрів алгоритм ADE легко трансформується в AES. Структурна схема алгоритму ADE у загальному виді представлена на рис. 4.22.

На схемі позначені:

"SubByte" – блок заміни байтів, що залежить від раундового ключа; "ShiftRow" – блок функціонального перетворення (на основі

циклічного зсуву), що залежить від раундового ключа;

"MixColumn" – блок лінійного перетворення (аналог перестановки), що функціонує під управлінням раундового ключа;

"AddRoundKey" – блок функціонального перетворення (додавання з ключем за модулем 2).

відкритийО крытый ттексткст

 

 

 

 

 

 

 

Key

 

 

 

SubByte

 

 

 

 

 

Key

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ShiftRow

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

...

 

 

 

 

 

Key

 

 

 

MixColumn

 

 

 

 

 

Key

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

AddRoundKey

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Шшифрованийованый ттексткст

Рис. 4.22. Структурна схема алгоритму шифрування ADE

120