ідно підкреслити, що, незважаючи на всі ці заходи захисту, застосування оператором зв'язку алгоритму COMP 128 v.1 не виключає використання крадених або клонованих SIM - карт. У наступних розділах будуть розглянуті основні вразливості даної системи [18].
2.2 Принцип роботи алгоритму COMP 128
По суті, COMP 128 є хеш-функцією, яка формує 128 бітове значення. Розрядність аргументу - 256 біт або 32 байта (128 біт Ki + 128 біт RAND) [9]. 32 старших біта обчисленого значення беруться як SRES, а 64 молодших біта в якості сесійного ключа Kc. Тут же необхідно підкреслити, що в якості значення Kc використовуються біти з 74 по 127 з виходу COMP 128, за якими слідують десять нулів [19]. Іншими словами, A5 закритий лише 54 бітами ентропії. Що очевидно тягне навмисне ослаблення ключа, використовуваного для приватності розмови більш ніж в 1000 разів. Нехай X [0..31] - 32-байтний вхід алгоритму, де X [0..15]=Ki, а X [16..31]=RAND. T0 [0..511], T1 [0..255], T2 [0..127], T3 [0..63] і T4 [0..31] - секретні таблиці підстановки байтів (таблиця 5).
Таблиця 5 - Таблиці підстановки для ітерацій
табліцачісло елементовразмер одного елемента (біт) Т05128Т12567Т21286Т3645Т4324
Алгоритм складається з восьми раундів, в кожному раунді присутні п`ять ітерацій. Кожна ітерація полягає в пошуку по відповідній таблиці потрібного коефіцієнта (T0 застосовується для першої ітерації, T1 - для другої, і т. Д.) І підстановці байт (Рис. 4). В кінці кожного раунду, за винятком останнього, відбувається перестановка отриманих 128 біт результату. Після перестановки ці 128 біт подаються на вхід наступного раунду. Нижче наведено опис одного раунду в псевдокоді, а також на рисунку 5 наведена схема алгоритму COMP 128:
Рис. 4 - Схема підстановки байт для кожної з ітерацій
//подстановкіi=0 to 4 do: j=0 to 2 ^ i - 1 do: k=0 to 2 ^ (4-i) - 1 do:
{= k + j * 2 ^ (5 - i)=s + 2 ^ (4-i)=(X [s] + 2X [t]) mod (2 ^ (9 -i))=(2X [s] + X [t]) mod (2 ^ (9 - i)) [s]=Ti [x]
X [t]=Ti [y]
}
//освіту біт з байт
for j=0 to 31 do: k=0 to 7 do:
{[4 * j + k]=the (8-k) th bit of byte j
}
//перестановка (i lt; 8) thenj=0 to 15 do: k=0 to 7 do:
{bit=(8 xj + k) x 17 mod 128k of X [j + 16]=bit [next_bit]
}
Рис. 5 - Схема реалізації схема алгоритму COMP 128
На кожному рівні присутні шістнадцятеро об'єднуючих операцій, кожна з яких перетворює два вхідних байта у вихідний байт.
Відповідно на кожній ітерації вихідний байт залежить від двох вхідних байт. Два вхідних байта використовуються для визначення елемента в таблиці підстановки. Цей елемент оновить вихідний байт. Таблиця підстановки для N-ої ітерації містить 2 (9 - N) елементів розміром в (8 - N) біт (Рис. 6).
Рис. 6 - Схема генерації вихідних байт
Отже, кожен з 32 вихідних байт останній ітерації раунду має лише 4 значущих біта. Тому наприкінці ітерації відбувається виділення з цих 32 байт тільки значущих бітів, що дає в результаті 16 байт (4 біта по 32), всі біти яких значущі. Ці 16 байт записуються в X [16 .. 31], і запускається наступний раунд алгоритму (в X [0 .. 15] значення Ki ніяк не змінюється).
Таку структуру алгоритму криптоаналитик Девід Вагнер назвав butterfly structure [19].
.3 Обмеження і недоліки алгоритмів аутентифікації в мережах GSM
Розглянувши з теоретичних позицій процес аутентифікації в мережах GSM можна визначити низку його недоліків і обмежень, які дають зловмисникові хороші можливості для проведення різного роду атак. Нижче наведені основні недоліки використовуваних у процесі аутентифікації прийнятих розробниками рішень:
одностороння аутентифікація. SIM-карта не має можливості аутентифицировать мережу. Зловмисник може підмінити мережу. Крім того, можлива атака «людина в середині».
низька опірність активних атак. GSM забезпечує тільки безпеку доступу. Користувача трафік і сигнальна інформація між базовими станціями передаються у відкритому вигляді. Дешифрування трафіку між базовою станцією і мобільною станцією (стільниковим телефоном) (атака на A5) не представляє труднощів для сучасних ПК.
часткове виконання аутентифікації алгоритмами А3/А8 (криптоалгоритмом COMP 128). COMP 128 був закритою криптосистемою, і це було причиною того, що він не піддавався ретельному (відкритого) криптоанализу і багато його слабкі місця не були виявлені. Після витоку технічної документації, виявилося безліч його недоліків. Прикладами таких недолікі...