Композиции шифров
Категория реферата: Рефераты по информатике, программированию
Теги реферата: курсовые рефераты, курсовые работы бесплатно
Добавил(а) на сайт: Исидора.
Предыдущая страница реферата | 3 4 5 6 7 8 9 10 11 12 13 | Следующая страница реферата
Khufu - это 64-битовый блочный шифр. 64-битовый открытый тест сначала
расщепляется на две 32-битовые половины, L и R. Над обеими половинами и
определенными частями ключа выполняется операция XOR. Затем, аналогично
DES, результаты проходят некоторую последовательность раундов. В каждом
раунде младший значащий байт L используется как вход S-блока. У каждого S-
блока 8 входных битов и 32 выходных бита. Далее выбранный в S-блоке 32-
битовый элемент подвергается операции XOR с R. Затем L циклически
сдвигается на число, кратное восьми битам, L и R меняются местами, и раунд
завершается. Сам S-блок не статичен, он меняется каждые восемь раундов.
Наконец, по окончании последнего раунда, над L и R выполняется операция XOR
с другими частями ключа, и половины объединяются, образуя блок шифртекста.
Хотя части ключа используются для операции XOR с блоком шифрования в начале и конце исполнения алгоритма, главное назначение ключа - генерация S- блоков. Эти S-блоки секретны, по существу, это часть ключа. Полный размер ключа алгоритма Khufu равен 512 бит (64 байт), алгоритм предоставляет способ генерации S-блоков по ключу. Вопрос о достаточном числе раундов остается открытым. Как указывает Меркл, 8-раундовый алгоритм Khufu уязвим к вскрытию с подобранным открытым текстом. Он рекомендует использовать 16, 24 или 32 раунда. (Меркл ограничивает количество раундов числами, кратными восьми).
Поскольку S-блоки Khufu зависят от ключа и секретны, алгоритм устойчив к дифференциальному криптоанализу. Известна дифференциальная атака на 16- раундовый Khufu, которая восстанавливает ключ с помощью 231 подобранных открытых текстов, однако этот метод не удалось расширить на большее число раундов. Если принять, что лучший метод взлома Khufu - лобовое вскрытие, стойкость алгоритма впечатляет. 512-би-овый ключ обеспечивает сложность вскрытия 2512 - это огромное число в любом случае.
3.5.2. Алгоритм Khafre
Khafre - это вторая криптосистема, предложенная Мерклом. (Khufu (Хуфу)
и Khafre (Хафр) - имена египетских фараонов). Конструкция этого алгоритма
близка Khufu, однако он спроектирован для приложений, где невозможны
предварительные вычисления. S-блоки не зависят от ключа. Вместо этого в
Khafre используются фиксированные S-блоки. Блок шифрования подвергается
операции XOR с ключом не только перед первым раундом и после последнего, но
и после каждых восьми раундов шифрования.
Меркл предполагал, что в алгоритме Khafre следует использовать 64- или
128-битовые ключи и что в этом алгоритме понадобится большее число раундов, чем в Khufu. Это, наряду с тем, что каждый раунд Khafre сложнее раунда
Khufu, делает Khafre менее скоростным. Зато алгоритму Khafre не нужны
никакие предварительные расчеты, что ускорит шифрование небольших порций
данных.
В 1990 году Бихам и Шамир применили свой метод дифференциального
криптоанализа к алгоритму Khafre. Им удалось взломать 16-раундовый Khafre
атакой с подобранным открытым текстом, используя около 1500 различных
шифрований. На их персональном компьютере это заняло около часа.
Преобразование этой атаки в атаку с известным открытым текстом потребует
около 238 шифрований. Алгоритм Khafre с 24 раундами можно взломать с
помощью атаки с подобранным открытым текстом за 253 шифрования, а с помощью
атаки с известным открытым текстом – за 259 шифрования.
Алгоритмы Khufu и Khafre запатентованы. Исходный код этих алгоритмов приведен в патенте.
3.6. Алгоритм ММВ
Недовольство использованием в одном из криптоалгоритмов 64-битового
блока шифрования привело к созданию Джоаной Дэймен алгоритма под названием
ММВ (Modular Multiplication-based Block cipher - модулярный
мультипликативный блочный шифр). В основе ММВ лежит смешивание операций
различных алгебраических групп. ММВ - итеративный алгоритм, главным образом
состоящий из линейных действий (XOR и использование ключа) и параллельного
применения четырех крупных обратимых нелинейных подстановок. Эти
подстановки определяются с помощью умножения по модулю 232-1 с постоянными
множителями. В итоге появляется алгоритм, использующий 128-битовый ключ и
128-битовый блок.
Алгоритм ММВ оперирует 32-битовыми подблоками текста (х0, х1, х2, x3)
и 32-битовыми подблоками ключа (k0, k1, k2, k3). Это упрощает реализацию
алгоритма на современных 32-битовых процессорах. Чередуясь с операцией
XOR, шесть раз используется нелинейная функция f. Вот этот алгоритм (все
операции с индексами выполняются по модулю 4): xi = xi ( ki для i = 0..3 f(х0, х1, х2, x3) xi = xi ( ki+1 для i = 0..3 f(х0, х1, х2, x3) xi = xi ( ki+2 для i = 0..3 f(х0, х1, х2, x3) xi = xi ( ki для i = 0..3 f(х0, х1, х2, x3) xi = xi ( ki+1 для i = 0..3 f(х0, х1, х2, x3) xi = xi ( ki+2 для i = 0..3 f(х0, х1, х2, x3)
Функция f исполняется в три шага:
1. xi = сi * xi для i = 0..3 (Если на входе умножения одни единицы, то на выходе - тоже одни единицы).
2. Если младший значащий бит х0 = 1, то x0 = х0 ( С. Если младший значащий байт х3 = 0, то х3 = х3 ( С.
3. xi = хi-1 ( xi ( хi+1 для i = 0..3.
Все операции с индексами выполняются по модулю 4. Операция умножения
на шаге 1 выполняется по модулю 232-1. Специальный случай для данного
алгоритма: если второй операнд равен 232-1, результат тоже равен 232-1. В
алгоритме используются следующие константы:
С = 2ааааааа
c0 = 025f1cdb
c1 = 2*c0
с2=23 *с0
с3=27 *с0
Константа С - «простейшая» константа без круговой симметрии, высоким троичным весом и нулевым младшим значащим битом. У константы с0 есть другие особые характеристики. Константы c1, с2 и с3 - сдвинутые версии с0, и служат для предотвращения атак, основанных на симметрии.
Расшифрование выполняется в обратном порядке, Этапы 2 и 3 инверсны им самим. На этапе 1 вместо сi используется сi-1 . Значение с0-1 = 0dad4694 .
1. Стойкость алгоритма ММВ
Схема алгоритма ММВ обеспечивает на каждом раунде значительное и независимое от ключа рассеивание. ММВ изначально проектировался в расчете на отсутствие слабых ключей.
ММВ – это уже мертвый алгоритм. Это утверждение справедливо по многим
причинам, хотя криптоанализ ММВ и не был опубликован. Во-первых, алгоритм
проектировался без учета требования устойчивости к линейному криптоанализу.
Устойчивость к дифференциальному криптоанализу обеспечил выбор
мультипликативных множителей, но о существовании линейного криптоанализа
авторы не знали.
Во-вторых, Эли Бихам реализовал эффективную атаку с подобранным
ключом, использующую тот факт, что все раунды идентичны, а развертка ключа
– просто циклический сдвиг на 32 бита. В третьих, несмотря на эффективность
программной реализации ММВ, аппаратное исполнение менее эффективно по
сравнению с DES.
Дэймен предлагает желающим улучшить алгоритм ММВ сначала проанализировать умножение по модулю с помощью линейного криптоанализа и подобрать новый множитель, а затем сделать константу С различной на каждом раунде. Затем улучшить развертку ключа, добавляя к ключам раундов константы с целью устранения смещения. Однако сам он не стал заниматься этим, а разработал алгоритм 3-Way.
3.7. Алгоритм Blowfish
Blowfish - это алгоритм, разработанный Брюсом Шнайером специально для
реализации на больших микропроцессорах. Алгоритм Blowfish не запатентован.
При проектировании алгоритма Blowfish Шнайер пытался удовлетворить
следующим критериям:
Рекомендуем скачать другие рефераты по теме: контрольная работа класс, рассказы чехова.
Предыдущая страница реферата | 3 4 5 6 7 8 9 10 11 12 13 | Следующая страница реферата