Реферат: Схемы шифрования AES, RC4, RC5, RC6, Twofish, Mars
RC6 представляет собой целое семейство шифров с
переменным размером блока, переменным размером ключа от 1 до 32 байт и
переменным числом раундов. В шифре вовсе не используются узлы замен, вместо
этого используется умножение и циклические сдвиги на переменное число разрядов
w/4-битовых чисел, где w - размер блока данных в битах. В силу этого алгоритм
неэффективно реализуется на процессорах без быстрой команды умножения и без
команды циклического сдвига на переменное число битов. Кроме того, операция
умножения ресурсоемка при аппаратной реализации. По указанным причинам RC6 не
был избран в качестве усовершенствованного стандарта шифрования США, хотя на
ряде 32-битовых платформ его реализация оказалась существенно эффективней, чем
реализация AES.
Замечания
(1) В версии RC6, номинировавшейся на
место нового стандарта размер блока фиксировани и равен 128 бит, число раундов
также фиксировано и равно равно 20, размер ключа может принимать одно из трех
значениий: 128, 192 или 256 бит.
Схема алгоритма представлена RC6 на рис 5.1

Рис. 5.1 Схема алгоритма RC6
Характерной особенностью алгоритма является отказ от
привычных Sbox'ов и введение операция квадратичной трансформации. Простота и
высокая скорость шифрования являются его основными достоинствами, к тому же RC6
имеет наибольшую скорость среди финалистов AES (12.6 Мбайт/с)
6. Алгоритм шифрования TwoFish
Алгоритм, разработанный Шнайером, является модификацией
алгоритма BlowFish, созданного в 1993г. Алгоритм TwoFish основан на 16
раундовой сети Фейстеля. В алгоритме используются преобразование РНТ
(Pseudo-Hadamard Transforms), MDS матрицы, зависимые от ключа Sbox'ы, по
сравнению с другими алгоритмами TwoFish имеет довольно сложную структуру,
которая представлена на рисунке 6.1

Рисунок 6.1 Структура алгоритма Twofish
Входное отбеливание
Один раунд шифрования
Еще 15 раундов
Отмена последнего обмена местами пар слов
Выходное отбеливание
128-битовый блок P открытого текста (16 байт p0 ,…, p15)
разбивается на четыре 32-битовых слова P0, P1, P2 и P3 c сохранением прямого
порядка байтов (Little-Endian Convention):

На этапе входного «отбеливания» выполняется операция XOR
между этими словами и четырьмя ключами K0, K1, K2 и K3:

После этого следуют 16 раундов шифрования. В каждом
раунде два «левых» слова являются входными для функций g (биты одного из
входных слов сначала циклически сдвигаются на 8 позиций влево). К полученным
выходным словам функций g затем применяется псевдопреобразование Адамара (PHT -
Pseudo-Hadamard Transform) и добавляются два раундовых ключа K2r+8 и K2r+9, где
r — номер раунда шифрования. Далее между модифицированными таким образом
«левыми» словами и двумя «правыми» словами (биты одного из которых прежде
циклически сдвигаются на одну позицию влево) выполняется операция XOR, после
чего циклическому сдвигу на 1 бит вправо подвергается другое из теперь уже
видоизмененных «правых» слов. «Левая» и «правая» пары слов затем меняются
местами для следующего раунда шифрования. Таким образом,

где r = 0 , …, 15, а аббревиатурами ROR и ROL обозначены
функции двух аргументов, выполняющие побитовый циклический сдвиг первого
аргумента вправо и влево соответственно на число позиций, равное второму
аргументу.
После реализации всех 16-ти раундов шифрования последний
обмен местами «левой» и «правой» пар слов отменяется, и между полученными
32-битовыми словами и ключами K4, K5, K6 и K7 выполняется операция XOR (этап
выходного «отбеливания»):
Сi = R16,(i+2)mod4 Å K i=0,…,3
Полученные слова C0, C1, C2 и C3 затем объединяются в
128-битовый блок C (16 байт c0 ,… , c 15) зашифрованного текста:

где ëxû - целая часть х.
Несколько слов по поводу криптостойкости Twofish.
Разработчики алгоритма уже изначально были уверены в
неприступности своего творения для криптоаналитиков. Во время первого раунда
конкурса на новый американский правительственный стандарт шифрования Б.
Шнайером был даже объявлен конкурс на лучшую криптоатаку против Twofish с
призовым фондом в 10 тысяч долларов. Задача была действительно непростая:
сложность алгоритма сыграла свою роль (и стала, кстати, одной из причин, по
которой Twofish не стал новым стандартом шифрования США).
Тем не менее, определенные успехи в криптоанализе Twofish
все же были достигнуты. Один из известных методов (Impossible Differential
Attack), принадлежащий Ларсу Нудсену (Lars Knudsen), для 6-раундового Twofish
(без «отбеливаний») имеет сложность 2128 для 128-битового ключа, 2160 для
192-битового ключа и 2192 для 256-битового ключа. Также была предложена атака
на 7-раундовый Twofish (опять же без «отбеливаний») со сложностью 2256 для
256-битового ключа.
С «отбеливаниями» наилучшая атака «ломала» 6-раундовый
Twofish cо сложностью 2256 и только с длиной ключа, равной 256 бит.
Таким образом, значительный запас криптостойкости Twofish
очевиден.
Список использованных источников
1.
Брюс Шнайер Прикладная криптография 2-е издание
2.О
процессе принятия AES. Б. Киви http://byrd.narod.ru/aes/aes2.htm
3.Конкурс
на новый криптостандарт AES. Б. Киви http://kiwibyrd.chat.ru/ru/aes1 .htm
4.Общие
сведения о конкурсе AES http://www.citforum.ru/internet/infsecure/its2000 21
.shtml
|