Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Беззатеев и др. Блоковые шифры.pdf
Скачиваний:
222
Добавлен:
02.04.2015
Размер:
1.75 Mб
Скачать

28

В DES используется перестановочная матрица P , в ГОСТе используется 11-битный циклический сдвиг влево.

В DES 16 циклов, в ГОСТ — 32.

3.6.Алгоритм IDEA

Первая версия криптографического алгоритма IDEA, предложенного Ксуеджа Лаи (Xuejia Lai) и Джеймсом Мэсси (James Massey) [LaiMas90], появилась в 1990 году. Тогда алгоритм назывался PES (Proposed Encryption Standard, Предлагаемый Стандарт Шифрования). Год спустя, после демонстрации Бихамом и Шамиром дифференциального криптоанализа, авторы алгоритма усилили его защиту от несанкционированного доступа. Они назвали новый алгоритм IPES (Improved Proposed Encryption Standard, Улучшенный Предлагаемый Стандарт Шифрования). IPES изменил свое название и превратился в IDEA (International Data Encryption Algorithm, Международный Ал-

горитм Шифрования Данных).

IDEA — блоковый криптографический алгоритм. Он работает с блоками исходного текста длиной 64 бита и длиной ключа 128 бит. Один и тот же алгоритм используется для шифрования и для дешифрации. Основная идея алгоритма состоит в перемешивании операций разных алгебраических групп. Используются три алгебраические группы, операции которых перемешиваются:

XOR — сложение по модулю два;

сложение — сложение по модулю 216 (сложение, игнорирующее какое-либо переполнение);

умножение — умножение по модулю 216 +1 (умножение, игнорирующее какое-либо переполнение).

Более того, все эти операции производятся с 16-битовыми подблоками, и соответственно, этот алгоритм эффективен при работе на 16-битных процессорах. На Рис. 3.12 [Schn96] изображена блок-

схема алгоритма IDEA. Блок данных длиной 64 бита делится на четыре 16-битовых подблока: X1 , X2 , X 3 , X4 . Эти четыре подблока становятся входными данными для первого цикла алгоритма. Алгоритм содержит всего 8 таких циклов.

Во время каждого цикла над четырьмя подблоками выполняются операции XOR, сложения и умножения друг с другом и с 16-битовыми подблоками ключевой последовательности. В промежутках между каждым циклом второй и третий подблоки меняются местами.

Каждый цикл состоит из следующей последовательности действий:

1.Умножение X1 и первого подблока ключевой последовательности;

2.Сложение X2 со вторым подблоком ключевой последовательности;

3.Сложение X 3 с третьим подблоком ключевой последовательности;

4.Умножение X4 и четвертого подблока ключевой последовательности;

5.Операция ХОR результатов шагов 1) и 3);

6.Операция XOR результатов шагов 2) и 4);

7.Умножение результата шага 5) с пятым подблоком ключевой последовательности;

8.Сложение результатов шагов 6) и 7);

9.Умножение результатов шага 8) с шестым подблоком ключевой последовательности;

10.Сложение результатов шагов 7) и 9);

11.XOR результатов шагов 1) и 9);

12.XOR результатов шагов 3) и 9);

13.XOR результатов шагов 2) и 10);

14.XOR результатов шагов 4) и 10);

29

Рис. 3.11. Блок-схема алгоритма IDEA.

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

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

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

1.Умножение X1 и первого подблока ключевой последовательности;

2.Сложение X2 с вторым подблоком ключевой последовательности;

3.Сложение X 3 с третьим подблоком ключевой последовательности;

4.Умножение X4 и четвертого подблока ключевой последовательности;

Взаключение, четыре подблока соединяются для получения криптограммы.

Создание ключевых подблоков не составляет труда. Алгоритм использует 52 таких подблока (6 для каждого из восьми циклов и еще 4 для преобразования выходных данных).