Здавалка
Главная | Обратная связь

Анализ эффективности алгоритма



Поскольку длина блоков исходного текста равна 64, поддержка каталогов частот использования блоков является для злоумышленника задачей, выходящей за пределы современных технических возможностей.

Однако, данный алгоритм, являясь первым опытом стандарта шифрования имеет ряд недостатков. За время, прошедшее после создания DES, компьютерная техника развилась настолько быстро, что оказалось возможным осуществлять исчерпывающий перебор ключей и тем самым раскрывать шифр. Стоимость этой атаки постоянно снижается. В 1998 г. была построена машина стоимостью около 100000 долларов, способная по данной паре <исходный текст, шифрованный текст> восстановить ключ за среднее время в 3 суток. Таким образом, DES, при его использовании стандартным образом, уже стал далеко не оптимальным выбором для удовлетворения требованиям скрытности данных.

Было выдвинуто большое количество предложений по усовершенствованию DES, которые отчасти компенсируют указанные недостатки. Мы рассмотрим два из них.

Наиболее широко известным предложением по усилению DES является так называемый «тройной DES», одна из версий которого определяется формулой

.

То есть, ключ для EDE3 имеет длину 56 ґ 3 = 168 бит, и шифрование 64-битового блока осуществляется шифрованием с одним подключом, расшифрованием с другим и затем шифрованием с третьим. (Причина, по которой вторым шагом является , а не , является совместимость с DES: если выбрать K=k,k,k, то EDE3K = DESk. Причина использования DES три раза вместо двух заключается в существовании атаки «встреча в середине» на двойной DES.)

Проблема с тройным DES состоит в том, что он гораздо медленнее, чем сам DES – его скорость составляет ровно одну треть исходной. При использовании EDE3 в режиме сцепления блоков это замедление скажется как на аппаратном, так и на программном (даже если попытаться компенсировать его дополнительной аппаратной частью) уровнях. Во многих случаях такое падение производительности неприемлемо.

В 1984 г. Рон Ривест предложил расширение DES, называемое DESX (DES eXtended), свободное от недостатков тройного DES.

DESX определяется как

= k2 Е DESk(k1 Е x)

То есть, ключ DESX K = k,k1,k2 состоит из 54+64+64=184 бит и включает три различных подключа: ключ «DES» k, предварительный «зашумляющий» ключ k1 и завершающий «зашумляющий» ключ k2.

Для шифрования блока сообщения мы складываем его поразрядно по модулю 2 с k1, шифруем его алгоритмом DES с ключом k и вновь поразрядно складываем его по модулю 2 с k2. Таким образом, затраты DESX на шифрование блока всего на две операции сложения по модулю 2 больше, чем затраты исходного алгоритма.

В отношении DESX замечательно то, что эти две операции «исключающее ИЛИ» делают шифр гораздо менее уязвимым по отношению к перебору ключей. Укажем, что DESX затрудняет получение даже одной пары <xi, DESXK(xi)> в том случае, когда злоумышленник организует атаку на шифр по выбранному исходному тексту, получая множество пар <Pj, DESK(Pj)>.

DESX предназначался для увеличения защищенности DES против перебора ключей и сохранения его стойкости против других возможных атак. Но DESX в действительности также увеличивает стойкость против дифференциального и линейного криптоанализа, увеличивая требуемое количество проб с выбранным исходным текстом до величины, превышающей 260. Дальнейшее увеличение стойкости против этих атак может быть достигнуто заменой в DESX операции «исключающее ИЛИ» на сложение, как это было сделано в

= k2 + DESk(k1 + x),

где сложение определяется следующим образом: L.R + L'.R' = (L а L').(R а R'), |L|=|R|=|L'|=|R'|= 32, а а обозначает сложение по модулю 232.

Сказанное не означает, что невозможно построить машину, раскрывающую DESX за приемлемое время. Но оно подразумевает, что такая машина должна использовать какую-либо радикально новую идею. Это не может быть машина, реализующая перебор ключей в общепринятом смысле.

Таким образом, практически во всех отношениях DESX оказывается лучше DES. Этот алгоритм прост, совместим с DES, эффективно реализуем аппаратно, может использовать существующее аппаратное обеспечение DES и в его отношении было доказано, что он увеличивает стойкость к атакам, основанным на переборе ключей.

 

Но практически употребляется лишь похожий на DES алгоритм IDEA – Improved Proposed Encryption Standard – улучшенный стандарт шифрования. Он отличается длиной ключа в 128 бит и смещением операций разных алгебраических групп для блоков длины 64 бита. Алгоритм IDEA разработан в Цюрихе Джеймсом Мэсси и опубликован в 1990 году. В отличие от алгоритмов FEAL, REDOC-II, LOKI, он выдержал множество атак критографов Англии, Германии, Израиля. Он считается более стойким, чем традиционный DES.

 

 

АЛГОРИТМ ШИФРОВАНИЯ ДАННЫХ 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 (модуль 65536): операция обозначается как ;

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

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

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

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

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

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

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

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

(2) - сложение субблока Х2 и второго подключа.

(3) - сложение субблока Х3 и третьего подключа.

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

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

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

 

Обозначения:

Xi – 16-битовый субблок открытого текста, i=1…4

Yj – 16-битовый субблок шифртекста, j=1…4

Zj(r) – 16-битовый подключ (субблок ключа), j=1…6, r=1…8


– поразрядное суммирование по модулю 2 16-битовых субблоков

б – сложение по модулю 216 16-битовых целых

т – умножение по модулю 216 16-битовых целых (с нулевым субблоком, соответствующим 216)

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

 

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

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

(2) - сложение субблока Х2 и второго подключа.

(3) - сложение субблока Х3 и третьего подключа.

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

Наконец, эти результирующие четыре субблока Y1…Y4 вновь объединяют для получения блока шифртекста.

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

Расшифрование осуществляют аналогичным образом, за исключением того, что порядок использования подключей становится обратным, причем ряд значений подключей заменяется на обратные значения. Подключи расшифрования являются в основном либо аддитивными, либо мультипликативными обратными величинами подключей шифрования (табл. 3.10).

Таблица 3.10

Подключи шифрования и расшифрования алгоритма 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 -Z3(8) -Z2(8) Z4(8)-1 Z5(7) Z6(7)
Z1(3) Z2(3) Z3(3) Z4(3) Z5(3) Z6(3) Z1(7)-1 -Z3(7) -Z2(7) Z4(7)-1 Z5(6) Z6(6)
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)
Z1(5) Z2(5) Z3(5) Z4(5) Z5(5) Z6(5) Z1(5)-1 -Z3(5) -Z2(5) Z4(5)-1 Z5(4) Z6(4)
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)
Z1(7) Z2(7) Z3(7) Z4(7) Z5(7) Z6(7) Z1(3)-1 -Z3(3) -Z2(3) Z4(3)-1 Z5(2) Z6(2)
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 -Z3(1) -Z2(1) Z4(1)-1

Для реализации алгоритма IDEA было принято предложение, что нулевой субблок равен 216=-1; при этом мультипликативная обратная величина от 0 равна 0 [102]. Вычисление значений мультипликативных обратных величин требует некоторых затрат, но это приходиться делать только один раз для каждого ключа расшифрования

 

 







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.