Лекция 5 AES.pptx
- Количество слайдов: 101
А dvanced E ncryption S tandart RIJNDAEL Усовершенствованный стандарт шифрования
ЬНО ИЛ РАВ И П КАК ЗНЕСТ И ПРО АНИЕ В НАЗ А? Р ШИФ Разр а RIJM ботчики : EN+D AEM [rɛ EN inda ːl] Рей ндал AES – название стандарта; RIJNDAEL – название шифра
Блочный шифр 3 версии: AES 2) Ключ – 192 бит, число раундов 12 3) Ключ – 256 бит, число раундов 14 Структура «квадрат» AES 1) Ключ – 128 бит, число раундов 10 AES Длина блоков открытого текста – 128 бит Длина блоков шифротекста – 128 бит
1997 NIST объявляет конкурс AES для выбора нового стандарт США блокового шифрoвания
Эффективная реализацию на платформе Pentium Pro Cтойкость не меньше, чем у 3 DES Cкорость шифрования больше скорости 3 DES AES Эффективная аппаратная реализация Прозрачная структура
Названы 5 шифров, финалистов конкурса 1997 NIST объявляет конкурс AES для выбора нового стандарт США блокового шифрoвания 1999
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 бит; Длина блока – 128 бит Число раундов – 16 Смешанная сеть Фейстеля Ключ – 128, 192, 256 бит Длина блока – 128 бит Число раундов – 20; SP-cеть Группа во главе с Б. Шнайером Р. Андерсон Л. Кнудсен Э. Бихам
Названы 5 шифров, финалистов конкурса 1997 NIST объявляет конкурс AES для выбора нового стандарт США блокового шифрoвания 1999 2000 Победителем конкурса объявлен шифр RIJNDAEL
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 для выбора нового стандарт США блокового шифрoвания 1999 AES принят как стандарт FIPS 197 2000 2001 Победителем конкурса объявлен шифр RIJNDAEL
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-сетей; за один раунд шифруется весь блок; байт-ориентированная структура – данные представлены в виде двумерной матрицы байт замена по байтам; диффузия информации по строкам и столбцам , UARE EL, SQ PENT A RIJND N, SER RYPTO C
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 а 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 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 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
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 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 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) Основатель современной высшей алгебры, крупнейший математик XIX века 1811 – 1832 (20 лет) Радикальный революционерреспубликанец. Застрелен на дуэли при неоднозначных обстоятельствах в возрасте 20 лет.
лом ным чис онеч поля с к Это в лементо э ой труктура, в котор ская с оле – алгебраиче ния и Кратко: п ложения, умноже рации с определены опе мента ия обратного эле нахожден ех ором для вс в кот й е – кольцо, ует обратны и точно: пол ств А есл е нуля, суще кром элементов, элемент
Теорема 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 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} – не поле, только конечное кольцо + 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 , где р –просто е и k> существует кон ечное поле GF k (р ) из рk >0 – целое, элементов GF(5) – конеч ное поле, GF(256)=GF (28) – конечное поле, GF(12)=GF (3. 22) – НЕ конечное поле
Как построить 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 , где сi =ai +bi (mod p)
ПРИМЕР. А, 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 ). (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, а многочленов с такой степенью в поле нет !!! ВЫХОД: привести произведение С '(х) по модулю другого многочлена, аналогично тому, как произведение чисел приводится по mod p в поле GF(p) ЗАЧЕМ? В этом случае степень многочлена-остатка всегда меньше, чем k
Для построения поля GF(pk) в роли модуля надо выбирать многочлен q степени k q с коэффициентами из GF(p) q неприводимый многочлен нельзя представить как произведение других многочленов над GF(p) меньшей степени
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) = Zp [x]/<т(х)> (или GF(p)/<т(х)> )
Пример 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) = 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 – взаимно просты. НОД ( х2+х+1, х+1) = 1. (х+1)х+(х2+х+1) ≡ 1 mod х2+х+1. (х+1) -1 ≡ х mod х2+х+1
В AES используется поле Галуа GF(28), для построения которого выбран модуль m(x) = х8 + х4+ х3+х+1 Такое поле обозначается Z 2[x]/<х8 + х4+ х3+х+1> Поле RIJNDAEL
Элементы поля Z 2[x]/
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 х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 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 → 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 Сдвиг на один бит влево, так как старший бит 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 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] → А(х) = а 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 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 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 раундов Sub. Bytes Shift. Rows Add. Round. Key Шифротекст Mix. Columns В 10 -м раунде
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 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 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 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, 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, 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 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, 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 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 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= 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 над полем GF(2) Существует обратный многочлен С -1(х) mod х4+1 Матрица в операции Mix. Columns обратима
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 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 = 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. 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 =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. Mix. Columns Add. Round. Key
Шифротекст 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. Bytes Инверсия аффинного преобразования Мультипликативная инверсия в GF(28) Одинакова для зашифрования и расшифрования
В матричном виде
Инвертированный 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 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, 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 в матричной форме
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. Bytes и Inv. Shift. Rows – тоже коммутативны можно при расшифровании Inv. Sub. Bytes Inv. Shift. Rows
Свойства операций 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 2 -ой раунд
операция Sub. Bytes делает шифрование нелинейным перемешивание и рассеивание информации обеспечивают функции Shift. Rows и Mix. Columns операция Add. Round. Key добавляет необходимую секретную случайность
Раунд 1 Число измененных 20 битах 2 3 4 5 6 7 8 9 10 58 59 61 68 64 67 65 61 58
AES устойчив к таким атакам: 20 03 г Кр на ипто св ан а кл язан лиз юч ны ах х Линейный лиз криптоана RE RE UA и SQ так SQ а так а Слабых ключей нет . еренц Дифф нализ оа крипт АНБ США объявило, что AES достаточно надёжен для защиты гос. тайны
2 г 0 20 Полный перебор ключей Алгебраические атаки ( XSL) новый тип крип- AES-128 → 2127 тоанализа. AES-192 → 2191 Сложность атаки 255 AES-256 → 2 на AES-128 → 287 операций.
ИДЕЯ: шифрование с помощью AES-128 можно записать в виде системы алгебраических уравнений Куртуа и Пепшик Система содержит: 8000 квадратных уравнений с1600 неизвестными Ее решение сломает AES!!! Сложность решения - 2100
, , не таки – это -а XSL-а та. . Это меч атаки ймен инсент Ре В Но однажды она может стать кошмаром для автора AES. Николас Картуа Nicolas T. Courtois
2009 г 2011 г Комбинация + бумеранга и связанных ключей Бирюков, Ховратович Атака Biclique Богданов, Ховратович и Речбергер. Сложность атаки AES-192 AES-256 → 287 AES-128 - cтойкий Сложность атаки на AES-128 → 2126, 1 операций
АЛЕКС БИРЮКОВ • (Alex Вiryukov) криптограф и криптоаналитик, • доцент Люксембургского университета ДМИТРИЙ ХОВРАТОВИЧ (Dmitry Khovratovich) • 2005 г. - Московский университет в • аспирантура в Люксембургском университете (руководитель Бирюков) • 2010 г. - степень доктора
АНДРЕЙ БОГДАНОВ • 2005 г –Московский гуманитарный университет. • стипендиат в Университете Гумбольдта (ФРГ), стажировка в компании Siemens. • преподает в Рурском университете. КРИСТИАН РЕЧБЕРГЕР • (Christian Rechberger) степень доктора по криптографии в университете в Граце. • консультант Реймена при разработке AES. • Научный сотрудник Высшей нормальной школы в Париже.
Брюс Шнайер (Bruce Schneier) Я не думаю, что сегодня известна какая-либо практическая атака на AES. Если Вы знаете, как взломать п-раундовый шифр, то удвойте или утройте число раундов. Это может быть AES-128 с 16, или AES-192 с 20, или AES-256 с 28 раундами. А полного пересмотра стандарта снова и снова мы не хотим (2009 г. )
(Daniel Bernstein) 1970 г. р. Известный криптограф, математик, программист. Судовые дела Бернштейна против США по поводу ограничений на экспорт криптографии из США 2005 г. X Атака по времени Даниэль Бернштейн 2005 г IV. Атака по времени (Бернштейн) на основе информации о времени выполнения операций шифрования >2 млн. выбранных шифротекстов (Д. А. Освик, А. Шамир и др. ) 800 операций шифрования + запуск программ в системе, где выполнено шифрование
2009 г IV. Дифференц. анализ ошибок разновидность криптоанализа на основе создания случайных аппаратных ошибок Ключ AES-128 найден за 232 операций 2012 г. «В мгновение ока: Ваш ключ AES» с помощью нового метода «трубопроводный анализ излучения» в чипах ASCI 3 FPGA (Китай) 2011 г обнаружен бэкдор, способный снять криптозащиту и сменить ключ AES за 0, 01 сек. Сергей Скоробогатов, выпускник МИФИ. Сотрудник лаборатории безопасности в Кембридже
Компьютер, способный сломать DES за 1 секунду, потратил бы на полный перебор AES-128 несколько миллиардов лет
Все версии AES ближайшие 10 лет останутся практически безопасными
Программная реализация на машине с частотой 2 ГГц позволяет шифровать данные со скоростью 700 Мбит/с Высокая скорость шифрования шифрование видео в формате MPEG-2 в реальном масштабе времени Аппаратные реализации работают еще быстрее
Время шифрования 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. Springer, 2002. 238 р. http: //mzdm. narod. ru/perevod. pdf http: //comicsia. ru/collections/aesrijndael-story/i 17381. html (Джефф Мазер. AES в картинках)


