Анимация
JavaScript
|
Главная Библионтека Анализ этого метода проводился только в той работе, в которой он и был опубликован . Понятно, что он не слабее одинарного шифрования 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 |