Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
пкр_лекции / 7 ПК ЛК7 (2.4) { ХНУРЕ 2011 Документ Microsoft Office Word.docx
Скачиваний:
85
Добавлен:
14.04.2015
Размер:
181.63 Кб
Скачать

7.4 Блокові симетричні шифри на основі spn структури

Згідно класифікації [60 ] до БСШ нормального рівня стійкості відносять шифри у яких довжина блоку lб = 128 бітів, а довжина ключа lк = 128 бітів. Основними БСШ, що можна віднести до нормального рівня стійкості, є БСШ FIPS 197(АЕS), Camellia та SEED[ 98 ]. Розглянемо основні криптографічні функції вказаних шифрів та особливості застосування.

БСШ нормального рівня стійкості FIPS – 197(AES). В результаті виконання проекту AES переможцем був оголошений БСШ Rijndael [204], в подальшому на його основі у звуженій версії був прийнятий федеральний стандарт США FIPS-197, який на нинішній час отримав широке застосування в США та у світі. Основною відмінністю FIPS-197 від Rijndael є те, що в першого довжина блоку може приймати тільки значення lб = 128, довжина ключа lк = 128, а також за деякою згодою 160 та 192 бітів [198]. В той же час в Rijndael допустимими є довжини блоку/ ключа 128/192, 128/256, 192/192, 192/256 та 256/256 бітів.

Загальна характеристика AES [198, 204]. AES – це БСШ, в тому числі, нормального рівня стійкості, у якому криптографічні перетворення виконуються в режимі простої підстановки над 128 – бітовими блоками (16 байтами) та довжинами ключів 128 і 192 біт. Вказані варіанти БСШ іменують «AES-128» та «AES-192». В подальшому, враховуючи ідентичність алгоритмів шифрування і при довжині ключа 256 бітів, будемо розглядати і цей випадок, але розуміючи що в ньому забезпечується високий рівень стійкості.

Таким чином, в алгоритмі AES нормального рівня стійкості, довжина вхідного і вихідного блоку складає 128 бітів (16 байтів або 4 32 бітних слова). Довжина ключа шифрування K складає 128, 192 або 256 бітів. Число циклів (раундів) перетворення Nr, складає у залежності від довжини ключа, відповідно 10, 12 або 14 циклів (таблиця 2.6).

Таблиця 2.6. Кількість циклів в AES

БСШ

Кількість раундів Nr

AES-128

10

AES-192

12

AES-256

14

Зашифрування та розшифрування в AES виконується ітеративно з використанням чотирьох різний байт-орієнтованих перетворень:

1) байтова таблична підстановка з використанням таблиці підстановки (S-блок);

2) табличне перетворення - зсув рядків масиву state;

3)табличне перетворення - змішування даних в кожному стовпці масиву state;

4) криптографічне перетворення - складання за модулем 2 циклового ключа х плинним станом state.

Алгоритм зашифрування AES. Алгоритм зашифрування наведено на рис. 2.10. Зашифрування в алгоритмі AES виконуються на двомірному масиві байтів, який позначають state(стан). State описується чотирма рядками байтів, кожен із яких містить 4 байти. У масиві state, що позначається символом s, кожен окремий байт має два індекси, номер рядку r в діапазоні 0 £r < 4 та номер стовпця c в діапазоні 0£c < 4. State позначається S = () та подається на рис. 2.11.

Рис. 2.10. Алгоритм зашифрування AES.

Додаток А

2.7.2 Задачі для самостійного розв'язку

Задача 1.

Знайти афінне перетворення , дета- константи, що мають вигляд:

, .

При цьому , якщо=99+3k, де k – номер з журналу. Знайти відстань Хемінга між вхідними та вихідними елементами.

Задача 2.

Розробити програму знаходження обернених елементів для усіх значень, в полі GF(28). При цьому прийняти елемент- 00000000 i обернений йому елемент=00000000. Примітивний поліном.

Задача 3.

Розробити програму розрахунку афінного перетворення байта та сформувати таблицю підстановки як результат афінного перетворення (тобто реалізувати повністю перетворення bytesub).

Задача 4.

При перемішуванні в стовпцях виконується перетворення:

,

де ,

,

а j є номер стовпця із таблиці 2.11

Таблиця 2.11

j

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

a0j

19

77

5

239

13

116

18

17

9

101

29

111

93

207

94

182

a1j

123

145

193

174

24

199

181

39

28

197

21

16

81

174

170

229

a2j

74

99

17

11

204

209

29

91

154

26

99

139

78

93

11

65

a3j

159

231

96

91

179

7

48

251

201

11

137

54

247

105

139

207