Рефераты. Композиции шифров

        Для такого вскрытия нужен большой объем памяти: 2n блоков. Для 56-битового ключа нужно хранить 256 64-битовых блоков, или 1017 байт. Такой объем памяти пока еще трудно себе представить, но этого хватает, чтобы убедить самых осторожных криптографов в ненадежности двойного шифрования.

        При 128-битовом ключе для хранения промежуточных результатов потребуется огромная память в 1039 байт. Если предположить, что каждый бит информации хранится на единственном атоме алюминия, запоминающее устройство, нужное для такого вскрытия, будет представлять собой алюминиевый куб с ребром 1 км. Кроме того, понадобится куда-то его поставить. Так что атака «встреча посередине» при ключах такого размера представляется невозможной.

        Другой способ двойного шифрования, который иногда называют методом Дэвиса-Прайса (Davies-Price), представляет собой вариант режима шифрования СВС.

        Сi =Ek1(PiÅ   Ek2(Ci-1))

        Pi=Dk1(Ci)Å   Ek2(Ci-1)

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

 

4.2. Тройное шифрование

4.2.1. Тройное шифрование с двумя ключами

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

        С = EK1(DK2(EK1(P)))

        P = DK1(EK1(DK1(С)))    

        Иногда такой режим называют режимом зашифрование-расшифрование-зашифрование (Encrypt-Decrypt-Encrypt - EDE). Если блочный алгоритм использует n-битовый ключ, длина ключа описанной схемы составляет 2п бит. Эта остроумная связка ключей (зашифрования-расшифрования-зашифрования) разработана в корпорации IBM для совместимости с существующими реализациями алгоритма: задание двух одинаковых ключей эквивалентно одинарному шифрованию. Такая схема EDE сама по себе не обеспечивает заведомую безопасность, однако этот режим использовался для улучшения алгоритма DES в стандартах Х9.17 и ISO 8732.

        Для предотвращения описанной выше атаки «встреча посередине», использование ключей ki и K2 чередуется. Если С=ЕK2(ЕК1(ЕК1(Р))), то криптоаналитик может заранее вычислить ЕК1(ЕК1(Р))) для любого возможного K1, а затем выполнить вскрытие. Для этого потребуется только 2n+2 шифрований.

Тройное шифрование с двумя ключами устойчиво к такой атаке. Но Меркл и Хеллман разработали другой способ согласования памяти и времени, который позволяет взломать и этот алгоритм шифрования за 2n-1 действий, используя 2n блоков памяти.

        Для каждого возможного К2 расшифровывают 0 и сохраняют результат в памяти. Затем расшифровывают 0 для каждого возможного К1, чтобы получить Р. Выполняют тройное зашифрование Р, чтобы получить С, и затем расшифровывают С ключом К1. Если полученное значение совпадает со значением (хранящимся в памяти), полученным при расшифровании 0 ключом К2, то, возможно, пара K1K2 и будет искомым результатом. Проверяют, так ли это. Если нет, продолжают поиск.

        Для выполнения этого вскрытия с подобранным открытым текстом  нужна память огромного объема. Понадобится 2n времени и памяти, а также 2m подобранных открытых текстов. Атака не слишком практична, но все же указывает на некоторую слабость этого метода.

        Пауль ван Оорсчот (Paul van Oorschot) и Майкл Винер (Michael Wiener) преобразовали эту атаку к атаке на основе открытых текстов, для которой их нужно р штук. В примере предполагается использование режима EDE.

1) Предположить первое промежуточное значение а.

2) Используя известный открытый текст, свести в таблицу для каждого возможного К1 второе промежуточное значение b при первом промежуточном значении, равном а:

        b=DK1(С)

где С - шифртекст, полученный по известному открытому тексту.

3) Для каждого возможного K2 найти в таблице элементы с совпадающим вторым промежуточным значением b:

        b = EK2(a)

4) Вероятность успеха равна р/т, где р - число известных открытых текстов, а т -размер блока. Если совпадения не обнаружены, нужно выбрать другое значение а и начать сначала.

        Атака требует 2n+mвремени и р - памяти. Для алгоритма DES это составляет 2120/р. При р, больших 256, эта атака выполняется быстрее, чем полный перебор.

 

4.2.2. Тройное шифрование с тремя ключами

        Если используют тройное шифрование, рекомендуется использовать три разных ключа. Общая длина ключа станет больше, но хранение ключа обычно не вызывает затруднений. Биты дешевы.

        С = EK3(DK2(EK1(P)))

        P = DK1(EK2(DK3(С)))

        Для наилучшего вскрытия с согласованием памяти и времени, примером которого служит «встреча посередине», понадобятся 22n операций и 2n блоков памяти. Тройное шифрование с тремя независимыми ключами настолько надежно, насколько на первый взгляд кажется надежным двойное шифрование.

4.2.3. Тройное шифрование с минимальным ключом

        Известен более надежный метод использования тройного шифрования с двумя ключами, препятствующий описанной атаке и называемый тройным шифрованием с минимальным ключом (Triple Encryption with Minimum Key - TEMK). Фокус в том, чтобы получить три ключа из двух: Х1 и Х2.

        K1=EX1(DX2(EX1(T1)))            

        K2 = EX1(DX2(EX1(T2)))

        K3=EX1(DX1(EX1(T3))) 

Здесь T1, T2 и Т3 - константы, которые необязательно хранить в секрете. Эта схема гарантирует, что для любой конкретной пары ключей наилучшим методом взлома будет вскрытие с известным открытым текстом.

4.2.4. Режимы тройного шифрования

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

Вот два возможных режима тройного шифрования:

Внутренний СВС: Файл зашифровывается в режиме СВС три раза (Рис. 1а). Для этого нужны три различных вектора инициализации (ВИ).

        Ci=EK3(SiÅ   Ci-1); Si=DK2(TÅ   Si-1); Ti=EK1(PiÅ   Ti-1)

        Pi=Ti-1Å   DK1(Ti); Ti=Si-1Å   EK2(Si); Si=Ci-1Å   DK3(Ci)

Где С0, S0 и T0 - векторы инициализации.

Внешний СВС: Файл шифруется с помощью тройного шифрования (один раз) в режиме СВС (Рис. 5). Для этого нужен один вектор ВИ.

        Ci=EK3(DK2(EK1(PiÅ   Ci-1)))

        Pi=Ci-1Å   DK1(EK2(DK3(Ci)))

Рис. 5. Тройное шифрование в режиме СВС

 

        Оба   режима   требуют   больше   ресурсов,   чем   однократное   шифрование:   больше аппаратуры или больше времени. Однако при установке трех шифровальных микросхем производительность внутреннего СВС не меньше, чем при однократном шифровании. Так как три шифрования СВС независимы, три микросхемы могут быть загружены постоянно, подавая свой выход себе на вход.

        Напротив, во внешнем СВС обратная связь лежит вне трех процессов шифрования. Это означает, что даже при использовании трех микросхем производительность составит только треть производительности однократного шифрования. Чтобы получить ту же производительность для внешнего СВС, потребуется чередование векторов ВИ.

Сi = EK3(DK2(EK1(PiÅ   Ci-3)))

где С0, C-1 и С-2 - векторы инициализации. Это не поможет при программной реализации, разве только при использовании параллельного компьютера.

        К сожалению, менее сложный режим также и менее безопасен. Бихам проанализировал устойчивость различных режимов к дифференциальному криптоанализу с подобранными шифртекстами и обнаружил, что внутренний СВС только незначительно надежнее однократного шифрования. Если рассматривать тройное шифрование как большой единый алгоритм, его внутренние обратные связи позволяют вводить внешнюю и известную информацию во внутреннюю структуру алгоритма, что облегчает криптоанализ. Для дифференциальных атак нужно огромное количество подобранных шифртекстов, что делает эти вскрытия не слишком практичными, но этих результатов должно хватить, чтобы насторожить скептически настроенных пользователей. Анализ устойчивости алгоритмов к вскрытиям «в лоб» и «встречей посередине» показал, что и этом отношении оба варианта одинаково надежны.

        Кроме перечисленных, известны и другие режимы. Можно зашифровать файл один раз и режиме ЕСВ, затем дважды в СВС, или один раз в СВС, один в ЕСВ и еще раз в СВС, или дважды в СВС и один раз в ЕСВ. Бихам показал, что эти варианты отнюдь не устойчивее однократного DES при вскрытии методом дифференциального криптоанализа с подобранным открытым текстом. Он не оставил больших надежд и для других вариантов. Если вы собираетесь применять тройное шифрование, используйте режимы с внешней обратной связью.

4.2.5. Варианты тройного шифрования

        Прежде чем было доказано, что DES не образует группу, предлагались различные схемы многократного шифрования. Одним из способов гарантировать, что тройное шифрование не выродится в однократное, было изменение эффективной длины блока. Простой метод предполагает дополнять блок битами. С этой целью между первым и вторым, а также между вторым и третьим шифрованиями текст дополняется строкой случайных битов длиной в полблока (Рис. 6). Если p - это функция дополнения, то:

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.