Последовательность преобразований отдельного раунда

Рассмотрим последовательность преобразований отдельного раунда.

Одним из основных элементов алгоритма, обеспечивающих диффузию, является структура, называемая МА (умножение/сложение):


Рис. 3.2.Структура МА (умножение/сложение)

На вход этой структуре подаются два 16-битных значения и два 16-битных подключа, на выходе создаются два 16-битных значения. Исчерпывающая компьютерная проверка показывает, что каждый бит выхода этой структуры зависит от каждого бита входов незашифрованного блока и от каждого бита подключей. Данная структура повторяется в алгоритме восемь раз, обеспечивая высокоэффективную диффузию.

Раунд начинается с преобразования, которое комбинирует четыре входных подблока с четырьмя подключами, используя операции сложения и умножения. Четыре выходных блока этого преобразования комбинируются, используя операцию XOR для формирования двух 16-битных блоков, которые являются входами МА структуры. Кроме того, МА структура имеет на входе еще два подключа и создает два 16-битных выхода.


Рис. 3.3.I-ый раунд IDEA

В заключении четыре выходных подблока первого преобразования комбинируются с двумя выходными подблоками МА структуры, используя XOR для создания четырех выходных подблоков данной итерации. Заметим, что два выхода, которые частично создаются вторым и третьим входами ( Х2 и Х3 ), меняются местами для создания второго и третьего выходов ( W12 и W13 ). Это увеличивает перемешивание бит и делает алгоритм более стойким для дифференциального криптоанализа.

Рассмотрим девятый раунд алгоритма, обозначенный как заключительное преобразование. Это та же структура, что была описана выше. Единственная разница состоит в том, что второй и третий входы меняются местами. Это сделано для того, чтобыдешифрование имело ту же структуру, что и шифрование. Заметим, что девятая стадия требует только четыре входныхподключа, в то время как для первых восьми стадий для каждой из них необходимо шесть входных подключей.


Рис. 3.4.Заключительное преобразование