Метод дифференциального криптоанализа

Автор работы: Пользователь скрыл имя, 25 Февраля 2013 в 15:55, курсовая работа

Описание работы

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

Содержание работы

Введе-ние…………………………………………………..…………………….4
1. Комбинированные методы шифрования
Комбинирование простых способов шифрова-ния..………………………5

2. Теория проектирования блочных шиф-ров…...……………………………8
2.1. Сети Файсте-ля………………………………………………………..8
2.2. Простые соотноше-ния……………………………………………….9
2.3. Групповая структу-ра………………………………………………...9
2.4. Слабые клю-чи………………………………………………………10
2.5. Устойчивость алгоритма к дифференциальному и
линейному криптоанали-зу…………………………………………10
2.6. Проектирование S-блоков…………………………………………11
2.7. Проектирование блочного шиф-ра………………………………...13
3. Блочные шиф-ры……………………………………………………………14
3.1. Алгоритм Lucifer……………………………………………………14
3.2. Алгоритм Madryga………………………………………………….15
3.2.1. Описание алгоритма Madryga………………………………16
3.2.1. Криптоанализ алгоритма Madryga………………………….17
3.3. Алгоритм REDOC…………………………………………………..18
3.3.1. Алгоритм REDOC III………………………………………..18
3.4. Алгоритм LOKI……………………………………………………..19
3.4.1. Алгоритм LOKI91…………………………………………...19
3.4.2. Описание алгоритма LOKI91……………………………… 21
3.4.3. Криптоанализ алгоритма LOKI91………………………….21
3.5. Алгоритм Knufu и Knafre…………………………………………..22
3.5.1. Алгоритм Knufu…………………………………………..…23
3.5.2. Алгоритм Knafre………………………………………….....23
3.6. Алгоритм ММВ…………………………………………………….24
3.6.1. Стойкость алгоритма ММВ………………………………...25
3.7. Алгоритм Blowfish…………………………………………………26
3.7.1. Описание алгоритма Blowfish……………………………...26
3.7.2. Стойкость алгоритма Blowfish……………………………..29
3.8. Алгоритм RC5………………………………………………………29
4. Объединение блочных шифров…………………………………………....32
4.1. Двойное шифрование………………………………………………32
4.2. Тройное шифрование……………………………………………....33
4.2.1. Тройное шифрование с двумя ключа-ми…………………..33
4.2.2. Тройное шифрование с тремя ключа-ми…………………...35
4.2.3. Тройное шифрование с минимальным ключом…………..35
4.2.4. Режимы тройного шифрования……………………………35
4.2.5. Варианты тройного шифрования………………………….37
4.3. Удвоение длины блока…………………………………………… 38
4.4. Другие схемы многократного шифрования……………………...39
4.4.1. Двойной режим OFB/счетчика…………………………….39
4.4.2. Режим ECB+OFB…………………………………………...39
4.4.3. Схема xDESi………………………………………………...40
4.4.4. Пятикратное шифрова-ние………………………………….41
4.5. Уменьшение длины ключа в CDMF……………………………...42
4.6. Отбеливание………………………………………………………..42
4.7. Каскадное применение блочных алгоритмов……………………43
4.8. Объединение нескольких блочных алгоритмов…………………44
Заключение…...……………………………………………………………….45
Список литературы…………...………………………………………………46

Файлы: 1 файл

Дуганов А.К. Самостоятельная.doc

— 444.50 Кб (Скачать файл)

 

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

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

С = ЕK3(р(ЕК2(р(ЕК1(Р)))))

Дополнение не только маскирует  структуру текста, но и обеспечивает перекрытие блоков шифрования, примерно как кирпичи в стене. Длина сообщения увеличивается только на один блок.

 

Рис. 6. Тройное шифрование с дополнением

В другом методе, предложенном Карлом Эллисоном (Carl Ellison), между тремя шифрованиями используется некоторая бесключевая функция перестановки. Перестановка должна работать с большими блоками - 8 Кбайт или около этого, что делает эффективный размер блока для этого варианта равным 8 Кбайт. Если перестановка выполняется быстро, этот вариант ненамного медленнее, чем базовое тройное шифрование.

C = EK1(T(EK2(T(EK1(P)))))

Т собирает входной (длиной до 8 Кбайт) и использует генератор псевдослучайных чисел для его перемешивания. Изменение одного входного бита приводит к изменению восьми байтов результата первого шифрования, до 64 байтов - результата второго шифрования и до 512 байтов - результата третьего шифрования. Если каждый блочный алгоритм работает в режиме СВС, как предполагалось первоначально, изменение единичного входного бита, скорее всего, приведет к изменению всего 8-килобайтового блока, даже если это не первый блок.

Новейший вариант этой схемы  противодействует атаке на внутренний СВС, предложенной Бихамом, добавлением  процедуры отбеливания, позволяющей замаскировать структуру открытых текстов. Эта процедура представляет собой потоковую операцию XOR с криптографически надежным генератором псевдослучайных чисел и обозначена ниже как R. Т мешает криптоаналитику определить априорно ключ, использованный для шифрования любого заданного входного байта последнего шифрования. Второе шифрование обозначено пЕ (шифрование с циклическим использованием п различных ключей):

С = ЕК3(R(Т(пЕК2(Т(ЕК1(R))))))

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

В этой схеме предлагалось использование алгоритма DES, однако она работает с любым блочным алгоритмом. Мне неизвестны факты анализа надежности этой схемы.

 

4.3. Удвоение  длины блока

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

Выдвигались предложения удваивать  длину блока алгоритма с помощью многократного шифрования. Прежде, чем реализовывать одно из них, можно оценить возможность вскрытия «встреча посередине». Схема Ричарда Аутбриджа (Richard Outerbridge), показанная на рис. 7, ничуть не безопаснее тройного шифрования с одинарным блоком и двумя ключами.

 

Рис. 7. Удвоение длины блока

 

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

 

4.4. Другие схемы  многократного шифрования

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

 

4.4.1 Двойной режим OFB/счетчика                       

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

Si = EK1(Si-1Å   I1); I1 = I1+1

Ti = EK2(Ti-1Å   I2); I2 = I2+1

Ci = PiÅ   SiÅ   T

где Si и Ti - внутренние переменные, а I1, и I2 - счетчики. Две копии блочного алгоритма работают в некотором гибридном режиме OFB/счетчика, а открытый текст, Si, и Тi объединяются операцией XOR. При этом ключи К1 и К2 независимы.

 

4.4.2. Режим ECB + OFB

Этот метод разработан для шифрования нескольких сообщений фиксированной длины, например, блоков диска. Используются два ключа: К1 и К2. Сначала для генерации маски блока нужной длины используется выбранный алгоритм и ключ К1. Эта маска впоследствии используется повторно для шифрования сообщений теми же ключами. Затем выполняется операция XOR над открытым текстом сообщения и маской. Наконец результат этой операции шифруется с помощью выбранного алгоритма и ключа К2 в режиме ЕСВ.

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

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

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

                                    

4.4.3. Схема xDESi

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

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

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

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

 

Рис. 8. Один этап xDES2

 

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

При i ³ 3 xDESi вероятно слишком громоздок, чтобы использовать его в качестве блочного алгоритма. Например, размер блока xDES3 в 6 раз больше, чем у лежащего и основе блочного шифра, ключ в 21 раз длиннее, а для шифрования блока, который в 6 раз длиннее блока, лежащего в основе блочного шифра, нужно 21 шифрование. Тройное шифрование выполняется быстрее.

                                                                                                             

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

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

С = ЕК1(DK2(EK3(DK2(EK1(P)))))

P = DK1(EK2(DK3(EK2(DK1(C)))))

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

 

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

Этот метод разработан в IBM для продукта CDMF (Commercial Data Masking Facility -аппаратура закрытия коммерческих данных). Он предназначен для преобразования 56-битового ключа DES в 40-битовый ключ, разрешенный для экспорта. Предполагается, что в первоначальный ключ 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, 20, 24, 32, 33, 34, 35, 36, 40, 48, 49, 50, 51, 52, 56, 64.

4. Результат   этапа   3   шифруется   с   помощью   DES   ключом 0xef2c041ce6382fe6.

Полученный ключ используется для шифрования сообщения.

 

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

 

4.6. Отбеливание

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

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

C = K3Å   EK1(PÅ   K1)

P = K1Å   DK2(CÅ   K3)

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

 

4.7. Каскадное  применение блочных алгоритмов

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

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

Информация о работе Метод дифференциального криптоанализа