Анимация
JavaScript


Главная  Библионтека 

0 1 [ 2 ] 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

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

Чтобы затруднить анализ идентичных блоков в одних и тех же местах различных сообщений, можно испол ь-зовать IV. В отличии от использования IV в других режимах в данном случае перед шифрованием ECB выполняется XOR каждого блока сообщения с IV.

Мэтт Блэйз (Matt Blaze) разработал этот режим для своей UNIX Cryptographic File System (CFS, криптографическая файловая система). Это хороший режим, поскольку скрытым состоянием является только одно ши ф-рование в режиме ECB, маска может быть сгенерирована только один раз и сохранена . В CFS в качестве блочного алгоритма используется DES.

xDESt

В [1644, 1645] DES используется как компонент ряда блочных алгоритмов с увеличенными размерами кл ю-чей и блоков. Эти схемы никак не зависят от DES, и в них может использоваться любой блочный алгоритм .

Первый, xDES1, представляет собой просто схему Luby-Rackoff с блочным шифром в качестве базовой функции (см. раздел 14.11). Размер блока в два раза больше размера блока используемого блочного фильтра, а размер ключа в три раза больше, чем у используемого блочного фильтра . В каждом из з этапов правая половина шифруется блочным алгоритмом и одним из ключей, затем выполняется XOR результата и левой половины, и половины переставляются.

Это быстрее, чем обычное тройное шифрование , так как тремя шифрованиями шифруется блок, длина которого в два раза больше длины блока используемого блочного алгоритма . Но при этом существует простое вскрытие "встреча посередине", которое позволяет найти ключ с помощью таблицы размером 2 k, где k - это размер ключа блочного алгоритма. Правая половина блока открытого текста шифруется с помощью всех во з-можных значений к1, выполняется XOR с левой половиной открытого текста и полученные значения сохран я-ются в таблице. Затем правая половина шифротекста шифруется с помощью всех возможных значений Кз, и выполняется поиск совпадений в таблице. При совпадении пара ключей К1 и Кз - возможный вариант правого ключа. После нескольких повторений вскрытия останется только один кандидат. Таким образом, xDES1 не является идеальным решением. Даже хуже, существует вскрытие с выбранным открытым текстом, доказывающее, что xDES1 не намного сильнее используемого в нем блочного алгоритма [858].

В xDES2 эта идея расширяется до 5-этапного алгоритма, размер блока которого в 4 раза, а размер ключа в 10 раз превышают размеры блока и ключа используемого блочного шифра . На 11th показан один этап xDES2, каждый из четырех подблоков по размеру равен блоку используемого блочного шифра, а все 10 ключей независимы.


Рис. 15-4. Один этап xDES2.

К тому же, эта схема быстрее, чем тройное шифрование : для шифрования блока, который в четыре раза больше блока используемого блочного шифра, нужно 10 шифрований . Однако этот метод чувствителен к дифференциальному криптоанализу [858] и использовать его не стоит. Такая схема остается чувствительной к дифференциальному криптоанализу, даже если используется DES с независимыми ключами этапов.

Для ; > з xDES вероятно слишком велик, чтобы использовать его в качестве блочного алгоритма . Например, размер блока для xDES в 6 раз больше, чем у лежащего в основе блочного шифра, ключ в 21 раз длиннее, а для шифрования блока, который в 6 раз длиннее блока лежащего в основе блочного шифра, нужно 21 шифрование .



Это медленнее, чем тройное шифрование .

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

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

C = Ek1( Dk2( Ek3( Dk2( Ek1( P))))) P = Dk1( Ek2( Dk3( Ek2( Dk1(C)))))

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

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 ключом 0xc408b0540ba1e0ae, результат шифрования об ъ-единяется посредством 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 выполняется и перед, и после блочного алгоритма, считается, что этот метод устойчив против вскрытия "встреча посередине" .

C = K3 е ek2( P е K1) P = K1 е DK2(c е K3)

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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



0 1 [ 2 ] 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17