KASUMI
| Алгоритм блочного шифрування | |
|---|---|
| Назва: | KASUMI |
| Розробник: | SAGE |
| Створений: | 1999 р. |
| Опублікований: | 1999 р. |
| Розмір ключа: | 128 біт |
| Розмір блоку: | 64 біт |
| Число раундів: | 8 |
| Тип: | модифікована мережа Фейстеля |
KASUMI (з японської 霞 (хірагана かすみ, romaji kasumi), що означає "туман") - блочний шифр, що використовується в мережах стільникового зв'язку 3GPP. Також позначається A5/3 при використанні в GSM і GEA3 в GPRS.
KASUMI розроблений групою SAGE (Security Algorithms Group of Experts), яка є частиною Європейського Інституту по Стандартизації в області Телекомунікацій (ETSI)[1]. За основу був узятий існуючий алгоритм MISTY1 і оптимізований для використання в стільниковому зв'язку.
Зміст |
Опис [ред.]
KASUMI використовує 64-бітний розмір блоку і 128-бітний ключ у 8-раундовій схемі Фейстеля. У кожному раунді використовується 128-бітний раундовий ключ, що складається з восьми 16-бітових підключів, отриманих з вихідного ключа фіксованою процедурою генерації підключів.
Схема шифрування [ред.]
Основний алгоритм [ред.]
KASUMI розкладається в набір функцій (FL, FO, FI), які використовуються разом з пов'язаними з ними ключами (KL, KO, KI)
Вхідний блок даних I поділяється на дві рівні частини:
Потім для кожного
:
де
- раундова функція.
- раундовий 128-бітний ключ
На виході 
Функція раунду [ред.]
Обчислюється таким чином:
Для раундів 1,3,5,7:
Для раундів 2,4,6,8:
Функція FL [ред.]
На вхід функції подається 32-бітний блок даних I і 32-бітний ключ 'KL i ', який поділяється на два 16-бітових підключа:
.
Вхідна рядок I поділяється на дві частини по 16 біт:
.
Визначимо:
Де
- циклічний зсув вліво на 1 біт.
На виході
.
Функція FO [ред.]
На вхід функції подається 32-бітний блок даних і два ключі по 48 біт:
.
Вхідний рядок I розділяється на дві частини по 16 біт:
.
48-бітові ключі поділяються на три частини кожен:
і
.
Потім для
визначимо:
На виході
.
Функція FI [ред.]
На вхід функції подається 16-бітний блок даних 'I і 16-бітний ключ 'KI i, j .
Вхід I поділяється на дві нерівні складові: 9-бітну ліву частину L 0 і 7-бітну праву R 0 :
.
Точно так же ключ KI i, j, поділяється на 7-бітну компоненту KI i, j, 1 і 9 - бітну компоненту KI i, j, 2 :
.
Функція використовує два S-блоку: S7 який відображає 7-бітний вхід в 7-бітний вихід, і S9 який відображає 9-бітний вхід в 9-бітний вихід.
Також використовуються ще дві функції:
Перетворює 7-бітове значення x в 9-бітове значення додаванням двох нулів в старші біти.
Перетворює 9-бітове значення x в 7-бітове викреслюванням з нього двох старших бітів.
Функція реалізується наступним набором операцій:
Функція повертає значення
.
Отримання раундових ключів [ред.]
Кожен раунд KASUMI отримує ключі із загального ключа K наступним чином:
- 128-бітний ключ K поділяється на 8:
- Обчислюється другий масив 'K j ':
де 'C j ' визначаються за таблицею:
-
C1 0x0123 С2 0x4567 С3 0x89AB С4 0xCDEF С5 0xFEDC С6 0xBA98 С7 0x7654 С8 0x3210
- Ключі для кожного раунду обчислюються за наступною таблицею:
-
Ключ 1 2 3 4 5 6 7 8 
K1<<<1 K2<<<1 K3<<<1 K4<<<1 K5<<<1 K6<<<1 K7<<<1 K8<<<1 
K3' K4' K5' K6' K7' K8' K1' K2' 
K2<<<5 K3<<<5 K4<<<5 K5<<<5 K6<<<5 K7<<<5 K8<<<5 K1<<<5 
K6<<<8 K7<<<8 K8<<<8 K1<<<8 K2<<<8 K3<<<8 K4<<<8 K5<<<8 
K7<<<13 K8<<<13 K1<<<13 K2<<<13 K3<<<13 K4<<<13 K5<<<13 K6<<<13 
K5' K6' K7' K8' K1' K2' K3' K4' 
K4' K5' K6' K7' K8' K1' K2' K3' 
K8' K1' K2' K3' K4' K5' K6' K7'
де X <<< n - циклічний зсув на n біт вліво.
Криптоаналіз [ред.]
У 2001 році була представлена атака методом неможливих диференціалів. Автор - Ульріх Кен (2001).[2]
У 2003 році Елад Баркан, Елі Біхамом і Натан Келлер продемонстрували атаку з посередником на протокол GSM, що дозволяє обійти шифр A5/3 і таким чином зламати протокол. Однак, цей підхід не зламує шифр A5/3 безпосередньо. [3] Повна версія була опублікована пізніше, в 2006. [4]
У 2005 році Елі Біхамом, Орр Дункельман і Натан Келлер опублікували атаку на KASUMI методом бумеранга, яка зламує шифр швидше, ніж повний перебір. Для атаки потрібно
обраних відкритих текстів, кожен з яких був зашифрований одним з 4 пов'язаних ключів, і має складність за часом, еквівалентну
шифрування KASUMI. Ця атака показує небезпечність шифрування KASUMI в 3G мережах.
Примітки [ред.]
|
||||||||||||||
|
|
|||||






.
.

і
.

.
Перетворює 7-бітове значення x в 9-бітове значення додаванням двох нулів в старші біти.
Перетворює 9-бітове значення x в 7-бітове викреслюванням з нього двох старших бітів.![~ L_1 = R_0 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ R_1 = S9 [L_0] \oplus ZE (R_0)](http://upload.wikimedia.org/math/b/6/7/b67f548d572900a5934c7eff3b16c234.png)
![~ L_2 = R_1 \oplus KI_ {i, j, 2} ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ R_2 = S7 [L_1] \oplus TR (R_1) \oplus KI_ {i, j , 1}](http://upload.wikimedia.org/math/0/0/8/0086fad68f9d623d6d56f414b3169915.png)
![~ L_3 = R_2 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ R_3 = S9 [L_2] \oplus ZE (R_2)](http://upload.wikimedia.org/math/7/3/1/7316d4da29996bd2d3c7da5c49fa2e59.png)
![~ L_4 = S7 [L_3] \oplus TR (R_3) ~ ~ ~ ~ ~ ~ R_4 = R_3](http://upload.wikimedia.org/math/b/8/d/b8d897b8cefc4c83a06c792fb10fafce.png)









