Анимация
JavaScript


Главная  Библионтека 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 [ 22 ] 23 24 25 26 27 28 29 30

один этап

семь

этап


V1 V2

Y3 Y4

Xi : 16-битовый подблок открытого текста Yi : 16-битовый подблок шифротекста Zi(r) : 16-битовый подблок ключа

ф : побитовое "исключающее или" (xOR) 16-битовых подблоков Ш: сложение по модулю 216 16-битовых целых ©: умножение по модулю 216+1 16-битовых целых при условии, что нулевой подблок соответствует 216

Рис. 13-9. IDEA.

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

После восьмого этапа выполняется заключительное преобразование:

(1) Перемножаются Xl и первый подключ.

(2) Складываются X2 и второй подключ.

(3) Складываются X3 и третий подключ.

(4) Перемножаются X4 и четвертый подключ.

Наконец четыре подблока снова соединяются, образуя шифротекст.

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

Дешифрирование выполняется точно также за исключением того, что подключи инвертируются и слегка и з-меняются. Подключи при дешифрировании представляют собой обратные значения ключей шифрования по отношению к операциям либо сложения, либо умножения. (Для IDEA подблоки, состоящие из одних нулей, считаются равными 216 = -1 для умножения по модулю 216 + 1, следовательно, обратным значением 0 относ и-тельно умножения является 0.) Эти вычисления могут занять некоторое время, но их нужно выполнить один раз для каждого ключа дешифрирования. В Табл. 13-4 представлены подключи шифрования и соответствующие



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

Этап

Табл. 13-4.

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

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

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

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)

Z1(2)

Z2(2)

Z3(2)

Z4(2)

Z5(2)

Z6(2)

Z1(8)-1

-Z2(8)

-Z3(8)

Z4(8)-1

Z5(7)

Z6(7)

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)

Z1(4)

Z2(4)

Z3(4)

Z4(4)

Z5(4)

Z6(4)

Z1(6)-1

-Z2(6)

-Z3(6)

Z4(6)-1

Z5(5)

Z6(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)

Z1(6)

Z2(6)

Z3(6)

Z4(6)

Z5(6)

Z6(6)

Z1(4)-1

-Z2(4)

-Z3(4)

Z4(4)-1

Z5(3)

Z6(3)

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)

Z1(8)

Z2(8)

Z3(8)

Z4(8)

Z5(8)

Z6(8)

Z1(2)-1

-Z2(2)

-Z3(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

Современные программные реализации IDEA примерно в два раза быстрее, чем DES. На компьютере с i386/33 МГц IDEA шифрует данные со скоростью 880 Кбит/с, а на компьютере с i486/33 МГц - со скоростью 2400 Кбит/с. Вы могли подумать, что IDEA должен был быть побыстрее, но умножения - недешевое удовольс т-вие. Умножение двух 32-битовых чисел на процессоре i486 занимает 40 тактов (10 на процессоре Pentium).

Реализация PES на базе СБИС шифрует данные со скоростью 55 Мбит/с при тактовой частоте 25 МГц [208,398]. Другая СБИС, разработанная ETH Zurich и состоящая из of 251000 транзисторов на кристалле пл о-щадью 107.8 мм2, шифрует данные с помощью алгоритма IDEA со скоростью 177 Мбит/с при тактовой частоте

25 МГц [926, 207, 397].

Криптоанализ IDEA

Длина ключа IDEA равна 128 битам - более чем в два раза длиннее ключа DES. При условии, что наиболее эффективным является вскрытие грубой силой, для вскрытия ключа потребуется 2 128 (1038) шифрований. Создайте микросхему, которая может проверять миллиард ключей в секунду, объедините миллиард таких микр о-схем, и вам потребуется 1013 лет для решения проблемы - это больше, чем возраст вселенной. 10 24 таких микросхем могут найти ключ за день, но во вселенной не найдется столько атомов кремния, чтобы построить такую машину. Наконец мы чего-то достигли, хотя в некоторых темных вопросах я лучше останусь сторонним набл ю-дателем.

Может быть вскрытие грубой силой - не лучший способ вскрытия IDEA. Алгоритм все еще слишком нов, чтобы можно было говорить о каких-то конкретных криптографических результатах. Разработчики сделали все возможное, чтобы сделать алгоритм устойчивым к дифференциальному криптоанализу. Они определили пон я-тие марковского шифра и продемонстрировали, что устойчивость к дифференциальному криптоанализу может быть промоделирована и оценена количественно [931, 925]. (Для сравнения с алгоритмом IDEA, устойчивость которого к дифференциальному криптоанализу была усилена, и который показан на Рис. 13-9, на Рис. 13-10 приведен первоначальный алгоритм PES. Удивительно, как такие незначительные изменения могут привести к столь большим различиям.) В [925] Лай (Lai) утверждал (он привел подтверждение, но не доказательство), что IDEA устойчив к дифференциальному криптоанализ уже после 4 из 8 этапов. Согласно Бихаму, его попытка вскрыть IDEA с помощью криптоанализа со связанными кл ючами также не увенчалась успехом [160].



один этап

семь

этап

f

Выход Z3


Xi : 16-битовый подблок открытого текста Yi : 16-битовый подблок шифротекста Z,(r) : 16-битовый подблок ключа

ф : побитовое "исключающее или" (xOR) 16-битовых подблоков Ш: сложение по модулю 216 16-битовых целых ©: умножение по модулю 216+1 16-битовых целых при условии, что нулевой подблок соответствует 216

Рис. 13-10. PES.

Вилли Майер (Willi Meier) исследовал три алгебраических операции IDEA и показал, что, хотя они нес о-вместимы, есть случаи, когда эти операции можно упростить так, чтобы в некоторой степени облегчить [1050]. Его вскрытие 2-этапного IDEA оказалось эффективнее вскрытия грубой силой (2 42 операций), но для IDEA с 3 и более этапами эффективность этого вскрытия была ниже вскрытия грубой силой. Безопасность полного 8-этапного IDEA осталась непоколебимой.

Джоан Дэймен (Joan Daemen) открыла класс слабых ключей IDEA [405, 409]. Эти ключи не являются сл а-быми в том смысле, в котором слабы некоторые ключи DES, для которых функция шифрования обратна самой себе. Слабость этих ключей состоит в том, что взломщик может легко определить их с помощью вскрытия с выбранным открытым текстом. Например, слабым является следующий ключ (в шестнадцатиричной записи):

0000,0000,0x00,0000,0000,000x,xxxx,x000

В позиции "x" может стоять любая цифра. При использовании такого ключа побитовое XOR определенных пар открытых текстов равно побитовому XOR получившихся пар шифротекстов.

В любом случае вероятность случайной генерации одного из таких слабых ключей очень мала: 1/2 96. 0пас-ность случайно выбрать такой ключ практически не существует. К тому же, несложно модифицировать IDEA так, чтобы исключить наличие слабых ключей - достаточно выполнить XOR каждого подключа с числом 0x0dae

[409].

Хотя попыток выполнить криптоанализ IDEA было много, мне неизвестно ни об одной успешной.

Режимы работы и варианты IDEA

IDEA может работать в любом из режимов работы блочного шифра, описанных в главе 9. Против двойных реализаций IDEA может быть предпринято то же вскрытие "встреча посередине", что и против DES (см. раздел



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 [ 22 ] 23 24 25 26 27 28 29 30