В 1992 году исследования показали, что DES можно использовать трижды для обеспечения более мощного шифрования. Так родилась концепция тройного алгоритма DES (TDES). Одна из версий которого определяется формулой .
То есть ключ для 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.