D0%BB%D1%8E_2> (Булева операція XOR) генерується псевдослучайной послідовності і шіфруемий інформації. У A5 псевдослучайная послідовність реалізується на основі трьох лінійних регістрів зсуву зі зворотним зв'язком <mhtml:file://C:Documents%20and%20SettingsAdminРабочий%20столираA5%20%20Википедия.mht!/wiki/%D0%9B%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D1%8B%D0%B9_%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80_%D1%81%D0%B4%D0%B2%D0%B8%D0%B3%D0%B0_%D1%81_%D0%BE%D0%B1%D1%80%D0%B0%D1%82%D0%BD%D0%BE%D0%B9_%D1%81%D0%B2%D1%8F%D0%B7%D1%8C%D1%8E>. Регістри мають довжини 19, 22 і 23 біти відповідно. Зрушеннями управляє спеціальна схема, організуюча на кожному кроці зміщення як мінімум двох регістрів, що призводить до їх нерівномірного руху. Послідовність формується шляхом операції XOR над вихідними бітами регістрів.
Існують три різновиди алгоритму А5:
1) А5 / 1 (алгоритм для поширення в Європі і США);
стільниковий загроза зв'язок псевдовипадковий
Малюнок 1.3 - Структурна схема алгоритму А5 / 1
) А5 / 2 (алгоритм із зниженою криптостійкість, шляхом додавання ще одного регістра (17 біт), керуючого зрушеннями інших);
Малюнок 1.4 - Структурна схема алгоритму А5 / 2
) А5 / 3 (заснований на алгоритмі Касуми);
Як уже згадувалося, даний шифр є шифром Фейстеля з вісьмома раундами. В якості вхідних даних використовуються 128-бітний ключ K і рядок S. Вхідна рядок ділиться на праву R0 і ліву L0 частини, рівні за 32 біта кожна. На кожному з восьми раундів обидві частини перетворюються за наступним правилом:
i=L i - 1; L i=R i - 1 XOR f (L i - 1, RK i) (1.1)
де f визначає функцію раунду, приймаючу як аргументи ключ раунду RК i і 32-бітове вхідне значення. Ключ раунду RKi складається реально з трьох ключів KLi, KOi і KIi, за генерацію яких відповідальний елемент розподілу ключів (key Scheduling Unit). Функція f складається з трьох функцій FL, FO і FI, які і використовують 3 відповідних ключа. Функція FL приймає 32-бітний вхідний параметр і за допомогою 32-бітного ключа KLi генерує вихід також розмірності 32 біта.
Малюнок 1.5 - Функція FL
де:?- Функція логічного «І», - функція логічного «АБО»,
<<<- 1 біт перемістити вліво.
Функція FO приймає 32-бітний вхідний параметр і два 48-бітових ключа KOi і KIi. Останній використовується при виклику функції FI.
Малюнок 1.6 - Реалізація функції FO
Функція FI приймає 16-бітний вхідний параметр і 16-бітний ключ KIi, j і генерує на їх основі 16-бітний вихід.
а) б)
Малюнок 1.5 - а) Схема реалізації шифру Kasumi; б) Функція FI
Зі схеми неважко з'ясувати, які логічні операції використовує кожна з цих функцій. Варто лише відзначити, що функція FI використовує S-box S7 і S9, що здійснюють перетворення вхідних 7-ми і відповідно 9-ти біт у вихідні 7 і 9 біт. На непарних раундах перший виповнюється функція FL, а на парних - FO.
Отже, згенерований алгоритмом Касуми ключ видається згодом алгоритмом GEA3 і використовується для кодування даних...