Комбинирование блочных шифров
В принципе существует много способов комбинирования блочных шифров для получения новых алгоритмов. Одним из таких способов комбинирования является многократное шифрование, т.е. использование блочного алгоритма несколько раз с разными ключами для шифрования одного и того же блока открытого текста. Двукратное шифрование блока открытого текста одним и тем же ключом не приводит к положительному результату – повышению криптостойкости, поскольку, при использовании одного и того же алгоритма такое шифрование не влияет на сложность криптоаналитической атаки полного перебора.
Рассмотрим эффективность двукратного шифрования блока открытого текста с помощью двух разных ключей. Сначала шифруют блок M ключом , а затем получившийся шифртекст шифруют ключом . В результате двукратного шифрования получают шифртекст: . Расшифрование является обратным процессом: .
Если блочный шифр обладает свойствами группы, то всегда найдется такой ключ , что . Если же блочный алгоритм не является группой, то результирующий двукратно шифрованный блок текста окажется намного сложнее для криптоанализа методом полного перебора вариантов. Вместо попыток, где n – длина ключа в битах, потребуется попыток. В частности, если n = 64, то двукратно зашифрованный блок текста потребует попыток для нахождения ключа.
Более привлекательную идею предложил У. Тачмен. Суть этой идеи состоит в том, чтобы шифровать блок открытого текста P три раза с помощью двух ключей и (см. рис. 3.5). Процедура шифрования в этом случае:
,
то есть блок открытого текста M сначала шифруется ключом , затем расшифровывается ключом и окончательно зашифровывается ключом .
Этот режим иногда называют режимом EDE (encrypt-decrypt-encrypt). Введение в данную схему операции расшифрования позволяет обеспечить совместимость этой схемы со схемой однократного использования блочного алгоритма. Если в схеме трехкратного использования выбрать все ключи одинаковыми, то эта схема превращается в схему однократного использования того же шифра.
Процедура расшифрования выполняется в обратном порядке: , то есть блок шифртекста C сначала расшифровывается ключом , затем зашифровывается ключом и окончательно расшифровывается ключом .
Рис. 3.5. Схема троекратного шифрования с двумя ключами. |
Данная схема приводится в стандартах Х9.17 и ISO 8732 в качестве средства улучшения характеристик алгоритма DES и носит название "тройной DES" (3DES).
При трехкратном шифровании можно применить три различных ключа. При этом возрастает общая длина результирующего ключа. Процедуры шифрования и расшифрования описываются выражениями:
,
.
Трехключевой вариант имеет еще большую стойкость. Очевидно, что если требуется повысить безопасность большого парка оборудования, использующего определенный блочный алгоритм, то гораздо дешевле переключиться на схемы трехкратного шифрования, чем переходить на другой тип криптосистем.