Скачать презентацию А dvanced E ncryption S tandart RIJNDAEL Усовершенствованный Скачать презентацию А dvanced E ncryption S tandart RIJNDAEL Усовершенствованный

Лекция 5 AES.pptx

  • Количество слайдов: 101

А dvanced E ncryption S tandart RIJNDAEL Усовершенствованный стандарт шифрования А dvanced E ncryption S tandart RIJNDAEL Усовершенствованный стандарт шифрования

 ЬНО ИЛ РАВ И П КАК ЗНЕСТ И ПРО АНИЕ В НАЗ А? ЬНО ИЛ РАВ И П КАК ЗНЕСТ И ПРО АНИЕ В НАЗ А? Р ШИФ Разр а RIJM ботчики : EN+D AEM [rɛ EN inda ːl] Рей ндал AES – название стандарта; RIJNDAEL – название шифра

Блочный шифр 3 версии: AES 2) Ключ – 192 бит, число раундов 12 3) Блочный шифр 3 версии: AES 2) Ключ – 192 бит, число раундов 12 3) Ключ – 256 бит, число раундов 14 Структура «квадрат» AES 1) Ключ – 128 бит, число раундов 10 AES Длина блоков открытого текста – 128 бит Длина блоков шифротекста – 128 бит

1997 NIST объявляет конкурс AES для выбора нового стандарт США блокового шифрoвания 1997 NIST объявляет конкурс AES для выбора нового стандарт США блокового шифрoвания

Эффективная реализацию на платформе Pentium Pro Cтойкость не меньше, чем у 3 DES Cкорость Эффективная реализацию на платформе Pentium Pro Cтойкость не меньше, чем у 3 DES Cкорость шифрования больше скорости 3 DES AES Эффективная аппаратная реализация Прозрачная структура

Названы 5 шифров, финалистов конкурса 1997 NIST объявляет конкурс AES для выбора нового стандарт Названы 5 шифров, финалистов конкурса 1997 NIST объявляет конкурс AES для выбора нового стандарт США блокового шифрoвания 1999

RS MA Ключ – 128 -448 бит; Длина блока – 128 бит Число раундов RS MA Ключ – 128 -448 бит; Длина блока – 128 бит Число раундов – 32 Сеть Фейстеля смит Д. Коппер C 6 R EL DA N IJ R Ключ – 128, 192, 256 бит Длина блока – 128 бит Число раундов – 20; Сеть Фейстеля Р. Ривест мен В. Рей Ключ – 128, 192, 256 бит Длина блока – 128, 192, 256 бит Число раундов – 10, 12, 14 Архитектура «квадрат» ен Й. Дам

SE RP EN T H IS F OW T Ключ – 256 бит; Длина SE RP EN T H IS F OW T Ключ – 256 бит; Длина блока – 128 бит Число раундов – 16 Смешанная сеть Фейстеля Ключ – 128, 192, 256 бит Длина блока – 128 бит Число раундов – 20; SP-cеть Группа во главе с Б. Шнайером Р. Андерсон Л. Кнудсен Э. Бихам

Названы 5 шифров, финалистов конкурса 1997 NIST объявляет конкурс AES для выбора нового стандарт Названы 5 шифров, финалистов конкурса 1997 NIST объявляет конкурс AES для выбора нового стандарт США блокового шифрoвания 1999 2000 Победителем конкурса объявлен шифр RIJNDAEL

RIJNDAEL SERPENT TWOFISH MARS RC 6 Общая стойкость 2 3 3 3 2 Сложность RIJNDAEL SERPENT TWOFISH MARS RC 6 Общая стойкость 2 3 3 3 2 Сложность исполнения 3 3 2 1 1 Программная производительность 3 1 1 2 2 Производительность в смарт-картах 3 3 2 1 1 Аппаратная производительность 3 3 2 1 2 Особенности дизайна 2 1 3 2 1 ИТОГО 16 14 13 10 9

Названы 5 шифров, финалистов конкурса 1997 NIST объявляет конкурс AES для выбора нового стандарт Названы 5 шифров, финалистов конкурса 1997 NIST объявляет конкурс AES для выбора нового стандарт США блокового шифрoвания 1999 AES принят как стандарт FIPS 197 2000 2001 Победителем конкурса объявлен шифр RIJNDAEL

Vincent Rijmen 1970 г. р. q Католический университет в Левене. q 1997 г. - Vincent Rijmen 1970 г. р. q Католический университет в Левене. q 1997 г. - доктор наук по криптографии. q Разработчик блоковых шифров ANUBIS KHAZAD, NOEKEON, SHARK , хеш-функции WHIRLPOOL н. Рейме В В Joan Daemen 1965 г. р. q Католический университет в Левене по специальностям электромеханика и гражданское строительство. q 1995 г. – доктор наук по криптографии. q Шифры SHARK, NOEKEON, 3 -WAY, BASEKING и др. Й. Дамен

SQUARE – архитектура построения блочных шифров: вариант SP-сетей; за один раунд шифруется весь блок; SQUARE – архитектура построения блочных шифров: вариант SP-сетей; за один раунд шифруется весь блок; байт-ориентированная структура – данные представлены в виде двумерной матрицы байт замена по байтам; диффузия информации по строкам и столбцам , UARE EL, SQ PENT A RIJND N, SER RYPTO C

Output. Block Input. Block in 0, in 1, … , in 15 – оut Output. Block Input. Block in 0, in 1, … , in 15 – оut 0, out 1, …, out 15 – 16 байт шифротекста на выходе 16 байт открытого текста на входе AES k 0, k 1, … , k 15 – 16 байт ключа шифра Input. Key S 0, 0, S 1, 0, …, S 3, 3 16 байт промежуточных состояний State

128 бит = 16 байт а 0, 0 а 1, 0 а 2, 0 128 бит = 16 байт а 0, 0 а 1, 0 а 2, 0 а 3, 0 а 0, 1 а 1, 1 а 2, 1 а 3, 1 а 0, 2 а 1, 2 а 2, 2 а 3, 2 а 0, 3 а 1, 3 а 2, 3 а 3, 3

in 0 in 1 in 2 in 3 in 4 in 5 in 6 in 0 in 1 in 2 in 3 in 4 in 5 in 6 in 7 Inpu t. Blo ck in 8 in 9 in 10 in 11 in 12 in 13 in 14 in 15 out 0 out 1 out 2 out 3 S 0, 0 S 1, 0 S 2, 0 S 3, 0 out 4 out 5 out 6 out 7 S 0, 1 S 1, 1 S 2, 1 S 3, 1 out 8 out 9 out 10 out 11 S 0, 2 S 1, 2 S 2, 2 S 3, 2 S 0, 3 S 1, 3 S 2, 3 S 3, 3 tate S out 12 out 13 out 14 out 15 Output. Block

k 0 k 1 k 2 k 3 Input. Ke y Input. State k k 0 k 1 k 2 k 3 Input. Ke y Input. State k 4 k 5 k 6 k 7 k 8 k 9 k 10 k 11 k 12 k 13 k 14 k 15 Output. State

Input. Block=Input. State Output. State=Output. Block Input. Block=Input. State Output. State=Output. Block

State S 0, 0 S 1, 0 S 2, 0 S 3, 0 S State S 0, 0 S 1, 0 S 2, 0 S 3, 0 S 0, 1 S 1, 1 S 2, 1 S 3, 1 S 0, 2 S 1, 2 S 2, 2 S 3, 2 S 0, 3 S 1, 3 S 2, 3 S 3, 3 Аналогично в других матрицах

Например, СКЛАДНІСТЬЗАДАЧІ = (21 14 15 00 05 17 11 21 22 30 09 Например, СКЛАДНІСТЬЗАДАЧІ = (21 14 15 00 05 17 11 21 22 30 09 00 05 00 27 11)10= =(15 0 Е 0 F 00 05 11 0 B 15 16 1 E 09 00 05 00 1 B 0 B )16 15 05 16 Input. Block = 05 0 Е 11 1 E 00 0 F 0 B 09 1 B 00 15 00 0 B

№ байта 0 1 18 19 20 21 22 23 16 17 14 15 № байта 0 1 18 19 20 21 22 23 16 17 14 15 8 9 10 11 12 13 6 7 0 1 2 3 4 5 № бита на входе 2 … … № бита в 7 6 5 4 3 2 1 0 … байте

Это множество элементов, на котором определены одна или несколько алгебраических операций Группы Кольца Поля Это множество элементов, на котором определены одна или несколько алгебраических операций Группы Кольца Поля или Используемые операции Примеры или Z n или Zn* и Zр , р - простое

Для описания алгоритма используется конечное поле Галуа Эварист Галуа (Évariste Galois) Основатель современной высшей Для описания алгоритма используется конечное поле Галуа Эварист Галуа (Évariste Galois) Основатель современной высшей алгебры, крупнейший математик XIX века 1811 – 1832 (20 лет) Радикальный революционерреспубликанец. Застрелен на дуэли при неоднозначных обстоятельствах в возрасте 20 лет.

лом ным чис онеч поля с к Это в лементо э ой труктура, в лом ным чис онеч поля с к Это в лементо э ой труктура, в котор ская с оле – алгебраиче ния и Кратко: п ложения, умноже рации с определены опе мента ия обратного эле нахожден ех ором для вс в кот й е – кольцо, ует обратны и точно: пол ств А есл е нуля, суще кром элементов, элемент

Теорема 1 Если р – простое число, то кольцо вычетов по mod p – Теорема 1 Если р – простое число, то кольцо вычетов по mod p – это конечно е поле из р элем ентов, обозначаемое GF(p), или F p, или Z/p. Z Элементы это го поля могут б ыть представл числами ены целыми 0, 1, 2, …, р-1, над ко торыми вып олняется сложение и у множение по mod p.

Пример GF(5) = {0, 1, 2, 3, 4} – конечное поле + 0 1 Пример GF(5) = {0, 1, 2, 3, 4} – конечное поле + 0 1 2 3 4 х 0 1 2 3 4 0 0 0 0 1 1 2 3 4 0 1 2 3 4 2 2 3 4 0 1 2 0 2 4 1 3 3 3 4 0 1 2 3 0 3 1 4 2 4 4 0 1 2 3 4 0 4 3 2 1 4+3≡ 2 mod 5 4. 2≡ 3 mod 5 Мультипликативная инверсия а-1 а 0 а-1 - 1 2 3 4 1 3 2 4 2 -1=3, так как 2. 3=1 mod 5; 0 -1 - не существует

GF(6) = {0, 1, 2, 3, 4, 5} – не поле, только конечное кольцо GF(6) = {0, 1, 2, 3, 4, 5} – не поле, только конечное кольцо + 0 1 2 3 4 5 х 0 1 2 3 4 5 0 0 0 0 1 1 2 3 4 5 0 1 2 3 4 5 2 2 3 4 5 0 1 2 0 2 4 3 3 4 5 0 1 2 3 0 3 0 3 4 4 5 0 1 2 3 4 0 4 2 5 5 0 1 2 3 4 5 0 5 4 3 2 1 2 -1 , 3 -1, 4 -1 - не существуют

Теорема 2 Для любой степе ни р k , где р –просто е и Теорема 2 Для любой степе ни р k , где р –просто е и k> существует кон ечное поле GF k (р ) из рk >0 – целое, элементов GF(5) – конеч ное поле, GF(256)=GF (28) – конечное поле, GF(12)=GF (3. 22) – НЕ конечное поле

Как построить GF(рk), k >1 ? 1 Представить элементы поля в виде многочленов степени Как построить GF(рk), k >1 ? 1 Представить элементы поля в виде многочленов степени k – 1, коэффициенты которых принадлежат полю GF(p) А(x)=ak-1 xk-1+ak-2 xk-2+…+a 1 x+a 0 , a Є GF(p)={0, 1, …p-1} где i GF (pk) А(x) – многочлен над полем GF(p)

2 Cложение и вычитание в GF(pk): С(х)=А(x)+В(х)= = сk-1 xk-1+сk-2 xk-2+…+с1 x+с0 , где 2 Cложение и вычитание в GF(pk): С(х)=А(x)+В(х)= = сk-1 xk-1+сk-2 xk-2+…+с1 x+с0 , где сi =ai +bi (mod p)

ПРИМЕР. А, B – элементы поля GF (28) А(x) = x 7+ x 6 ПРИМЕР. А, B – элементы поля GF (28) А(x) = x 7+ x 6 + x 4 + В(x) = x 4 + С(x) = x 7+ x 6 + x 2 +1 +1

3 Умножение в GF(pk): С'(х)=А(x). В(х)= = (аk-1 xk-1+аk-2 xk-2+…+а 1 x+а 0 ). 3 Умножение в GF(pk): С'(х)=А(x). В(х)= = (аk-1 xk-1+аk-2 xk-2+…+а 1 x+а 0 ). (bk-1 xk-1 + + bk-2 xk-2+…+b 1 x+b 0 ) = = c'2 k-2 x 2 k-2+c'2 k-1 x 2 k-1+…+c'1 x+c'0 , где c'0 = а 0 b 0(mod p) , c'1 = а 0 b 1+а 1 b 0 (mod p) , c'2 k-2 = аk-1 bk-1 (mod p) . . . ,

ПРОБЛЕМА: степень произведения С '(х) может быть больше, чем k-1, а многочленов с такой ПРОБЛЕМА: степень произведения С '(х) может быть больше, чем k-1, а многочленов с такой степенью в поле нет !!! ВЫХОД: привести произведение С '(х) по модулю другого многочлена, аналогично тому, как произведение чисел приводится по mod p в поле GF(p) ЗАЧЕМ? В этом случае степень многочлена-остатка всегда меньше, чем k

Для построения поля GF(pk) в роли модуля надо выбирать многочлен q степени k q Для построения поля GF(pk) в роли модуля надо выбирать многочлен q степени k q с коэффициентами из GF(p) q неприводимый многочлен нельзя представить как произведение других многочленов над GF(p) меньшей степени

f(x) mod m(x) = остатку от деления f (x) на m(x) с приведением коэффициентов f(x) mod m(x) = остатку от деления f (x) на m(x) с приведением коэффициентов по модулю р Пример 1. Найти х4+х3+1 mod х2+1. Mногочлены заданы над полем GF(2). Решение. 4 х +х3+1 х2+1 х4+х2 х2+х+1 х3+х2 х3+х х2+х+1 х4+х3+1 mod х2+1≡ x 2+ х 1 х

Поле Галуа GF(pk), порожденное неприводимым многочленом т(х) степени k над полем Zp (или GF(p)) Поле Галуа GF(pk), порожденное неприводимым многочленом т(х) степени k над полем Zp (или GF(p)) обозначается GF(pk) = Zp [x]/<т(х)> (или GF(p)/<т(х)> )

Пример 2. Найти (х3+х2+1)(х2+х) в поле GF(2)/<х4+х+1>. Решение. Поле GF(24), модуль т(х) = х4+х+1>. Пример 2. Найти (х3+х2+1)(х2+х) в поле GF(2)/<х4+х+1>. Решение. Поле GF(24), модуль т(х) = х4+х+1>. (х3+х2+1)(х2+х) mod х4+х+1 =х5+х4+х2+х4+х3+ x = = х5+х3+х2+x mod х4+х+1 х4 =1. P(x)+x+1 х4 ≡ x+1 mod х4+х+1; х5 ≡ x 2+x mod х4+х+1; х5+х3+х2+x mod х4+х+1≡ х2+x+х3+х2+x ≡ х3 (х3+х2+1)(х2+х) ≡ х3 mod х4+х+1

4 Инверсия в GF(pk): А(x) и А-1(х) – взаимно обратные элементы поля GF(pk) = 4 Инверсия в GF(pk): А(x) и А-1(х) – взаимно обратные элементы поля GF(pk) = Zp [x]/<т(х)>, если А(x). А-1(х)≡ 1 mod m(x) Инверсия возможна благодаря теореме: если НОД (А(х), В(х)) = 1 mod m(x), то существуют такие многочлены U(x) и V(x), что A(x). U(x) + B(x). V(x) ≡ 1 mod m(x). А-1(х)≡ U(x) mod m(x)

Пример. Найти (х+1)-1 в поле GF(2)/<х2+х+1>. Решение. Многочлены х+1 и т(х) = х2+х+1 – Пример. Найти (х+1)-1 в поле GF(2)/<х2+х+1>. Решение. Многочлены х+1 и т(х) = х2+х+1 – взаимно просты. НОД ( х2+х+1, х+1) = 1. (х+1)х+(х2+х+1) ≡ 1 mod х2+х+1. (х+1) -1 ≡ х mod х2+х+1

В AES используется поле Галуа GF(28), для построения которого выбран модуль m(x) = х8 В AES используется поле Галуа GF(28), для построения которого выбран модуль m(x) = х8 + х4+ х3+х+1 Такое поле обозначается Z 2[x]/<х8 + х4+ х3+х+1> Поле RIJNDAEL

Элементы поля Z 2[x]/<x 8+x 4+x 3+x+1> – многочлены b(x) =b 7 х7 +b Элементы поля Z 2[x]/ – многочлены b(x) =b 7 х7 +b 6 х6 + b 5 х5 +b 4 х4 +b 3 х3+ b 2 х2 +b 1 х +b 0 ИНТЕРПРЕТАЦИЯ: b 7 х7+b 6 х6+b 5 х5+b 4 х4+b 3 х3+ b 2 х2+b 1 х+b 0=b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 8 битов = 1 байт Всего в поле 28 = 256 многочленов

AES ПРИМЕР. Какой многочлен в поле AES соответствует байту 63 ? РЕШЕНИЕ. 6316 = AES ПРИМЕР. Какой многочлен в поле AES соответствует байту 63 ? РЕШЕНИЕ. 6316 = 011000112 = х6+х5+х+1

Сложение байт Сложить как многочлены Сложить как числа в шестнадцатеричные числа Суммировать биты в Сложение байт Сложить как многочлены Сложить как числа в шестнадцатеричные числа Суммировать биты в байтах (XOR) в поле GF(28) ПРИМЕР. 57+83 = D 4; {01010111}+{10000011}={11010100}; (x 6+x 4+x 2+x+1)+(x 7+x+1)=x 7+x 6+x 4+x 2

Умножение байт В AES поле GF(28) построено с помощью многочлена т(x)=x 8+x 4+x 3+x+1 Умножение байт В AES поле GF(28) построено с помощью многочлена т(x)=x 8+x 4+x 3+x+1 х8 mod (x 8 + x 4+x 3+x+1) ≡ x 4+x 3+x+1 b(x). x = (b 7 x 7+b 6 x 6+b 5 x 5+b 4 x 4+b 3 x 3+b 2 x 2+b 1 x+b 0) x = =b 7 x 8+b 6 x 7+b 5 x 6+b 4 x 5+b 3 x 4+b 2 x 3+b 1 x 2+b 0 x = = b 6 x 7+b 5 x 6+b 4 x 5+b 3 x 4+b 2 x 3+b 1 x 2+b 0 x, если b 7 = 0; (x 4+x 3+x+1)+ b 6 x 7+b 5 x 6+b 4 x 5+b 3 x 4+b 2 x 3+b 1 x 2+b 0 x, если b 7 = 1

Умножение байт В поле AES х → 0000 0010, x 4+x 3+x+1 → 0001 Умножение байт В поле AES х → 0000 0010, x 4+x 3+x+1 → 0001 1011 b(x). x = b 6 b 5 b 4 b 3 b 2 b 1 b 00 , если b 7 = 0; b 6 b 5 b 4 b 3 b 2 b 1 b 0 0 + 0001 1011, если b 7 = 1 Сдвиг на один бит влево и ХOR с 0001 1011

Умножение байт ПРИМЕР. Найти 57. 83 в поле AES GF(2)/<х8+х4+х3+x+1>. РЕШЕНИЕ: 5716= 0101 01112 Умножение байт ПРИМЕР. Найти 57. 83 в поле AES GF(2)/<х8+х4+х3+x+1>. РЕШЕНИЕ: 5716= 0101 01112 → f (x) = x 6+x 4+x 2+x+1; 8316= 1000 00112 → g(x) = x 7+x+1 57. 83 = f (x) g(x) = (x 6+x 4+x 2+x+1)(x 7+x+1) 0000 0010 → x

f (x). x = (0101 0111). (0000 0010)=1010 1110 Сдвиг на один бит влево, f (x). x = (0101 0111). (0000 0010)=1010 1110 Сдвиг на один бит влево, так как старший бит b 7=0 f (x). x 2 = (1010 1110). (0000 0010)=0101 1100+00011011= = 0100 0111 Сдвиг на один бит влево и XOR c x 4+x 3+x+1, так как старший бит b 7=1 f (x). x 3 = (0100 0111). (0000 0010)=1000 1110 f (x). x 4 = (1000 1110). (0000 0010)=0001 1100+00011011= = 0000 0111

f (x). x 5 = (0000 0111). (0000 0010)= 0000 1110 f (x). x f (x). x 5 = (0000 0111). (0000 0010)= 0000 1110 f (x). x 6 = (0000 1110). (0000 0010)= 0001 1100 f (x). x 7 = (0001 1100). (0000 0010)= 0011 1000 5716. 8316 = f (x) g(x) = (x 6+x 4+x 2+x+1)(x 7+x+1)= = f (x). x 7 + f (x). x + f (x) = = 0011 1000 +1010 1110 + 0101 0111 = 1100 00012= = x 7+x 6+1 = C 116

. . [a 0, a 1, a 2, a 3] → А(х) = а . . [a 0, a 1, a 2, a 3] → А(х) = а 3 x 3 + а 2 x 2 +а 1 x + а 0 слово [a 0, a 1, a 2, a 3] из 4 байт многочлен над полем GF (28) (а 0, а 1, а 2, а 3 – байты) Сложение многочленов над полем GF (28) А(х) = а 3 x 3 + а 2 x 2 +а 1 x + а 0 , где а 0, а 1, а 2, а 3 Є GF(28) В(х) = b 3 x 3 + b 2 x 2 +b 1 x + b 0 , где b 0, b 1, b 2, b 3 Є GF(28) А(х) +B(x) = (а 3 +b 3) x 3 +(а 2 +b 2) x 2 +(а 1 +b 1) x + (a 0+b 0)

. . Умножение многочленов над полем GF (28) С(x) = А(х) B(x) = с6 . . Умножение многочленов над полем GF (28) С(x) = А(х) B(x) = с6 x 6 +с5 x 5 +с4 х4+с3 х3+с2 х2+с1 х+с0, где с0 = а 0 b 0 с4 = а 3 b 1+а 2 b 2+а 1 b 3 с1 = а 1 b 0+а 0 b 1 с2 = а 2 b 0+а 1 b 1+а 0 b 2 с5 = а 3 b 2+а 2 b 3 с6 = а 3 b 3 с3 = а 3 b 0+а 2 b 1+а 1 b 2+а 0 b 3 Чтобы результат опять представлялся 4 -байтовым словом, использовано приведение по модулю многочлена Можно показать, что xi mod(x 4 +1) ≡ хi mod 4 х4+1

. . После приведения по модулю D(x) = А(х) B(x) = d 3 х3+d . . После приведения по модулю D(x) = А(х) B(x) = d 3 х3+d 2 х2+d 1 х+d 0, где d 0 = а 0 b 0+а 3 b 1+а 2 b 2+а 1 b 3; d 1 = а 1 b 0+а 0 b 1+а 3 b 2+а 2 b 3; d 2 = а 2 b 0+а 1 b 1+а 0 b 2+а 3 b 3; d 3 = а 3 b 0+а 2 b 1+а 1 b 2+а 0 b 3 Или в матричной форме d 0 d 1 d 2 а 0 а 1 а 2 а 3 а 0 а 1 а 2 . а 3 d 3 а 2 а 1 а 0 b 1 b 2 b 3

Открытый текст Add. Round. Key Shift. Rows Mix. Columns Add. Round. Key 9 раундов Открытый текст Add. Round. Key Shift. Rows Mix. Columns Add. Round. Key 9 раундов Sub. Bytes Shift. Rows Add. Round. Key Шифротекст Mix. Columns В 10 -м раунде

Sub. Bytes побайтовая подстановка в S-боксе Shift. Rows побайтовый сдвиг строк матрицы State на Sub. Bytes побайтовая подстановка в S-боксе Shift. Rows побайтовый сдвиг строк матрицы State на различное число байт Перемешивание байтов в столбцах Mix. Columns Cложение с раундовым ключом (XOR) Add. Round. Key

– нелинейная замена байтов Обеспечивает нелинейность преобразования !!! без инверсии операция была бы аффинном – нелинейная замена байтов Обеспечивает нелинейность преобразования !!! без инверсии операция была бы аффинном преобразованием !!! Выходные биты Входные биты

y S 0, 0 S 0, 1 S 0, 2 S 0, 3 x y S 0, 0 S 0, 1 S 0, 2 S 0, 3 x S 1, 0 S 1, 1 S 1, 2 S 1, 3 S’ 0, 0 S’ 0, 1 S’ 0, 2 S’ 0, 3 S 2, 0 S 2, 1 S 2, 2 S 2, 3 S 2, 2 S 3, 0 S 3, 1 S 3, 2 S 3, 3 S 2, 2 = xy Sub. Bytes S’ 1, 0 S’ 1, 1 S’ 1, 2 S’ 1, 3 S’ 2, 0 S’ 2, 1 S’ 2, 2 S’ 2, 3 S’ 2, 2 S’ 3, 0 S’ 3, 1 S’ 3, 2 S’ 3, 3

S-бокс 0 1 2 3 4 5 6 7 8 9 A B C S-бокс 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 63 CA B 7 04 09 53 DO 51 CD 60 E 7 BA 70 E 1 8 C 1 7 C 82 FD C 7 83 D 1 EF A 3 0 C 81 32 CB 78 3 E F 8 A 1 2 77 C 9 93 23 2 C 00 AA 40 13 4 F 3 A 37 25 B 5 98 89 3 7 B 7 D 26 C 3 1 A ED FB 8 F EC DC 0 A 6 D 2 E 66 11 OD 4 F 2 FA 36 18 1 B 20 43 92 5 F 22 49 8 D 1 C 48 69 BF 5 6 B 59 3 F 96 6 E FC 4 D 9 D 97 2 A 06 D 5 A 6 03 D 9 E 6 6 6 F 47 F 7 05 5 A B 1 33 38 44 90 24 4 E B 4 F 6 8 E 42 7 C 5 FO CC 9 A AO 5 B 85 F 5 17 88 5 C A 9 C 6 OE 94 68 8 30 AD 34 07 52 6 A 45 BC C 4 46 C 2 6 C E 8 61 9 B 41 9 01 D 4 A 5 12 3 B CB F 9 B 6 A 7 EE D 3 56 DD 35 1 E 99 A 67 A 2 E 5 80 D 6 BE 02 DA 7 E B 8 AC F 4 74 57 87 2 D B 2 B AF F 1 E 2 B 3 39 F 7 21 3 D 14 62 EA IF B 9 E 9 OF C FE 9 C 71 EB 29 4 A 50 10 64 DE 91 65 4 B 86 CE BO D D 7 A 4 D 8 27 E 3 4 C 3 C FF 5 D 5 E 95 7 A BD C 1 55 54 E AB 72 31 B 2 2 F 58 9 F F 3 19 0 B E 4 AE 8 B 1 D 28 BB F 76 CO 15 75 84 CF A 8 D 2 73 DE 79 08 8 A 9 E DF 16

Пример. EA 04 65 85 F 2 4 D 97 83 45 5 D Пример. EA 04 65 85 F 2 4 D 97 83 45 5 D 96 EC 6 E 4 C 90 5 C 33 98 B 0 4 A C 3 46 E 7 F 0 2 D AD C 5 8 C D 8 95 A 6 Sub. Bytes 87

S 0, 0 S 0, 1 S 0, 2 S 0, 3 S 1, S 0, 0 S 0, 1 S 0, 2 S 0, 3 S 1, 0 S 1, 1 S 1, 2 S 1, 3 Shift. Rows S’ 0, 0 S’ 0, 1 S’ 0, 2 S’ 0, 3 S’ 1, 1 S’ 1, 2 S’ 1, 3 S’ 1, 0 S 2, 1 S 2, 2 S 2, 3 S’ 2, 2 S’ 2, 3 S’ 2, 0 S’ 2, 1 S 3, 0 S 3, 1 S 3, 2 S 3, 3 S’ 3, 0 S’ 3, 1 S’ 3, 2

S 0, 0 S 0, 1 S 0, 2 S 0, 3 S 1, S 0, 0 S 0, 1 S 0, 2 S 0, 3 S 1, 0 S 1, 1 S 1, 2 S 1, 3 S 2, 0 S 2, 1 S 2, 2 S 2, 3 S 3, 0 S 3, 1 S 3, 2 S 3, 3 S 1, 0 S 1, 1 S 1, 2 S 2, 3 S 2, 0 S 2, 1 S 3, 2 S 3, 3 S 3, 0

Пример. 87 F 2 4 D 97 87 F 2 4 D EC 6 Пример. 87 F 2 4 D 97 87 F 2 4 D EC 6 E 4 C 90 EC 4 A C 3 46 E 7 4 A C 3 8 C D 8 95 A 6 8 C D 8 95 Shift. Rows 97

S 0, 0 S 0, 1 S 0, 2 S 0, 3 S 0, S 0, 0 S 0, 1 S 0, 2 S 0, 3 S 0, 1 S 1, 0 S 1, 1 S 1, 2 S 1, 3 S 1, 1 Mix. Columns S’ 0, 0 S’ 0, 1 S’ 0, 2 S’ 0, 3 S’ 0, 1 S’ 1, 0 S’ 1, 1 S’ 1, 2 S’ 1, 3 S’ 1, 1 S 2, 0 S 2, 1 S 2, 2 S 2, 3 S 2, 1 S’ 2, 0 S’ 2, 1 S’ 2, 2 S’ 2, 3 2, 1 S 3, 0 S 3, 1 S 3, 2 S 3, 3 S S’ 3, 0 S’ 3, 1 S’ 3, 2 S’ 3, 3 S’ 3, 1 Умножение на с(х) = 03 x 3 +01 x 2 +01 x+02

Столбцы матрицы State – многочлены над GF(28), умножаются на фиксированный многочлен с(х) = 03 Столбцы матрицы State – многочлены над GF(28), умножаются на фиксированный многочлен с(х) = 03 x 3 + 01 x 2 +01 x + 02 по модулю многочлена х4+1: Здесь Si , Si' – 8 -битовые элементы поля GF(28)

Пример. 87 F 2 4 D 6 E 4 C 46 A 6 97 Пример. 87 F 2 4 D 6 E 4 C 46 A 6 97 47 40 А 3 90 EC 37 D 4 70 9 F E 7 4 A C 3 94 E 4 3 A 8 C D 8 95 ED A 5 A 6 BC Mix. Columns 4 С 42

Для 1 -го столбца: 87. 02 = (1000 0111). (0000 0010)=0000 1110+ 0001 1011= Для 1 -го столбца: 87. 02 = (1000 0111). (0000 0010)=0000 1110+ 0001 1011= 0001 0101 6 Е. 03 = 6 Е. (х+1) = 6 Е. х+6 Е = (0110 1110)(0000 0010)+ +(0110 1110) = 1101 1100+0110 1110 = 1011 0010 46. 01 = (0100 0110)(0000 0001) = 0100 0110 87. 02 + 6 Е. 03+46. 01+А 6. 01 = 0100 0111= 47 И т. д.

Многочлен С(х)= 03 х3+01 х2+01 х+02 – взаимно простой с многочленом х4+1 над полем Многочлен С(х)= 03 х3+01 х2+01 х+02 – взаимно простой с многочленом х4+1 над полем GF(2) Существует обратный многочлен С -1(х) mod х4+1 Матрица в операции Mix. Columns обратима

a 0, 0 a 0, 1 a 0, 2 a 0, 3 b 0, a 0, 0 a 0, 1 a 0, 2 a 0, 3 b 0, 0 b 0, 1 b 0, 2 b 0, 3 a 1, 0 a 1, 1 a 1, 2 a 1, 3 S 2, 2 a 2, 0 a 2, 1 a 2, 2 a 2, 3 b 1, 0 b 1, 1 b 1, 2 b 1, 3 S’ 2, 2 b 2, 0 b 2, 1 b 2, 2 b 2, 3 a 3, 0 a 3, 1 a 3, 2 a 3, 3 b 3, 0 b 3, 1 b 3, 2 b 3, 3 k 0, 0 k 0, 1 k 0, 2 k 0, 3 k 1, 0 k 1, 1 k 1, 2 k 1, 3 k 2, 0 k 2, 1 k 2, 2 k 2, 3 k 2, 2 k 3, 0 k 3, 1 k 3, 2 k 3, 3 Add. Round. Key

k 0 k 1 k 2 k 3 k 4 k 5 k 6 k 0 k 1 k 2 k 3 k 4 k 5 k 6 k 7 In pu t. K k 12 ey k 8 k 9 k 13 k 10 k 14 k 11 k 15 ключ шифра w 0 w 1 w 2 w 3 w 4 w 5 w 6 w 7 w 8 … w 42 w 43 ключ 0 -го раунда ключ 1 -го раунда (4 сл. х4 байта) …

w 0 w 1 w 2 w 3 wi+4 = wi + g(wi+3) wi+5 w 0 w 1 w 2 w 3 wi+4 = wi + g(wi+3) wi+5 = wi+4+wi+1 g w 4 w 5 w 6 w 7 g wi+6 = wi+5+wi+2 wi+7 = wi+6+wi+3 w 8 w 9 w 10 w 11 …

 циклический Rot. Word - сдвиг в слове на 1 байт влево g(w) Sub. циклический Rot. Word - сдвиг в слове на 1 байт влево g(w) Sub. Word - замена каждого байта по таблице Sub. Byte Суммирование байтов с раундовой константой Rcon[i]=(RC[i], 0, 0, 0) RC[i]=2 RC[i-2], RC[1]=10, i= 1, 2, …, 10

Раундовые ключи w 0 =0 F 15 w 1 =47 D 9 w 2 Раундовые ключи w 0 =0 F 15 w 1 =47 D 9 w 2 =0 C B 7 w 3 =AF 7 F 71 E 8 AD 67 C 9 59 DF 98 w 4 =w 4 + z 1 = DC 90 37 B 0 w 5 =w 4 + w 1 = 9 B 49 DF E 9 w 6 =w 5+ w 2 = 97 FE 72 3 F w 7 =w 6+ w 3 = 38 81 15 A 7 w 8 = w 4 + z 2 = D 2 C 9 6 B B 7 w 9 = w 8 + w 5 = 49 80 B 4 5 E w 10 =w 9+ w 6 = DE 7 E C 6 61 w 11 =w 10+ w 7 = E 6 FF D 3 C 6 Функция g(w) Rot. Word(w 3) = 7 F 67 98 AF = x 1 Sub. Word(x 1) = D 2 85 46 79 = y 1 Rcon [1] = 01 00 00 00 y 1+ Rcon [1] = D 3 85 46 79 = z 1 Rot. Word(w 7) = 81 15 A 7 38 = x 2 Sub. Word(x 4) = 0 C 59 5 C 07 = y 2 Rcon [2] = 02 00 00 00 y 2+ Rcon [2] = 0 E 59 5 C 07 = z 2 Rot. Word(w 11) = FF D 3 C 6 E 6= x 3 Sub. Word(x 2) = 16 66 B 4 8 E = y 3 Rcon [3] = 04 00 00 00 y 3+ Rcon [3] = 12 66 B 4 8 E = z 3

 Sub. Bytes Inv. Sub. Bytes Shift. Rows Inv. Shift. Rows Mix. Columns Inv. Sub. Bytes Inv. Sub. Bytes Shift. Rows Inv. Shift. Rows Mix. Columns Inv. Mix. Columns Add. Round. Key

Шифротекст Add. Round. Key Inv. Sub. Bytes Add. Round. Key Inv. Mix. Columns 9 Шифротекст Add. Round. Key Inv. Sub. Bytes Add. Round. Key Inv. Mix. Columns 9 раундов Inv. Shift. Rows Процедура расшифрования не идентична процедуре зашифрования Inv. Shift. Rows Inv. Sub. Bytes Add. Round. Key Открытый текст Inv. Mix. Columns В 10 -м раунде

 Обратная операция к Sub. Bytes Мультипликативная инверсия в GF(28) Аффинное преобразование Inv. Sub. Обратная операция к Sub. Bytes Мультипликативная инверсия в GF(28) Аффинное преобразование Inv. Sub. Bytes Инверсия аффинного преобразования Мультипликативная инверсия в GF(28) Одинакова для зашифрования и расшифрования

В матричном виде В матричном виде

Инвертированный S-бокс 0 1 2 3 4 5 6 7 8 9 A B Инвертированный S-бокс 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 52 7 C 54 08 72 6 C 90 D 0 3 A 96 47 FC 1 F 60 A 0 17 1 09 E 3 7 B 2 E FB 70 D 8 2 C 91 AC E 1 56 D 51 E 0 2 B 2 6 А 39 94 A 1 F 6 48 AB 1 E 11 74 1 A 3 E A 8 7 E 3 B 04 3 D 5 82 32 66 64 50 00 8 F 41 22 71 4 B 33 A 9 4 D 7 E 4 30 9 B A 6 28 86 FD 8 C CA 4 F E 7 1 D C 6 88 19 AE BA 5 36 2 F C 2 D 9 68 ED BC 3 F 67 AD 29 D 2 07 B 5 2 A 77 6 A 5 FF 23 24 98 B 9 D 3 0 F DC 35 C 5 79 C 7 4 A F 5 D 6 7 38 87 3 D B 2 16 DA 0 A 02 EA 85 89 20 31 0 D B 0 26 8 BF 34 EE 76 D 4 5 E F 7 C 1 97 E 2 6 F 9 A B 1 2 D CB E 1 9 40 8 E 4 C 5 B A 4 15 E 4 AF F 2 F 9 B 7 DB 12 E 5 EB 69 A A 3 43 95 A 2 5 C 46 58 BD CF 37 62 C 0 10 7 A B 3 14 B 9 E 44 68 49 CC 57 05 03 CE EB 0 E FE 59 9 F 3 C 63 C 81 C 4 42 5 D 5 D A 7 B 8 01 FO 1 C AA 78 27 93 D F 3 DE FA 65 65 8 D B 3 13 B 4 75 18 CD 80 C 9 83 53 55 21 E D 7 E 9 C 3 B 6 9 D 45 8 A E 6 DE BE 5 A EC 9 C 99 0 C F FB CB 4 E 92 92 84 06 6 B 73 6 E 1 B F 4 5 F EF 61 7 D

 Обратная операция к Shift. Rows S'0, 0 S'0, 1 S'0, 2 S'0, 3 Обратная операция к Shift. Rows S'0, 0 S'0, 1 S'0, 2 S'0, 3 Inv. Shift. Rows S 0, 0 S 0, 1 S 0, 2 S 0, 3 S'1, 0 S'1, 1 S'1, 2 S'1, 3 S 1, 0 S 1, 1 S 1, 2 S'2, 0 S'2, 1 S'2, 2 S'2, 3 S 2, 2 S 2, 3 S 2, 0 S 2, 1 S'3, 0 S'3, 1 S'3, 2 S'3, 3 S 3, 1 S 3, 2 S 3, 3 S 3, 0

 Обратная операция к Mix. Columns S’ 0, 0 S’ 0, 1 S’ 0, Обратная операция к Mix. Columns S’ 0, 0 S’ 0, 1 S’ 0, 2 S’ 0, 3 S’ 0, 1 S’ 1, 0 S’ 1, 1 S’ 1, 2 S’ 1, 3 S’ 1, 1 S 0, 0 S 0, 1 S 0, 2 S 0, 3 S 0, 1 Inv. Mix. Columns S 1, 0 S 1, 1 S 1, 2 S 1, 3 S 1, 1 S’ 2, 0 S’ 2, 1 S’ 2, 2 S’ 2, 3 2, 1 S 2, 0 S 2, 1 S 2, 2 S 2, 3 S 2, 1 S’ 3, 0 S’ 3, 1 S’ 3, 2 S’ 3, 3 S’ S 3, 0 S 3, 1 S 3, 2 S 3, 3 S 3, 1 Умножение на с-1(х) = 0 Bx 3 + 0 D x 2 +09 x + 0 E 3, 1

 Операция Inv. Mix. Columns в матричной форме Операция Inv. Mix. Columns в матричной форме

Add. Round. Key = Inv. Add. Round. Key Зашифрование: w 0 w 1 w Add. Round. Key = Inv. Add. Round. Key Зашифрование: w 0 w 1 w 2 w 3 w 4 w 5 w 6 w 7 … w 40 w 41 w 42 w 43 ключ 0 -го раунда ключ 1 -го раунда … ключ 10 -го раунда Расшифрование: w 0 w 1 w 2 w 3 … w 36 w 37 w 38 w 39 w 40 w 41 w 42 w 43 ключ 10 -го раунда … ключ 1 -го раунда ключ 0 -го раунда

Свойства операций AES Операции Sub. Bytes и Shift. Rows – коммутативны Операции Inv. Sub. Свойства операций AES Операции Sub. Bytes и Shift. Rows – коммутативны Операции Inv. Sub. Bytes и Inv. Shift. Rows – тоже коммутативны можно при расшифровании Inv. Sub. Bytes Inv. Shift. Rows

Свойства операций AES Mix. Сolumns и Inv. Mix. Columns – линейны относительно данных столбца Свойства операций AES Mix. Сolumns и Inv. Mix. Columns – линейны относительно данных столбца State: Inv. Mix. Columns (State + Round Key)= Inv. Mix. Columns(State) + Inv. Mix. Columns(Round Key) Add. Round. Key Inv. Mix. Columns, если с помощью Inv. Mix. Columns изменить порядок слов в раундовых ключах, кроме первого и последнего

Входной блок Mix. Columns 1 -ый раунд – измененный байт Shift. Rows 2 -ой Входной блок Mix. Columns 1 -ый раунд – измененный байт Shift. Rows 2 -ой раунд Mix. Columns 2 -ой раунд

операция Sub. Bytes делает шифрование нелинейным перемешивание и рассеивание информации обеспечивают функции Shift. Rows операция Sub. Bytes делает шифрование нелинейным перемешивание и рассеивание информации обеспечивают функции Shift. Rows и Mix. Columns операция Add. Round. Key добавляет необходимую секретную случайность

Раунд 1 Число измененных 20 битах 2 3 4 5 6 7 8 9 Раунд 1 Число измененных 20 битах 2 3 4 5 6 7 8 9 10 58 59 61 68 64 67 65 61 58

AES устойчив к таким атакам: 20 03 г Кр на ипто св ан а AES устойчив к таким атакам: 20 03 г Кр на ипто св ан а кл язан лиз юч ны ах х Линейный лиз криптоана RE RE UA и SQ так SQ а так а Слабых ключей нет . еренц Дифф нализ оа крипт АНБ США объявило, что AES достаточно надёжен для защиты гос. тайны

2 г 0 20 Полный перебор ключей Алгебраические атаки ( XSL) новый тип крип- 2 г 0 20 Полный перебор ключей Алгебраические атаки ( XSL) новый тип крип- AES-128 → 2127 тоанализа. AES-192 → 2191 Сложность атаки 255 AES-256 → 2 на AES-128 → 287 операций.

ИДЕЯ: шифрование с помощью AES-128 можно записать в виде системы алгебраических уравнений Куртуа и ИДЕЯ: шифрование с помощью AES-128 можно записать в виде системы алгебраических уравнений Куртуа и Пепшик Система содержит: 8000 квадратных уравнений с1600 неизвестными Ее решение сломает AES!!! Сложность решения - 2100

, , не таки – это -а XSL-а та. . Это меч атаки ймен , , не таки – это -а XSL-а та. . Это меч атаки ймен инсент Ре В Но однажды она может стать кошмаром для автора AES. Николас Картуа Nicolas T. Courtois

2009 г 2011 г Комбинация + бумеранга и связанных ключей Бирюков, Ховратович Атака Biclique 2009 г 2011 г Комбинация + бумеранга и связанных ключей Бирюков, Ховратович Атака Biclique Богданов, Ховратович и Речбергер. Сложность атаки AES-192 AES-256 → 287 AES-128 - cтойкий Сложность атаки на AES-128 → 2126, 1 операций

АЛЕКС БИРЮКОВ • (Alex Вiryukov) криптограф и криптоаналитик, • доцент Люксембургского университета ДМИТРИЙ ХОВРАТОВИЧ АЛЕКС БИРЮКОВ • (Alex Вiryukov) криптограф и криптоаналитик, • доцент Люксембургского университета ДМИТРИЙ ХОВРАТОВИЧ (Dmitry Khovratovich) • 2005 г. - Московский университет в • аспирантура в Люксембургском университете (руководитель Бирюков) • 2010 г. - степень доктора

АНДРЕЙ БОГДАНОВ • 2005 г –Московский гуманитарный университет. • стипендиат в Университете Гумбольдта (ФРГ), АНДРЕЙ БОГДАНОВ • 2005 г –Московский гуманитарный университет. • стипендиат в Университете Гумбольдта (ФРГ), стажировка в компании Siemens. • преподает в Рурском университете. КРИСТИАН РЕЧБЕРГЕР • (Christian Rechberger) степень доктора по криптографии в университете в Граце. • консультант Реймена при разработке AES. • Научный сотрудник Высшей нормальной школы в Париже.

Брюс Шнайер (Bruce Schneier) Я не думаю, что сегодня известна какая-либо практическая атака на Брюс Шнайер (Bruce Schneier) Я не думаю, что сегодня известна какая-либо практическая атака на AES. Если Вы знаете, как взломать п-раундовый шифр, то удвойте или утройте число раундов. Это может быть AES-128 с 16, или AES-192 с 20, или AES-256 с 28 раундами. А полного пересмотра стандарта снова и снова мы не хотим (2009 г. )

(Daniel Bernstein) 1970 г. р. Известный криптограф, математик, программист. Судовые дела Бернштейна против США (Daniel Bernstein) 1970 г. р. Известный криптограф, математик, программист. Судовые дела Бернштейна против США по поводу ограничений на экспорт криптографии из США 2005 г. X Атака по времени Даниэль Бернштейн 2005 г IV. Атака по времени (Бернштейн) на основе информации о времени выполнения операций шифрования >2 млн. выбранных шифротекстов (Д. А. Освик, А. Шамир и др. ) 800 операций шифрования + запуск программ в системе, где выполнено шифрование

 2009 г IV. Дифференц. анализ ошибок разновидность криптоанализа на основе создания случайных аппаратных 2009 г IV. Дифференц. анализ ошибок разновидность криптоанализа на основе создания случайных аппаратных ошибок Ключ AES-128 найден за 232 операций 2012 г. «В мгновение ока: Ваш ключ AES» с помощью нового метода «трубопроводный анализ излучения» в чипах ASCI 3 FPGA (Китай) 2011 г обнаружен бэкдор, способный снять криптозащиту и сменить ключ AES за 0, 01 сек. Сергей Скоробогатов, выпускник МИФИ. Сотрудник лаборатории безопасности в Кембридже

Компьютер, способный сломать DES за 1 секунду, потратил бы на полный перебор AES-128 несколько Компьютер, способный сломать DES за 1 секунду, потратил бы на полный перебор AES-128 несколько миллиардов лет

Все версии AES ближайшие 10 лет останутся практически безопасными Все версии AES ближайшие 10 лет останутся практически безопасными

Программная реализация на машине с частотой 2 ГГц позволяет шифровать данные со скоростью 700 Программная реализация на машине с частотой 2 ГГц позволяет шифровать данные со скоростью 700 Мбит/с Высокая скорость шифрования шифрование видео в формате MPEG-2 в реальном масштабе времени Аппаратные реализации работают еще быстрее

Время шифрования 1200% 1000% 800% 600% 400% 200% ES 3 D ES D T Время шифрования 1200% 1000% 800% 600% 400% 200% ES 3 D ES D T N R PE 56 -2 SE A -1 IJ N D EL R A IJ N D EL 92 28 -1 EL R IJ N D A W R LO B TW O FI FI SH SH 0% Тестирование проводилось на серверах: VPS (Linux, PHP 5. 2. 17), Dedic (Free. BSD, PHP 5. 2. 14), Local (Win 7, PHP 5. 3. 6). Режим MCRYPT CBC. На всех серверах использовался Mcrypt 2. 5. 8.

= критерий резерва безопасности шифра – число всех раундов число успешно атакуемых раундов С = критерий резерва безопасности шифра – число всех раундов число успешно атакуемых раундов С увеличением числа раундов уровень криптостойкости блочного шифра повышается, но… падает скорость шифрования , , а всегд и ть аснос тер Безоп ной по е ется ц ности га дости дитель ен о Рейм в т произ Винсен Криптостойкость Скорость шифрования

J. Daemen, V. Rijmen. The Design of Rijndael: AES – The Advanced Encryption Standard. J. Daemen, V. Rijmen. The Design of Rijndael: AES – The Advanced Encryption Standard. Springer, 2002. 238 р. http: //mzdm. narod. ru/perevod. pdf http: //comicsia. ru/collections/aesrijndael-story/i 17381. html (Джефф Мазер. AES в картинках)