Зашифрование и расшифрование в IDEA.
Процесс шифрования предполагает два раунда и выходное преобразование. Один раунд состоит из преобразования входных блоков и субшифрования см рис. 17. Основой субшифрования является основной строительный блок алгоритма – мультипликативно-аддитивная (МА) структура.
Рис.17. Раунд шифрования IDEA
Раунд начинается с преобразования, которое с помощью операции сложения и умножения связывает четыре входных подблока с четырьмя подключами. Это преобразование представлено серым прямоугольником вверху рисунка. Четыре выходных блока этого преобразования связываются операцией XOR с целью получения двух 2-битовых блоков, которые затем подаются на вход структуры МА, представленной на рисунке нижним серым прямоугольником. Кроме того, структура МА получает на входе два подключа, а в результате обработки всех полученных данных на выходе этой структуры генерируется два 2-битовых значения.
Наконец, четыре блока, полученных на выходе первого преобразования связываются с помощью операции XOR с двумя блоками, полученными на выходе структуры МА, и в результате имеется четыре выходных блока (W11..W14) данного раунда см. рис.18
Рис.18. Выходное преобразование IDEA.
Выходное преобразование имеет структуру, подобную структуре той части предыдущего раунда шифрования, которая представлена на рисунке верхним серым прямоугольником. Единственное отличие в том, что второй и третий входные подблоки перед обработкой меняются местами. Фактически это означает отмену операции обмена, выполненной в конце второго раунда. Наличие этих лишних, по сути, перестановок обеспечивает возможность использования одной и той же структуры как для шифрования, так и для расшифрования. Кроме того, в отличие от предыдущих раундов на данной стадии используется не шесть подключей, а только четыре.
Подробно рассмотрим работу алгоритма. Выходы первого раунда расшифрования обозначим как (V11..V14). Промежуточные выходы первого раунда зашифрования и расшифрования обозначим соответственно как (I11..I14) и (J11..J14).
При шифровании на выходе функции выходного преобразования имеем
Y1 = W81Z49, Y2 = W83 Z50, Y1 = W82 Z51, Y4 = W84Z52.
При расшифровании на выходе первой подстадии первого раунда получаем
J11 = Y1U1, J12 = Y2 U2, J13 = Y3 U3, J14 = Y4U4.
Заменив соответствующие значения эквивалентными получим
J11 = Y1Z49-1 = W81 Z49Z49-1= W81,
J12 = Y2 -Z50 = W83 Z50 -Z50 = W83,
J13 = Y3 -Z51 = W82 Z51 -Z51 = W82,
J14 = Y4Z52-1 = W84 Z52Z52-1= W84.
Таким образом выходные значения первой подстадии первого раунда расшифрования совпадают с входными данными последней стадии шифрования за исключением того, что второй и третий блок оказываются переставленными. Следующие соотношения:
W81 = I81ÅMAR(I81ÅI83, I82ÅI84),
W82 = I83ÅMAR(I81ÅI83, I82ÅI84),
W83 = I82ÅMAL(I81ÅI83, I82ÅI84),
W84 = I84ÅMAL(I81ÅI83, I82ÅI84),
Где MAR(X, Y) обозначает правое выходное значение структуры МА для входных значений X и Y, а MAL(X, Y) соответственно левое выходное значение. Тогда
V11 = J11ÅMAR(J11ÅJ13, J12ÅJ14) =
= W81ÅMAR(W81ÅW82, W83ÅW84) =
= I81ÅMAR(I81ÅI83, I82ÅI84) Å MAR [I81ÅMAR(I81ÅI83, I82ÅI84) Å I83ÅMAR(I81ÅI83, I82ÅI84),
I82ÅMAL(I81ÅI83, I82ÅI84) Å I84ÅMAL(I81ÅI83, I82ÅI84)] =
= I81ÅMAR(I81ÅI83, I82ÅI84) Å MAR(I81ÅI83, I82ÅI84) =
= I81.
Точно так же получаем V11 = I81, V12 = I83, V13 = I82, V14 = I84. Таким образом, выходные данные второй подстадии процесса расшифрования совпадают с входными значениями предпоследней стадии процесса шифрования за исключением перестановки второго и третьего блоков. Далее можно показать, что соотношение сохраняется для всех последующих подстадий вплоть до V81 = I11, V82 = I13, V83 = I12, V84 = I14. Наконец входное преобразование процесса расшифрования эквивалентно преобразованию первой подстадии шифрования за исключением перестановки 2-3 блоков и результаты зашифрования/расшифрования совпадут.
Дата добавления: 2016-02-13; просмотров: 1020;