1038616.ppt
- Количество слайдов: 17
Математические основы криптологии Общая структура алгоритма Rijndael (AES)
Advanced Encryption Standard (AES) Advanced Encryption Standard, AES — конкурс, организованный NIST в 1997 году для выбора нового криптографического стандарта, который должен был стать преемником DES. В результате конкурса в 2000 году победителем был объявлен шифр Rijndael
Стандарт шифрования AES является официальным стандартом правительства США для симметричного шифрования. Стандарт определяется публикацией FIPS #197 (2001). AES представляет собой блочный шифр, кодирующий 128 битный текстовый блок в 128 -битный шифрованный блок, или дешифрует 128 -битный шифрованный блок в 128 битный текстовый блок. q. AES-128, AES-192, AES-256 обрабатывают блоки данных за соответственно 10, 12 или 14 итераций. q. Каждый раунд работает с двумя 128 -битными блоками: “Текущий” и “ключ раунда”. Все раунды используют разные “ключи раунда”, которые получаются с помощью алгоритма расширения ключа. Этот алгоритм не зависит от шифруемых данных и может выполняться независимо от фазы шифрования/дешифрования. q. Блок данных последовательно проходит через следующие стадии: над ним выполняется операция XOR первыми 128 битами ключа, на выходе получается “текущий” блок (эта стадия также называется нулевым раундом, с использованием нулевого ключа раунда – первых 128 битов ключа шифра). Затем текущий блок проходит через 10/12/14 раундов шифрования, после которых он превращается в шифрованный (или дешифрованный) блок.
Sub. Bytes
Inv. Sub. Bytes
Таблицы подстановки для S-Box и Inv. S-Box Преобразования Sub. Bytes и Inv. Sub. Bytes могут быть представлены в виде таблиц подстановки S-Box и Inv. S-Box. Если на входе имеется байт B [7 -0], а x и y – его старшая и младшая часть (x [3 -0] = B [7 -4], y [3 -0] = B [3 -0]), то на выходе байт получается кодированным в две шестнадцатиричные цифры. Например, применение таблицы подстановки S-Box для числа 85 (x=8; y=5 в шестнадцатиричном виде) дает на выходе шестнадцатиричное 97. А применение таблицы Inv. S -Box для 97 дает 85. Таблицы подстановки S-Box и Inv. S-Box отображены в следующих таблицах.
Таблица S-Box y 0 2 3 4 5 6 7 8 9 A B C D E F 0 63 7 C 77 7 B F 2 6 B 6 F C 5 30 01 67 2 B FE D 7 AB 76 1 CA 82 C 9 7 D FA 59 47 F 0 AD D 4 A 2 AF 9 C A 4 72 C 0 2 B 7 FD 93 26 36 3 F F 7 CC 34 A 5 E 5 F 1 71 D 8 31 15 3 04 C 7 23 C 3 18 96 05 9 A 07 12 80 E 2 EB 27 B 2 75 4 09 83 2 C 1 A 1 B 6 E 5 A A 0 52 3 B D 6 B 3 29 E 3 2 F 84 5 x 1 53 D 1 00 ED 20 FC B 1 5 D 6 A CB BE 39 4 A 4 C 58 CF 6 D 0 EF AA FB 43 4 D 33 85 45 F 9 02 7 F 50 3 C 9 F A 8 7 51 A 3 40 8 F 92 9 D 38 F 5 BC B 6 DA 21 10 FF F 3 D 2 8 CD 0 C 13 EC 5 F 97 44 17 C 4 A 7 7 E 3 D 64 5 D 19 73 9 60 81 4 F DC 22 2 A 90 88 46 EE B 8 14 DE 5 E 0 B DB A E 0 32 3 A 0 A 49 06 24 5 C C 2 D 3 AC 62 91 95 E 4 79 B E 7 C 8 37 6 D 8 D D 5 4 E A 9 6 C 56 F 4 EA 65 7 A AE 08 C BA 78 25 2 E 1 C A 6 B 4 C 6 E 8 DD 74 1 F 4 B BD 8 B 8 A D 70 3 E B 5 66 48 03 F 6 0 E 61 35 57 B 9 86 C 1 1 D 9 E E E 1 F 8 98 11 69 D 9 8 E 94 9 B 1 E 87 E 9 CE 55 28 DF F 8 C A 1 89 0 D BF E 6 42 68 41 99 2 D 0 F B 0 54 BB 16
Таблица Inv. S-Box y 0 2 3 4 5 6 7 8 9 A B C D E F 0 52 09 6 A D 5 30 36 A 5 38 BF 40 A 3 9 E 81 F 3 D 7 FB 1 7 C E 3 39 82 9 B 2 F FF 87 34 8 E 43 44 C 4 DE E 9 CB 2 54 7 B 94 32 A 6 C 2 23 3 D EE 4 C 95 0 B 42 FA C 3 4 E 3 08 2 E A 1 66 28 D 9 24 B 2 76 5 B A 2 49 6 D 8 B D 1 25 4 72 F 8 F 6 64 86 68 98 46 D 4 A 4 5 C CC 5 D 65 B 6 92 5 x 1 6 C 70 48 50 FD ED B 9 DA 5 E 15 46 57 A 7 8 D 9 D 84 6 90 D 8 AB 00 8 C BC D 3 0 A F 7 E 4 58 05 B 8 B 3 45 06 7 D 0 2 C 1 E 8 F CA 3 F 0 F 02 C 1 AF BD 03 01 13 8 A 6 B 8 3 A 91 11 41 4 F 67 DC EA 97 F 2 CF CE F 0 B 4 E 6 73 9 96 AC 74 22 E 7 AD 35 85 E 2 F 9 37 E 8 1 C 75 DF 6 E A 47 F 1 1 A 71 1 D 29 C 5 89 6 F B 7 62 0 E AA 18 BE 1 B B FC 56 3 E 4 B C 6 D 2 79 20 9 A DB C 0 FE 78 CD 5 A F 4 C 1 F DD A 8 33 88 07 C 7 31 B 1 12 10 59 27 80 EC 5 F D 60 51 7 F A 9 19 B 5 4 A 0 D 2 D E 5 7 A 9 F 93 C 9 9 C EF E A 0 E 0 3 B 4 D AE 2 A F 5 B 0 C 8 EB BB 3 C 83 53 99 61 F 17 2 B 04 7 E BA 77 D 6 26 E 1 69 14 63 55 21 0 C 7 D
Shift. Rows является побайтовой перестановкой: a 00 a 01 a 02 a 03 a 10 a 11 a 12 a 13 a 10 a 21 a 22 a 23 a 20 a 21 a 30 a 31 a 32 a 33 a 30 a 31 a 32 a 00 a 01 a 02 a 03 a 11 a 12 a 13 a 10 a 11 a 12 a 13 a 22 a 23 a 20 a 21 a 22 a 23 a 30 a 31 a 32 a 33 Название Shift. Rows обозначает сдвиг строк в двумерном массиве на различные смещения и происходит от представления “текущего” блока в виде матрицы 4 х4 байта. Первая строка массива остается без изменений, вторая циклично сдвигается влево на одну позицию (один байт), третья циклично сдвигается влево на две позиции, четвертая циклично сдвигается влево на три позиции. Inv. Shift. Rows является обратной функцией по отношению к Shift. Rows.
Sub. Bytes, Inv. Sub. Bytes, Shift. Rows Название Shift. Rows обозначает сдвиг строк в двумерном массиве на различные смещения и происходит от представления “текущего” блока в виде матрицы 4 х4 байта. Первая строка массива остается без изменений, вторая циклично сдвигается влево на одну позицию (один байт), третья циклично сдвигается влево на две позиции, четвертая циклично сдвигается влево на три позиции. Преобразование Inv. Shift. Rows является побайтовой перестановкой, обратной по отношению к Shift. Rows.
Преобразование Mix. Columns
Преобразования Sub. Word, Rot. Word Sub. Word является функцией, используемой в процедуре Key Expansion, которая берет на входе 4 -х байтное слово и, применяя S-box к каждому из четырёх байтов, выдаёт выходное слово, а конкретно: Sub. Word (X) = [S-Box(X[31 -24]), S-Box(X[23 -16]), SBox(X[15 -8]), S-Box(X[7 -0])] Rot. Word – это функция, использующаяся в процедуре Key Expansion, которая берет 4 -х байтное слово и производит над ним циклическую перестановку, например, используется в качестве входного слова [a 0, a 1, a 2, a 3], а возвращается слово [a 1, a 2, a 3, a 0].
Round Constant (RCON)
Расширение ключа Стандарт AES использует ключи длиной 128, 192 или 256 бит. Ключи расширяются соответственно в 10, 12 или 14 ключей раундов, с помощюю алгоритма расширения ключа. Каждый ключ раунда имеет длину 128 бит. Расширение ключа зависит только от ключа шифра и не зависит от шифруемых данных, следовательно, расширение ключа может производиться независимо от фазы шифрованиф/дешифрования. Ядром алгоритма расширения ключа является набор преобразований Sub. Word(Rot. Word(tmp)) и Sub. Word(tmp), и использование констант RCON. Пример содержит описание алгоритма расширения ключа (в синтаксисе псевдо-кода), переменные имеют тип двойных слов (doublewords), стандарт хранения данных – big-endian.
Реализация алгоритма В результате работы над данным проектом были освоены современные методы шифрования, а в частности Rijndael, написана программа, позволяющая шифровать текстовую информацию различными длинами ключей (128, 192, 256 бит). Приобретенные навыки активно использовались для оценки эффективности и скорости работы других симметричных алгоритмов шифрования. Все поставленные цели и задачи выполнены. Для реализации поставленной задачи использовалась среда программирования Microsoft Visual Studio 2010. Программа реализована в виде Windows Forms Application на языке C#.
Скриншот программы
Список используемых источников 1. С. Г. Баричев, В. В. Гончаров, Р. Е. Серов, Основы современной криптографии, 2 -е издание, Москва, "Горячая линия - Телеком", 2002. 2. Осипенко Л. П. , Васильченко А. А. Математические основы криптологии. Методические указания для выполнения курсовой работы. – Краснодар: Изд-во Куб. ГТУ, 2009. 3. Кнут Д. Искусство программирования. Т. 2. По¬лучисленные алгоритмы. третье издание. М. : МЦНМО, 1999. 4. http: //ru. wikipedia. org/wiki/Rijndael 5. http: //kavayii. blogspot. com/2010/02/advanced-encryptionstandard-aes-2 -aes. html 6. http: //book. itep. ru/6/aes. htm 7. http: //ru. wikipedia. org/wiki/Конечное_поле 8. http: //www. pm 298. ru/mgroup. php 9. http: //ru. wikipedia. org/wiki/Поле_(алгебра)
1038616.ppt