Пятикратное шифрование

Если тройное шифрование недостаточно безопасно - может быть, вам нужно шифровать ключи тройного шифрования, используя еще более сильный алгоритм - то кратность шифрования можно увеличить . Очень ус­тойчиво к вскрытию "встреча посередине" пятикратное шифрование . (Аргументы, аналогичные рассмотренным для двойного шифрования, показывают, что четырехкратное шифрование по сравнению с тройным лишь незн а-чительно повышает надежность.)

C = EKi(DK2(EKi(DK2(EKi(P)))))

P = DKi(EK2(DKi(EK2(DKi(Q))))

Эта схема обратно совместима с тройным шифрованием, если Кг2,ис однократным шифрованием, если КХ2 = Къ. Конечно, она будет еще надежней, если использовать пять независимых ключей .

15.5 Уменьшение длины ключа в CDMF

Этот метод был разработан IBM для продукта CDMF (Commercial Data Masking Facility, Коммерческое средство маскирования данных) (см. раздел 24.8), чтобы превратить 56-битовый ключ DES в 40-битовый, раз­решенный для экспорта [785]. Предполагается, что первоначальный ключ DES содержит биты четности.

(1) Обнуляются биты четности: биты 8, 16, 24, 32, 40, 48, 56, 64.

(2) Результат этапа (1) шифруется с помощью DES ключом 0xc408b0540bale0ae, результат шифрования об ъ-единяется посредством XOR с результатом этапа (1).

(3) В результате этапа (2) обнуляются следующие биты: 1, 2, 3, 4, 8, 16, 17, 18, 19, 2.0, 2.4, 32, 33, 34, 35, 36, 40, 48, 49, 50, 51, 52, 56, 64.

(4) Результат этапа (3) шифруется с помощью DES ключом 0xef2c041ce6382fe6. Полученный ключ использ у-ется для шифрования сообщения.

Не забывайте, что этот метод укорачивает ключ и, следовательно, ослабляет алгоритм .

15.6 Отбеливание

Отбеливанием(whitening) называется способ, при котором выполняется XOR части ключа с входом блоч­ного алгоритма и XOR другой части ключа с выходом блочного алгоритма. Впервые этот метод был применен для варианта DESX, разработанного RSA Data Security, Inc., а затем (по-видимому, независимо) в Khufu и Khafre. (Ривест и дал имя этому методу, это необычное использование слова.)

Смысл этих действий в том, чтобы помешать криптоаналитику получить пару "открытый текст/шифротекст" для лежащего в основе блочного алгоритма. Метод заставляет криптоаналитика угадывать не только ключ алг о-ритма, но и одно из значений отбеливания. Так как XOR выполняется и перед, и после блочного алгоритма, считается, что этот метод устойчив против вскрытия "встреча посередине".

С = Кг<ВЕКг{Р<ВКх) P = Kl®DKi(C®Ki)

Если К, = К2, то для вскрытия грубой силой потребуется 2п+т,р действий, где п - размер ключа, т - размер блока, ир - количество известных открытых текстов. Если Кх и К2 различны, то для вскрытия грубой силой с тремя известными открытыми текстами потребуется 2Й+И+1 действий. Против дифференциального и линейного криптоанализа, такие меры обеспечивают защиту только для нескольких битов ключа. Но с вычислительной точки зрения это очень дешевый способ повысить безопасность блочного алгоритма .

15.7 Многократное последовательное использование блочных алгоритмов

А как насчет шифрования сначала алгоритмом А и ключом КА, а затем еще раз алгоритмом В и ключом Кв? Может быть у Алисы и Боба различные представления о том, какой алгоритм безопаснее : Алиса хочет пользо­ваться алгоритмом А, а Боб - алгоритмом В. Этот прием, иногда называемый последовательным использова­нием(cascading), можно распространить и на большее количество алгоритмов и ключей .

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


вам это кажется. Криптография - достаточно темное искусство, если вы не совсем понимаете, что делаете, то можете легко попасть в беду.

Действительность намного светлее. Упомянутые предостережения верны, только если различные ключи за­висят друг от друга. Если все используемые ключи независимы, то сложность взлома последовательности алг о-ритмов по крайней мере не меньше, чем сложность взлома первого из применяемых алгоритмов [1033]. Если второй алгоритм чувствителен к вскрытию с выбранным открытым текстом, то первый алгоритм может обле г-чить это вскрытие и при последовательном использовании сделать второй алгоритм чувствительным к вскр ы-тию с известным открытым текстом. Такое возможное облегчение вскрытия не ограничивается только алгори т-мами шифрования: если вы позволите кому-то другому определить любой из алгоритмов, делающих что-то с вашим сообщением до шифрования, стоит удостовериться, что ваше шифрование устойчиво по отношению к вскрытию с выбранным открытым текстом. (Обратите внимание, что наиболее часто используемым алгоритмом для сжатия и оцифровки речи до модемных скоростей, применяемым перед любым алгоритмом шифрования, является CELP, разработанный NSA.)

Это можно сформулировать и иначе: При использовании вскрытия с выбранным открытым текстом поел е-довательность шифров взломать не легче, чем любой из шифров последовательности [858]. Ряд результатов показал, что последовательное шифрование взломать по крайней мере не легче, чем самый сильный из шифров последовательности, но в основе этих результатов лежат некоторые несформулированные предположения [528]. Только если алгоритмы коммутативны, как в случае каскадных потоковых шифров (или блочных шифров в р е-жиме OFB), надежность их последовательности не меньше, чем у сильнейшего из используемых алгоритмов .

Если Алиса и Боб не доверяют алгоритмам друг друга, они могут использовать их последовательно. Для по­токовых алгоритмов их порядок не имеет значения. При использовании блочных алгоритмов Алиса может сн а-чала использовать алгоритм А, а затем алгоритм В. Боб, который больше доверяет алгоритму В, может исполь­зовать алгоритм В перед алгоритмом А. Между алгоритмами они могут вставить хороший потоковый шифр. Это не причинит вреда и может значительно повысить безопасность .

Не забудьте, что ключи для каждого алгоритма последовательности должны быть независимыми . Если алго­ритм А использует 64-битовый ключ, а алгоритм В - 128-битовый ключ, то получившаяся последовательность должна использовать 192-битовый ключ. При использовании зависимых ключей у пессимистов гораздо больше шансов оказаться правыми.

15.8 Объединение нескольких блочных алгоритмов

Вот другой способ объединить несколько блочных алгоритмов, безопасность которого гарантировано будет по крайней мере не меньше, чем безопасность обоих алгоритмов . Для двух алгоритмов (и двух независимых ключей):

(1) Генерируется строка случайных битов R того же размера, что и сообщение М.

(2) R шифруется первым алгоритмом.

(3) М © R шифруется вторым алгоритмом.

(4) Шифротекст сообщения является объединением результатов этапов (2) и (3).

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

Этот метод можно расширить для нескольких алгоритмов, но добавление каждого алгоритма увеличивает шифротекст. Сама по себе идей хороша, но, как мне кажется, не очень практична .