Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Шифр Rijndael (AES)

Шифр ГОСТ 28147-89

 

Шифр ГОСТ 28147-89 [5], как следует из его обозначения, был принят в качестве стандарта в 1989 году. Основные параметры ГОСТ 28147-89: длина ключа 256 бит, размер блока 64 бита, 32 раунда. ГОСТ 28147-89 более удобен для программной реализации, чем DES, имеются сведения о выигрыше по времени примерно в 1.5 раза. В отличие от DES, ГОСТ 28147-89, по-видимому, не был предметом столь глубокого анализа со стороны мирового криптологического сообщества. Тем не менее, как отмечают специалисты, консервативный дизайн и величина основных параметров (длина ключа, размер блока, количество раундов) позволяют утверждать, что шифр вряд ли может быть слабым. Никаких эффективных атак против шифра ГОСТ 28147-89 не опубликовано.

В основе ГОСТ 28147-89, так же как и DES, лежит так называемая структура Фейстела. Блок разбивается на две одинаковые части, правую R и левую L. Правая часть объединяется с ключевым элементом и посредством некоторого алгоритма шифрует левую часть. Перед следующим раундом левая и правая части меняются местами. Такая структура позволяет использовать один и тот же алгоритм как для шифрования, так и для дешифрования блока. Это особенно важно при аппаратной реализации, так как прямой и обратный шифры формируются одним и тем же устройством (различается только порядок подачи элементов ключа).

 

Авторами шифра Rijndael (читается «Рейндал») являются бельгийские специалисты В. Рейман (Vincent Rijmen) и Й. Даман (Joan Daemen). Этот шифр победил в упомянутом выше конкурсе AES и в 2001 году был принят в качестве нового стандарта США. Возможно, он будет играть такую же важную роль в практической криптографии, какая на протяжении десятилетий принадлежала DES. Rijndael заметно сложнее для описания, чем RC6 и ГОСТ 28147-89, хотя его компьютерная реализация достаточно эффективна. Мы представим только основную идею построения шифра.

Шифр Rijndael/AES характеризуется размером блока 128 бит, длиной ключа 128, 192 или 256 бит и количеством раундов 10, 12 или 14 в зависимости от длины ключа.

Договоримся об основных обозначениях. Под словом будем понимать последовательность из четырех байт (32 бита). Байты в слове нумеруются с 0 (младший байт) по 3 (старший байт). Блок данных состоит из четырех слов, которые нумеруются также с 0 по 3. Для упрощения обозначений условимся, что номера байтов в слове и слов в блоке всегда приводятся по модулю 4 без явного указания на это. Блок данных рассматривается как матрица размером 4x4 байта, причем слова соответствуют не строкам (как это обычно принято), а столбцам. Например Х 2,3 обозначает второй байт третьего слова блока X. Однако запись с одним индексом обозначает слово, например, Х з - третье слово блока. Мы будем следовать этому соглашению, чтобы не менять связанной с ним терминологии Rijndael.

Для выполнения преобразований в блоке используется раундо-вый ключ W, получаемый из секретного ключа К. Размер секретного ключа l определяет общее число раундов шифра r:

l =128 r =10,

l =192 r =12,

l =256 r =14.

Раундовый ключ состоит из блоков (по 128 бит), количество которых равно числу раундов плюс 1,

W = W 0, W 1,..., Wr.

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

1) линейный смешивающий слой гарантирует высокую степень взаимопроникновения символов блока для маскировки статистических связей;

2) нелинейный слой реализован с помощью S -боксов, имеющих оптимальную нелинейность, и предотвращает возможность использования дифференциального, линейного и других современных методов криптоанализа;

3) слой сложения с ключом выполняет непосредственно шифрование.

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

Алгоритм 5.5. RlJNDAEL: ШИФРОВАНИЕ БЛОКА

 

ВХОД: Блок X, раундовый ключ W.

ВЫХОД: Блок Y.

1. YXW 0;

2. FOR r =1,2,..., r -1 DO

3. Y SubBytes(Y),

4. Y ShiftRows(Y),

5. Y MixColumns(Y),

6. YYWi;

7. Y SubBytes(Y),

8. Y ShiftRows(Y),

9. Y Y Wr;

10. RETURN Y.

Процедура SubBytes (замена байтов) реализует слой нелинейного преобразования. Две другие процедуры ShiftRows (сдвиг строк) и MixColumns (перемешивание столбцов) представляют линейный смешивающий слой. Слой сложения с ключом реализован с помощью побитового «исключающего или» (XOR).

Алгоритм 5.6. RlJNDAEL: ДЕШИФРОВАНИЕ БЛОКА

 

ВХОД: Блок Y, раундовый ключ W.

ВЫХОД: Блок X.

1. XYWr;

2. FOR i=r -1, r -2,...,1 DO

3. X SubBytes-1(X),

4. X ShiftRows-1(X),

5. X MixColumns-1(X),

6. X X Wi;

7. X SubBytes-1(X),

8. X ShiftRows-1(X),

9. Х ХW 0;

10.RETURN X.

Последнее, что нам осталось рассмотреть, это процесс формирования раундового ключа. В прямом и обратном шифре нам было удобно делить раундовый ключ W на блоки по четыре слова. Однако формирование ключа проходит в пословном режиме, поэтому условимся обозначать буквой w с индексом отдельное слово в W, нумеруя слова с нуля. Как следует из описания шифра, раундовый ключ W должен состоять из r+ 1 блоков, где r - количество раундов в шифре. Поэтому количество слов в W равно 4(r +1). Число же слов в секретном ключе К, которое будем обозначать через с, равно 4, 6 или 8. Вначале опишем алгоритм построения W, затем дадим некоторые пояснения.

Алгоритм 5.9. Rijndael: формирование раундового ключа

 

ВХОД: Секретный ключ К из с слов.

ВЫХОД: Раундовый ключ W из 4(r +1) слов.

1. WК (с слов);

2. FOR i = c, c +l,...,4(r +l)-l DO

3. twi -1;

4. IF i mod с =0 THEN

5. t SubWord(RotWord(t)) Rcon [ i div c ];

6. ELSE IF с =8 AND i mod с =4 THEN

7. t SubWord(t);

8. w wi-ct;

9. RETURN w 0… w 4(r+1)-1

В данном алгоритме SubWord(t) - функция, применяющая S-бокс шифра к каждому байту слова t

[ t 0, t 1, t 2, t 3][S[ t 1],S[ t 2],S[ t 3],S[ t 0]].

Преобразование RotWord(t) осуществляет циклический сдвиг слова t на один байт влево

[ t 0, t 1, t 2, t 3][ t 1, t 2, t 3, t 0].

Массив раундовых констант Rcon состоит из слов

Rcon[ i ]=[ yi,0,0,0],

где

уi = хi- 1 mod m (x).

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

1) затруднить атаки на шифр при частично известном секретном ключе или при использовании зависимых (связанных общими правилами построения) ключей;

2) устранить имеющиеся симметрии внутри раунда шифра и между раундами (для этого используется массив раундовых констант Rcon).

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

<== предыдущая лекция | следующая лекция ==>
Блоковые шифры | Режим ЕСВ
Поделиться с друзьями:


Дата добавления: 2014-01-11; Просмотров: 1514; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.