logo search
Криптографическая защита информации

6.4. Комбинирование алгоритмов блочного шифрования

Как было указано выше, алгоритм шифрования DES сегодня уже не является достаточно стойким. Возникает естественный вопрос: нельзя ли использовать его в качестве строительного блока для создания другого алгоритма с более длинным ключом? Уже в 80-х годах была предложена идея многократного шифрования, т.е. использования блочного алгоритма несколько раз с разными ключами для шифрования одного и того же блока открытого текста.

Рассмотрим двукратное шифрование блока открытого текста с помощью двух разных ключей. В этом случае снача­ла шифруют блок М ключом k1, а затем получившийся шифртекст Еk1(М) шифруют ключом k2. В результате дву­кратного шифрования получают криптограмму

С = Еk2(Еk1(М)).

Если множество преобразований, реализуемых блочным шифром, является группой (относительно операции компо­зиции преобразований), то всегда найдется такой ключ k, что С = Еk(М). В таком случае двукратное шифрование не дает преимущества по сравнению с однократным шифрова­нием. В противном случае после двукратного шифрования нужно будет определять оба использованных ключа. Следо­вательно, трудоемкость перебора ключей по сравнению с однократным шифрованием возводится в квадрат.

Известно, что множество преобразований, реализуемых полной схемой DES, не образует группу. Там же показано, что множество преобразований DES порождает группу подстановок (степени 264), мощность которой превышает число 102499. Поэтому многократное шифрование с помощью DES имеет смысл.

Возможны варианты двойного и тройного шифрования с использованием алгоритма DES. В одном из них предлагается шифровать блок М открытого текста три раза с помощью двух ключей k1 и k2. Уравнение шифрования в этом случае имеет вид С = Еk1(Dk2k1(М))). Введение в такую схему операции расшифрования Dk2 обеспечивает совместимость схемы со схемой однократного использования DES. Для этого достаточно выбрать одинаковые ключи.

При трехкратном шифровании можно применить три различных ключа. Уравнение шифрования в этом случае принимает вид С = Еk3(Dk2k1(М))). При этом возрастает общая длина результирующего ключа и соответственно возрастает стойкость шифра. Следует отметить, что такое возрастание не может быть безграничным, оно происходит до тех пор, пока суммарное число ключей (256-s) не превзойдет общее число преобразований, реализуемых схемой, то есть общее число простых замен, "из которых состоит" данный шифр замены.