РефератыГосударство и правоАлАлгоритм шифрования данных IDEA

Алгоритм шифрования данных IDEA



Алгоритм IDEA

(International Data Encryption Algorithm

) является блочным шифром. Он оперирует 64-битовыми блоками открытого текста. Несомненным достоинством алгоритма IDEA является то, что его ключ имеет длину 128 бит. Один и тот же алгоритм используется и для шифрования, и для дешифрования.


Первая версия алгоритма IDEA была предложена в 1990 г., ее авторы - Х.Лей и Дж.Мэсси. Первоначальное алгоритм назывался PES

(Proposed Encryption Standard). Улучшенный вариант этого алгоритма, разработанный в 1991 г., получил название IPES

(Improved Proposed Encryption Standard). В 1992 г. IPES изменил свое имя на IDEA. Алгоритм IDEA использует при шифровании процессы смешивания и рассеивания, которые легко реализуются аппаратными и программными средствами.


В IDEA используются следующие математические операции:


· поразрядное сложение по модулю 2 (операция "исключающее ИЛИ"); операция обозначается как (+);


· сложение беззнаковых целых по модулю 216
; операция обозначается как [+];


· умножение беззнаковых целых по модулю (216
+1), причем блок из 16 нулей рассматривается как 216
; операция обозначается как (·).


Все операции выполняются над 16-битовыми субблоками.


Эти три операции несовместимы в том смысле, что:


· никакая пара из этих трех операций не удовлетворяет ассоциативному закону, например a[+](b(+)c)#(a[+]b)(+)c;


· никакая пара из этих трех операций не удовлетворяет дистрибутивному закону, например a[+](b(·)c)#(a[+]b)(·)(a[+]с).


Комбинирование этих трех операций обеспечивает комплексное преобразование входных данных, существенно затрудняя крипто-анализ IDEA по сравнению с DES, который базируется исключительно на операции "исключающее ИЛИ".


Общая схема алгоритма IDEA приведена на рис.1. 64-битовый блок данных делится на четыре 16-битовых субблока. Эти четыре субблока становятся входом в первый цикл алгоритма. Всего выполняется восемь циклов. Между циклами второй и третий субблоки меняются местами. В каждом цикле выполняется следующая последовательность операций:


1. (·) - умножение субблока X1
и первого подключа.


2. [+] - сложение субблока X2
и второго подключа.


3. [+] - сложение субблока X3
и третьего подключа.


4. (·) - умножение субблока X4
и четвертого подключа.


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.


Рис.1. Cхема алгоритма IDEA (режим шифрования)


Выходом цикла являются четыре субблока, которые получаются как результаты выполнения шагов 11, 12, 13 и 14. В завершение цикла второй и третий субблоки меняются местами (за исключением последнего цикла). В результате формируется вход для следующего цикла.


После восьмого цикла осуществляется заключительное преобразование выхода:


1. (·) - умножение субблока X1
и первого подключа.


2. [+] - сложение субблока X2
и второго подключа.


3. [+] - сложение субблока X3
и третьего подключа.


4. (·) - умножение субблока X4
и четвертого подключа.


Полученные четыре субблока Y1
...Y4
объединяют в блок шифртекста.


Создание подключей Z1
...Z6
также относительно несложно. Алгоритм использует всего 52 подключа (по шесть для каждого из восьми циклов и еще четыре для преобразования выхода). Сначала 128-битовый ключ делится на восемь 16-битовых подключей. Это - первые восемь подключей для алгоритма (шесть подключей - для первого цикла и первые два подключа - для второго). Затем 128-битовый ключ циклически сдвигается влево на 25 бит и снова делится на восемь подключей (четыре подключа - для второго цикла и четыре подключа - для тр

етьего). Ключ снова циклически сдвигается влево на 25 бит для получения следующих восьми подключей и т.д., пока выполнение алгоритма не завершится.


Дешифрование осуществляется аналогичным образом, за исключением того, что порядок использования подключей становится обратным, причем ряд подключей дешифрования являются или аддитивными (-x), или мультипликативными (1/x) обратными величинами подключей шифрования (табл.1).






Таблица 1


Подключи шифрования и дешифрования алгоритма IDEA










































Цикл


Подключи шифрования


Подключи дешифрования


1


Z1
(1)
Z2
(1)
Z3
(1)
Z4
(1)
Z5
(1)
Z6
(1)


Z1
(9)-1
-Z2
(9)
-Z3
(9)
Z4
(9)-1
Z5
(8)
Z6
(8)


2


Z1
(2)
Z2
(2)
Z3
(2)
Z4
(2)
Z5
(2)
Z6
(2)


Z1
(8)-1
-Z3
(8)
-Z2
(8)
Z4
(8)-1
Z5
(7)
Z6
(7)


3


Z1
(3)
Z2
(3)
Z3
(3)
Z4
(3)
Z5
(3)
Z6
(3)


Z1
(7)-1
-Z2
(7)
-Z3
(7)
Z4
(7)-1
Z5
(6)
Z6
(6)


4


Z1
(4)
Z2
(4)
Z3
(4)
Z4
(4)
Z5
(4)
Z6
(4)


Z1
(6)-1
-Z3
(6)
-Z2
(6)
Z4
(6)-1
Z5
(5)
Z6
(5)


5


Z1
(5)
Z2
(5)
Z3
(5)
Z4
(5)
Z5
(5)
Z6
(5)


Z1
(5)-1
-Z2
(5)
-Z3
(5)
Z4
(5)-1
Z5
(4)
Z6
(4)


6


Z1
(6)
Z2
(6)
Z3
(6)
Z4
(6)
Z5
(6)
Z6
(6)


Z1
(4)-1
-Z3
(4)
-Z2
(4)
Z4
(4)-1
Z5
(3)
Z6
(3)


7


Z1
(7)
Z2
(7)
Z3
(7)
Z4
(7)
Z5
(7)
Z6
(7)


Z1
(3)-1
-Z2
(3)
-Z3
(3)
Z4
(3)-1
Z5
(2)
Z6
(2)


8


Z1
(8)
Z2
(8)
Z3
(8)
Z4
(8)
Z5
(8)
Z6
(8)


Z1
(2)-1
-Z3
(2)
-Z2
(2)
Z4
(2)-1
Z5
(1)
Z6
(1)


Преобра- зование выхода


Z1
(9)
Z2
(9)
Z3
(9)
Z4
(9)


Z1
(1)-1
-Z2
(1)
-Z3
(1)
Z4
(1)-1




Для реализации алгоритма IDEA было принято соглашение, что мультипликативная обратная величина (1/x) от 0 равна 0.


Алгоритм IDEA обладает рядом преимуществ перед алгоритмом DES. Он зачительно безопаснее алгоритма DES, поскольку 128-битовый ключ алгоритма IDEA вдвое больше ключа DES. Внутренняя структура алгоритма IDEA обеспечивает лучшую устойчивость к криптоанализ

у. Существующие программные реализации примерно вдвое быстрее реализаций алгоритма DES. Алгоритм IDEA запатентован в Европе и США.

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: Алгоритм шифрования данных IDEA

Слов:1099
Символов:9155
Размер:17.88 Кб.