КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Федеральный стандарт США — DES
Стандарты блочного шифрования
Стандарт шифрования данных DES (Data Encryption Standard), который ANSI называет Алгоритмом шифрования данных DEA (Data Encryption Algorithm), a ISO — DEA-1, за 20 лет стал мировым стандартом [21,22]. За годы своего существования он выдержал натиск различных атак и при известных ограничениях все еще считается криптостойким. DES представляет собой блочный шифр, шифрующий данные 64-битовыми блоками. С одного конца алгоритма вводится 64-битовый блок открытого текста, а с другого конца выходит 64-битовый блок шифротекста. DES является симметричным алгоритмом: для шифрования и дешифрования используются одинаковые алгоритм и ключ (за исключением небольших различий в использовании ключа). Длина ключа равна 56 битам. (Ключ обычно представляется 64-битовым числом, но каждый восьмой бит используется для проверки четности и игнорируется. Биты четности являются наименьшими значащими битами байтов ключа.) Ключ, который может быть любым 56-битовым числом, можно изменить в любой момент времени. Криптостойкость полностью определяется ключом. Фундаментальным строительным блоком DES является комбинация подстановок и перестановок. DES состоит из 16 циклов (рис. 3.1). В общем виде цикл преобразования представлен на рисунке 3.2. Если Li и Ri - левая и правая половины, полученные в результате i -й итерации, Кi — 48-битный ключ для цикла i, а f - функция, выполняющая все подстановки, перестановки и XOR с ключом, то один цикл преобразования можно представить как
(Li , Ri) = (Ri-1 , Li-1 Å f(Ri-1 , Кi)).
Учитывая подстановку Fi (×) и перестановку Ti (×), цикл преобразования можно представить так, как это сделано на рисунке 3.3. Из рисунка 3.3 видно, что каждый цикл DES представляет собой композиционный шифр с двумя последовательными преобразованиями — подстановкой Fi (×) и перестановкой Ti (×) (за исключением последнего, шестнадцатого цикла, где перестановка опускается).
Рисунок 3.1 - Схема DES - преобразования
Рисунок 3.2 – Общий вид цикла DES - преобразования
Рисунок 3.3 – Цикл DES с учётом перестановки и подстановки
Подстановка
Fi (Li-1 , Ri-1) = (Ri-1 , Li-1 Å f(Ri-1 , Кi))
является инволюцией, так как
Fi (Fi (Li-1 , Ri-1)) = Fi ((Ri-1 , Li-1 Å f(Ri-1 , Кi))) = ((Ri-1 , Li-1 Å f (Ri -1 , Кi)) Å (f(Ri-1 , Кi)) = (Li-1 , Ri-1).
В свою очередь, подстановка T (L‘i, Ri’) = (Ri’, L‘i) также является инволюцией, поскольку
T (T (L‘i , Ri’)) = T (Ri’, L‘i) = (L‘i , Ri’)
Если обозначить начальную и завершающую перестановки как (IP) и (IP)-1, то прямое DES-преобразование (шифрование) реализует функцию
DES = (IP) F1TF2T... F15TF16 (IP)-1
а обратное DES-преобразование (дешифрование) реализует функцию
DES -l = (IP)-l F l6 TF 15 T... F 2 TF 1(IP).
Таким образом, DES является шифром Фейстеля и сконструирован так, чтобы выполнялось полезное свойство: для шифрования и дешифрования используется один и тот же алгоритм. Единственное отличие состоит в том, что ключи должны использоваться в обратном порядке.
Рисунок 3.4 – Один цикл DES – преобразования
То есть если при шифровании использовались ключи К 1, К 2, К 3,… К 16 , то ключами дешифрования будут K 16, K 15, К 14, …, К 1 Алгоритм использует только стандартную арифметик 64-битовых чисел и логические операции, поэтому легко реализуется на аппаратном уровне. DES работает с 64-битовым блоком открытого текста. После первоначальной перестановки блок разбивается на правую и левую половины длиной по 32 бита. Затем выполняется 16 преобразований (функция f), в которых данные объединяются с ключом. После шестнадцатого цикла правая и левая половины объединяются, и алгоритм завершается заключительной перестановкой (обратной по отношению к первоначальной). На каждом цикле (см. рисунок 3.4) биты ключа сдвигаются, и затем из 56 битов ключа выбираются 48 битов. Правая половина данных увеличивается до 48 битов с помощью перестановки с расширением, объединяется посредством XOR с 48 битами смещенного и переставленного ключа, проходит через 8 S -блоков, образуя 32 новых бита, и переставляется снова. Эти четыре операции и выполняются функцией f. Затем результат функции f объединяется с левой половиной с помощью другого XOR. В итоге этих действий появляется новая правая половина, а старая правая становится новой левой половиной. Эти действия повторяются 16 раз. образуя 16 циклов DES. Начальная перестановка выполняется еще до первого цикла, при этом входной блок переставляется так, как показано в таблице 3.1.
Таблица 3.1 - DES — начальная перестановка
Таблица 3.2 - DES — преобразование ключа
Эту и все другие таблицы настоящей главы
следует читать слева направо и сверху вниз. Например, начальная перестановка перемещает бит 58 в позицию 1, бит 50 — в позицию 2, бит 42 в позицию 3 и так далее. Начальная перестановка и соответствующая заключительная перестановка не влияют на криптостойкость DES (перестановка в первую очередь служит для облегчения побайтной загрузки данных открытого текста и шифротекста в микросхему DES). Процедура преобразования ключа сводится к следующим действиям. Сначала 64-битовый ключ DES уменьшается до 56-битового ключа отбрасыванием каждого восьмого бита, как показано в таблице 3.2. Эти биты используются только для контроля четности, позволяя проверять правильность ключа. После извлечения 56-битного ключа для каждого из 16 циклов генерируется новый 48-битный подключ. Эти подключи, К2, определяются следующим образом. Сначала 56-битный ключ делится на две 28-битные половины. Затем половины циклически сдвигаются влево на один или два бита в зависимости от номера цикла. Этот сдвиг показан в таблице 3.З.
Таблица П.З. DES — сдвиг ключа в зависимости от номера цикла
После сдвига выбирается 48 из 56 битов. Так как при этом не только выбирается подмножество битов, но и изменяется их порядок, эта операция получила название перестановкасо сжатием. Ее результатом является набор из 48 битов. Перестановка со сжатием определена в табл. П.4. Например, бит сдвинутого ключа в позиции 33 перемещается в позицию результата, а 18-й бит сдвинутого ключа отбрасывается.
Таблица П.4 - DES — перестановка со сжатием
Из-за сдвига для каждого подключа используются различные подмножества бит ключа. Каждый бит используется приблизительно в четырнадцати из шестнадцати подключей, при этом не все биты используются одинаковое число раз. Операция перестановки с расширением правой половины данных, Ri, от 32 до 48 битов и изменением их порядка, называется перестановкой с расширением. У этой операции две задачи: привести размер правой половины в соответствие с ключом для операции XOR и получить более длинный результат, который можно будет сжать в ходе операции подстановки. Однако криптографический смысл данной операции состоит в том, что за счет влияния одного бита на две подстановки быстрее возрастает зависимость битов результата от битов исходных данных. Данная зависимость называется лавинным эффектом. DES спроектирован так, чтобы как можно быстрее добиться зависимости каждого бита шифротекста от каждого бита открытого текста и каждого бита ключа. Перестановка с расширением показана на рисунке 3.5. Иногда она называется E -блоком (от expansion). Для каждого 4-битного входного блока первый и четвертый биты представляют собой два бита выходного блока, а второй и третий биты — один бит выходного блока. В табл. И.5 показано соответствие позиций результата и исходных данных. Например, бит входного блока в позиции 3 переместится в позицию 4 выходного блока, а бит входного блока в позиции 21 — в позиции 30 и 32 выходного блока. Рисунок 3.5 - DES — схема перестановки с расширением
Таблица 3.5 - DES — перестановка с расширением Хотя выходной блок больше входного, каждый входной блок генерирует уникальный выходной блок. После объединения сжатого блока с расширенным блоком с помощью XOR над 48-битным результатом выполняется операция подстановки. Подстановки производятся в восьми блоках подстановки, или S -блоках (от substitution). У каждого S-блока есть 6-битный вход и 4-битный выход, всего используется восемь различных S -блоков (для восьми S -блоков DES потребуется 256 байтов памяти). 48 битов делятся на восемь 6-битных подблоков. Каждый отдельный подблок обрабатывается отдельным S -блоком: первый подблок - первым S -блоком, второй - вторым S-блоком и так далее (см. рисунок 3.6). Рисунок 3.6 - DES — подстановка при помощи S-блоков
Каждый S -блок представляет собой таблицу из двух строк и шестнадцати столбцов. Каждый элемент в блоке является 4-битным числом. По шести входным битам S -блока определяется, под какими номерами столбцов и строк следует искать выходное значение. Все восемь S -блоков показаны в таблицах 3.6 - 3.13.
Таблица 3.6 - DES — S-блок 1
Таблица 3.7 - DES — S-блок 2
Таблица 3.8 - DES — S-блок 3
Таблица 3.9 - DES — S-блок 4
Таблица 3.10 - DES — S-блок 5
Таблица 3.11 - DES — S-блок 6
Таблица 3.12 - DES — S-блок 7
Таблица 3.13 - DES — S-блок 8
Таблица 3.14 - DES — перестановка с помощью Р -блоков
Таблица 3.15 - DES — заключительная перестановка
Входные биты особым образом определяют элемент S -блока. Рассмотрим 6-битовый вход S -блока: b1, b2, b3, b4, b5, и b6. Биты b1 и b6 объединяются, образуя 2-битное число от нуля до трех, соответствующее строке таблицы. Средние четыре бита, с b2 по b5, объединяются, образуя 4-битное число от нуля до пятнадцати, соответствующее столбцу таблицы. Например, пусть на вход шестого S -блока (то есть биты функции XOR с 31 по 36) попадает 110011. Первый и последний биты, объединяясь, образуют 11, что соответствует строке три шестого S -блока. Средние четыре бита образуют 1001, что соответствует столбцу девять того же S -блока. Элемент шестого S -блока, находящийся на пересечении строки три и столбца девять, - это 14 (строки и столбцы нумеруются с нуля, а не с единицы). Вместо 110011 подставляется 1110. Намного легче реализовать S -блоки программно в виде массивов с 64 элементами. Для этого потребуется переупорядочить элементы. Такой способ описания S -блоков помогает понять, как они работают. Каждый S -блок можно рассматривать как функцию подстановки 4-битного элемента: b2 по b5 являются входом, а некоторое 4-битное число - результатом. Биты b1 и b6 определяются соседними блоками, они определяют одну из четырех функций подстановки, возможных в данном S -блоке. Подстановка с помощью S -блоков является ключевым этапом DES. Другие действия алгоритма линейны и легко поддаются анализу. S -блоки нелинейны, и именно они в большей степени, чем всё остальное, обеспечивают криптостойкость DES. В результате этой подстановки получаются восемь 4-битных блоков, которые вновь объединяются в единый 32-битный блок. Этот блок поступает на вход следующего этапа — перестановки с помощью Р -блоков. 32-битовый выход подстановки с помощью S -блоков перетасовывается в соответствии с Р -блоком. Эта перестановка перемещает каждый входной бит в другую позицию, ни один бит не используется дважды, и ни один бит не игнорируется. Этот процесс называется прямой перестановкой, или просто перестановкой. Позиции, в которые перемещаются биты, показаны в таблице 3.14. Например, двадцать первый бит перемещается в позицию четыре, а четвертый бит — в позицию тридцать один. Наконец, результат перестановки с помощью Р -блока объединяется посредством XOR с левой половиной первоначального 64-битового блока. Затем левая и правая половины меняются местами, и начинается следующий цикл криптографического преобразования. Заключительная перестановка является обратной по отношению к начальной перестановке и описана в таблице 3.15. Отметим, что левая и правая половины не меняются местами после завершения последнего цикла DES, вместо этого объединенный блок R16, L16 используется как вход заключительной перестановки. Перестановка половин с последующим циклическим сдвигом привела бы к точно такому же результату. Это сделано для того, чтобы алгоритм можно было использовать как для шифрования, так и для дешифрования. Алгоритм, который создает ключ для каждого цикла, также цикличен. Ключ сдвигается направо, а число позиций сдвига равно 0,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1.
FIPS PUB 81 (Federal Information Standards Publication) определяет четыре режима работы: ЕСВ, СВС, OFB и CFB [23 25,185]. Банковские стандарты ANSI определяют для шифрования ЕСВ и СВС, а для проверки подлинности СВС и n-битовый CFB [26,186]. Из-за простоты реализации в большинстве существующих коммерческих программ используется ЕСВ, хотя этот режим наиболее уязвим. СВС используется редко, несмотря на то, что он лишь незначительно более сложен, чем ЕСВ. и обеспечивает большую криптостойкость. Криптостандарт DES стал объектом скрупулезных криптоаналитических исследований с момента его публикации в 1977 г. [15]. В том же году Диффи и Хеллман предложили вариант специализированного компьютера стоимостью двадцать млн. долл., гарантирующего раскрытие ключа DES методом силовой атаки в течение одних суток. В 1993 г. Винер (М. J. Wiener) спроектировал специализированную компьютерную архитектуру стоимостью в один млн. долл., позволяющую раскрывать ключ DES в среднем за 3,5 час. [399]. Реализация идей Винера на современном технологическом уровне позволяет раскрывать ключ DES в среднем за 35 мин [400J. Силовая атака на основе метода распределенных вычислений обеспечивает раскрытие ключа в течение 90 и даже 40 календарных дней [390,392]. В 90-е годы были разработаны и применены для атаки на DES методы дифференциального и линейного криптоанализа [260,377]. Однако известны и другие разновидности атак, позволяющие при заданном шифротексте получать открытый текст, не раскрывая при этом секретного ключа. Примером являемся атака на основе сопоставления образцов шифротекста (matching ciphertext attack), эффективность которой зависит исключительно от длины блока шифра [348.389]. Основная идея атаки заключается в поиске одинаковой пары среди заданного набора блоков шифротекста. В случае использования режима ЕСВ последнее означает, что соответствующие блоки открытого текста также являются идентичными. Атака возможна при использовании режимов СВС и CFB. Рассмотрим режим СВС. Обозначим через Рi и Сi блоки открытого текста и шифротекста соответственно. Тогда Сi = Е к (Р i Å С i-1) - перед шифрованием текущий блок открытого текста суммируется (по модулю 2, операция XOR) с полученным на предыдущем шаге блоком шифротекста. Из равенства Сi = Сj следует, что Р i Å С i-1 = Р j Å С j-1. Для дальнейших рассуждений необходимо ввести понятие расстояния Хэмминга. Расстояние Хэмминга dist (x, y) между двумя двоичными векторами х = х 1,..., х n и у = y 1,…, y n, равно числу позиций, в которых они различаются. Например. dist(10111,00101) = 2. Вес Хэмминга wt (x) вектора х = х 1,..., х n равен числу ненулевых компонентов х i, например wt(101110) = 4. Очевидно, что dist(x, y) = wt (x Å y), где х Å у покомпонентная сумма по модулю 2 (операция XOR) векторов х и у. Таким образом, расстояние Хэмминга i -го и j -ro блоков открытого текста равно расстоянию Хэмминга (i - 1)-го и (j - 1)- го блоков шифротекста, поскольку Р i Å Р j = С i-1 Å С j-1. При длине блока n совпадения пары можно ожидать на множестве из 2 n / 2 блоков шифротекст. Для DES это 232 блоков. Для обеспечения высокого уровня криптостойкости рекомендуют применять тройное DES-шифрование на трех [391] или на двух различных ключах [191|. Такие режимы известны под общим названием EDE (encrypt-decrypt-encrypt). Так, при двух различных ключах блок открытого текста сначала шифруется на ключе К 1, дешифруется на ключе К 2 и затем опять шифруется на ключе К 1. При трех различных ключах данный метод позволяет увеличить размер ключевого пространства до 2168, при двух до 2112. Однако угроза атаки на основе сопоставления образцов шифротекста при этом сохраняется, так как длина блока DES фиксирована (64 бита). В течение ряда лет комитет X9.F.1 Американского национального института стандартов (National Institute of Standards and Technology, NIST) занимался исследованием различных режимов для метода тройного DES-шифрования [382]. Основу предложенной NIST разработки составили известные режимы ЕСВ, СВС, OFB и CFB с заменой базовой операции однократного шифрования на тройное DES-шифрование. Рисунок 3.7 – DES – режим TCBC
В режиме Обратной связи но шифротексту для тройного DES (Triple DES Cipher Block Chaining, ТСВС) блок шифротекста, суммируемый с блоком открытого текста, получается в результате тройного DES-шифрования. ТСВС называют также внешним СВС-режимом (outer-CBC mode) [138], подразумевая под этим, что блок шифротекста берется с выхода тройного DES-шифратора. Схема режима ТСВС представлена на рис. 3.7. Данный режим уязвим с точки зрения атаки на основе сопоставления образцов шифротекста и по очевидным причинам в три раза менее производителен, чем однократный DES. Недостатки ТСВС стали причиной разработки внутреннего СВС-режима (inner-CBC mode, 1СВС) (рис. 3.8).
Рисунок 3.8 - DES – режим ICBC
В этом режиме обратная связь реализуется при помощи блоков шифротекста с выхода одиночного DES-шифратора. Режим ICBC можно интерпретировать как трехкратное применение стандартного СВС-режима на трех различных ключах. Разработчики предполагали, что режим ICBC обеспечивает высокую криптостойкость при атаке на основе сопоставления образцов шифротекста и не менее криптостоек, чем режим трехкратного DES-шифрования на трех различных ключах. Результаты последних исследований показали, что объем перебора для режима EDE не превосходит 2109 [394]. Кроме того, режим ICBC допускает эффективную конвейерную аппаратную реализацию и позволяет достичь той же производительности, что и однократный DES. Тем не менее, проанализировав большое число различных режимов шифрования [383. 384, 386], Бихам (Е. Biham) продемонстрировал уязвимость режима ICBC [384]. Трудоемкость атаки Бихама лишь незначительно превышает трудоемкость атаки на однократный DES. Исходное предположение заключается в возможности контроля обратных связей со стороны криптоаналитика. Атакующий выбирает шифротекст вида (С,С,С,С), где все четыре блока идентичны. После дешифрования на одном СВС-уровне исходный шифротекст принимает вид (?,Х,Х,Х), где блоки X идентичны, но не известны криптоаналитику. После дешифрования на двух уровнях получаем (?,?,У, У), где блоки У идентичны, а после дешифрования на всех трех уровнях получаем (?,?,?, Z) для некоторого Z. Для успешного осуществления атаки необходимо 233 шифротекстов для различных С. Вероятность того, что два шифротекста, например С1 и С2, приведут к одному и тому же значению X и, следовательно, одним и тем же значениям У и Z, достаточно велика (парадокс «дня рождения» - разновидность силовой атаки, основанной на следующем известном факте: вероятность совпадения дней рождения двух и более человек в группе из 23 человек превышает 1/2. Так. если на вход некоторой функции подается случайное значение, а на выходе наблюдается одно из к возможных независимых значений с равномерным распределением, то, подавая на вход различные значения, можно ожидать появления одинаковых значений на выходе функции с вероятностью 1,2Ök). При заданной паре С1 и С2 криптоаналитик может раскрыть ключ Кз методом силовой атаки, используя в качестве критерия условие D K3 (C 1) Å C 1 = D K3 (C 2) Å C 2. При заданном К 3 оставшиеся ключи раскрываются аналогичным образом. Общая трудоемкость атаки всего в несколько раз выше, чем трудоёмкость силовой атаки на однократный DES и не сравнима с трудоемкостью атаки на DES в режиме EDE. В статьях [388, 389] Копперсмит (D. Coppersmith), Джонсон (D. В. Johnson) и Матиас (S. M. Matyas) предложили тройное DES-шифрование в режиме СВС с OFB-маскированием (СВС with OFB Masking, СВСМ). Основная цель при проектировании СВСМ заключалась в обеспечении адекватной криптостойкости при атаках, описанных в [384,385], атаке на основе сопоставления образцов шифротекста и ряда других. Режим СВСМ аналогичен СВС с базовой операцией трехкратного шифрования на двух различных ключах, при этом промежуточные блоки шифротекста между первым и вторым, а также вторым и третьим уровнями маскируются блоками шифротекста, полученными в результате DES-шифрования на третьем ключе в режиме OFB (рис. 3.9, где М 1, М 2,... и т.д. — выходные блоки OFB-режима, полученные в результате шифрования на ключе К3, и IV 1 — вектор инициализации).
Рисунок 3.9 - DES – режим CBCМ
Основной недостаток режима — низкая производительность; на один 64-битный блок открытого текста приходится четыре DES-шифрования на трех различных ключах. Анализируя варианты использования внутренней обратной связи с учетом возможностей описанной выше атаки Бихама [384], авторы статей [388,389] приходят к выводу о бесперспективности дальнейших разработок режимов шифрования с внутренней обратной связью. При этом применение только внешней обратной связи также нельзя признать удовлетворительным. Приведенные аргументы стали причиной разработки режима СВСМ, включающего как внешние, так и внутренние обратные связи, причем последние не могут контролироваться криптоаналитиком, так как являются выходом DES-шифратора в OFB-режиме. Криптостойкость СВСМ при различных атаках, описанных в [384]. доказана в статье [388]. В результате режим СВСМ был принят в качестве стандарта и включен в документ [382]. Однако сразy же вслед за принятием стандарта Бихам и Кнудсен (L. R. Knudsen) предложили оригинальный вариант атаки на режим СВСМ. Суть предложенной атаки заключается в том, что вместо контроля обратных связей можно воспользоваться их структурой. Для этого вводится понятие фиксированной точки в криптографическом преобразовании. Фиксированная точка функции f есть значение х, такое что f (x) = х. Важное наблюдение заключается в том, что, когда вход среднего дешифратора является фиксированной точкой, результаты дешифрования и маскирования на втором (среднем) уровне взаимно уничтожаются и трехкратное шифрование сводится к двухкратному с использованием одного и того же ключа дважды. При большом количестве блоков открытого текста и шифротекста вероятность обнаружения преобразований с фиксированной точкой достаточно велика. Основная задача заключается в определении блоков с фиксированной точкой. Следующее наблюдение указывает на то, что для большинства функций f существует в точности одна фиксированная точка х. Для реализации атаки необходимо огромное количество выборочных блоков шифротекста, превышающее период OFB потока. В качестве исходного материала было выбрано 264 фиксированных блоков шифротекста С 1 и столько же блоков С 2, С 2 ¹ С 1. При заданном открытом тексте можно определить период OFB-потока. Поиск ключа К 1 выполняется путем дешифровании блоков С 1 и C 2 на ключе К, при этом претенденты выбираются из ключевого пространства 256. Блоки с фиксированной точкой определяются путем сравнения результатов с блоками открытого текста. Поскольку фиксированная точка уникальна, пара шифрований на втором уровне имеет одинаковые данные, что позволяет установить различие между двумя дополнительными блоками с одинаковыми масками. Дополнительные блоки используются затем для проверки ключа-претендента К. Детальное описание атаки приводится в статье [387). Для осуществления атаки достаточно 265 блоков выборочного шифротекста, в ходе атаки необходимо выполнить 258 попыток трехкратного DES-шифрования, кроме того, необходима дополнительная память для хранения блоков открытого текста. Описанная атака имеет теоретический характер и вряд ли будет реализована на практике. Однако ее трудоемкость значительно ниже трудоемкости известных атак на режим EDE. Существует несколько простых способов модификации СВСМ-режима. позволяющих противостоять описанной выше атаке. Однако нет полной уверенности в том. что эти модификации гарантируют адекватную криптостойкость. Один из очевидных способов заключается в замене ключа К 1 на третьем уровне на ключ К4, К4 ¹ K1. При этом авторы атаки не рекомендуют изменять способ OFB-маскирования между вторым и третьим уровнями [401], так как существует эффективная атака [386]. Возможное решение заключается также в разработке нового режима шифрования. Например, Бихам предложил следующее преобразование — OFB{CBC,CBC,CBC-l} (открытый текст суммируется по модулю 2 (операция XOR) с OFB-потоком, генерируемым однократным DES, затем шифруется в режиме СВС на третьем ключе, снова суммируется с тем же OFB-потоком, дешифруется в режиме СВС на четвертом ключе и опять суммируется с тем же OFB-потоком), вектор инициализации вычисляется как КАС от некоторого начального значения, передаваемого в открытом виде от отправителя к получателю [387]. Криптостойкость этого режима шифрования пока не скомпрометирована, трудоемкость атаки оценивается как 2112 попыток дешифрования, даже при условии, что криптоаналитик может получить неограниченное количество выборочных шифротекстов с фиксированным вектором инициализации [398]. Данный режим допускает эффективную аппаратную реализацию по конвейерному принципу и может гарантировать то же быстродействие, что и однократный DES при аппаратной реализации и режим СВСМ при программной реализации. Еще одно решение заключается в разработке нового блочного шифра. В статье [393] Кнудсен предложил новый блочный шифр DEAL и выполнил анализ его криптостойкости. По оценкам автора трудоемкость любой атаки на DEAL оценивается как 2120 попыток дешифрования в худшем случае. DEAL имеет простую конструкцию. Цикл криптографического преобразования сводится к следующему: открытый текст делится на блоки по 128 бит каждый; левая и правая половины поступают на вход DES и шифруются на ключе К1, результат шифрования суммируется по модулю 2 (операция XOR) с правой половиной, затем половины меняются местами. Результирующий шифротекст получается после шести циклов преобразования, причем на каждом цикле используется новый ключ. Таким образом DEAL является шифром Фейстеля с шестью циклами и криптоалгоритмом DES в качестве функции f (рис. 3.5). Для получения двух 64-битных блоков шифротекста необходимо выполнить шесть DES-шифрований, поэтому DEAL имеет ту же производительность, что и режим EDE. Шесть 56-битных подключей генерируются из секретного ключа длиной 128, 192 или 256 бит. Все рассмотренные выше режимы шифрования и другие методы являются попыткой компенсации известных недостатков DES, связанных с коротким ключом и блоком. В настоящее время стало ясно, что принципиальное решение заключается в разработке нового блочного стандарта шифрования с большей длиной ключа и блока, обеспечивающего высокую криптостойкость по отношению ко всем известным атакам на блочные шифры. Американский национальный институт стандартов выступил с инициативой по разработке нового альтернативного стандарта AES (Advanced Encryption Standard, AES) [395]. NIST выражает надежду, что стандарт AES обеспечит высокий уровень криптостойкости на ближайшие 20 - 30 лет. В своем проекте NIST выдвигает ряд требований: так, например, предлагаемый в качестве кандидата блочный шифр должен иметь 128-битный блок и оперировать с ключами длиной 128, 192 и 256 бит. Как отмечается в комментарии NIST, блочный шифр с указанными параметрами «должен гарантировать адекватную криптостойкость — не ниже, чем DES в режиме EDE, и обеспечивать высокое быстродействие». Действительно, при 128-битном блоке для реализации атаки на основе сопоставления образцов шифротекста понадобится около 264 блоков шифротекста. Еще одно требование заключается в представлении трех различных программных реализаций шифра-кандидата на двух языках программирования, а также оценке числа логических элементов, необходимых для его аппаратной реализации. После отбора претендентов NIST готов представить их для широкого обсуждения и сравнения по ряду параметров - быстродействию, криптостойкости, простоте реализации, модульности и т.д. Ожидается, что при сравнимом с DES быстродействии криптостойкость AES будет на несколько порядков выше.
Таблица 3.16. Использование подключей в ГОСТе 28147-89
Таблица 3.17. S-блоки ГОСТа 28147-89
Дата добавления: 2014-01-05; Просмотров: 1014; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |