![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Алгоритм IDEA (International Data Encryption Algorithm) является блочным шифром. Он оперирует 64-битовыми блоками открытого текста. Его ключ имеет длину 128 бит. Один и тот же алгоритм используется и для шифрования, и для расшифрования.
В алгоритме IDEA используются следующие математические операции:
· поразрядное сложение по модулю 2 (операция «исключающее ИЛИ»); операция обозначается как Å;
· сложение беззнаковых целых по модулю 216 (модуль 65536); операция обозначается как ⊞;
· умножение целых по модулю (216+1) (модуль 65537), рассматриваемых как беззнаковые целые, за исключением того, что блок из 16 нулей рассматривается как 216; операция обозначается как ⊙.
Все операции выполняются над 16-битовыми субблоками.
Эти три операции несовместимы в том смысле, что:
· никакая пара из этих трех операций не удовлетворяет ассоциативному закону,
например a ⊞ (b Å c) ¹ (a ⊞ b) Å c;
· никакая пара из этих трех операций не удовлетворяет дистрибутивному закону, например, a ⊞ (b⊙ c) ¹ (a ⊞ b)⊙ (a ⊞ c).
Комбинирование этих трех операций обеспечивает комплексное преобразование входа, существенно затрудняя криптоанализ IDEA по сравнению с DES, который базируется исключительно на операции «исключающее ИЛИ».
Общая схема алгоритма IDEA приведена на рис. 9 64-битовый блок данных делится на четыре 16-битовых субблока. Эти четыре субблока становятся входом в первый цикл алгоритма. Всего выполняется восемь циклов. Между циклами второй и третий субблоки меняются местами. В каждом цикле имеет место следующая последовательность операций:
(1) | ⊙ | – | умножение субблока Х1 и первого подключа. |
(2) | ⊞ | – | сложение субблока Х2 и второго подключа. |
(3) | ⊞ | – | сложение субблока Х3 и третьего подключа. |
(4) | ⊙ | – | умножение субблока Х4 и четвертого подключа. |
(5) | Å | – | сложение результатов шагов (1) и (3). |
(6) | Å | – | сложение результатов шагов (2) и (4). |
(7) | ⊙ | – | умножение результата шага (5) и пятого подключа. |
(8) | ⊞ | – | сложение результатов шагов (6) и (7). |
(9) | ⊙ | – | умножение результата шага (8) с шестым подключом. |
(10) | ⊞ | – | сложение результатов шагов (7) и (9). |
(11) | Å | – | сложение результатов шагов (1) и (9). |
(12) | Å | – | сложение результатов шагов (3) и (9). |
(13) | Å | – | сложение результатов шагов (2) и (10). |
(14) | Å | – | сложение результатов шагов (4) и (10). |
Выходом цикла являются четыре субблока, которые получают как результаты выполнения шагов (11), (12), (13) и (14). В завершение цикла переставляют местами два внутренних субблока (за исключением последнего цикла), и в результате формируется вход для следующего цикла.
Рис. 9. Схема алгоритма IDEA (режим шифрования)
Обозначения:
Xi – 16-битовый субблок открытого текста, i {1,…,4}
Yi – 16-битовый субблок шифртекста, i {1,…,4}
Zj(r) – 16-битовый подключ (субблок ключа), j {1,…,6}, r
{1,…,8}
– поразрядное суммирование по модулю 2 16-битовых субблоков
– сложение по модулю 216 16-битовых целых
– умножение по модулю 216 16-битовых целых (с нулевым субблоком, соответствующим 216)
После восьмого цикла осуществляют заключительное преобразование выхода:
(1) | ⊙ | – | умножение субблока Х1 и первого подключа. |
(2) | ⊞ | – | сложение субблока Х2 и второго подключа. |
(3) | ⊞ | – | сложение субблока Х3 и третьего подключа. |
(4) | ⊙ | – | умножение субблока Х4 и четвертого подключа. |
Наконец, эти результирующие четыре субблока Y1…Y4 вновь объединяют для получения блока шифртекста.
Создание подключей Zj также относительно несложно. Алгоритм использует всего 52 подключа (по шесть для каждого из восьми циклов и еще четыре для преобразования выхода). Сначала 128-битовый ключ делят на восемь 16-битовых подключей. Это – первые восемь подключей для алгоритма (шесть подключей – для первого цикла и первые два подключа – для второго цикла). Затем 128-битовый ключ циклически сдвигается влево на 25 бит и снова делится на восемь подключей. Первые четыре из них используют во втором цикле; последние четыре – в третьем цикле. Ключ снова циклически сдвигается влево еще на 25 бит для получения следующих восьми подключей и т.д., пока выполнение алгоритма не завершится.
Расшифрование осуществляют аналогичным образом, за исключением того, что порядок использования подключей становится обратным, причем ряд значений подключей заменяется на обратные значения. Подключи расшифрования являются в основном либо аддитивными, либо мультипликативными обратными величинами подключей шифрования (табл.10).
Таблица 10
Дата публикования: 2015-02-22; Прочитано: 1199 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!