- •Основные этапы становления криптографии как науки
- •Простейшие шифры, их свойства. Шифры замены и перестановки.
- •3. Открытые сообщения и их характеристики.
- •4. Частотные характеристики открытых сообщений.
- •5. Критерии на открытые сообщения.
- •6. Основные понятия криптографии
- •7. Криптосистема, ключевая система шифра, основные требования к криптосистемам.
- •8. Шифр перестановки. Разновидности.
- •9. Криптоанализ шифров перестановки.
- •10. Шифр замены, одноалфавитные и многоалфавитные замены.
- •11. Вопросы криптоанализа простейших шифров замены.
- •12. Поточные шифры замены.
- •13. Табличное и модульное гаммирование. Случайные и псевдослучайные гаммы.
- •14. Криптограммы, полученные при повторном использовании ключа.
- •Вопрос 15. Математическая модель шифра. Опорный шифр.
- •Вопрос 16. Шифр с неограниченным ключом
- •Вопрос 17. Модель шифра с ограниченным ключом.
- •18. Шифры совершенные по Шенону.
- •19.Теоретическая стойкость шифра с позиции теории информации.
- •20. Безусловно и вычислительно стойкие шифры. Избыточность языка и расстояние единственности.
- •21. Имитостойкость шифра. Имитация и подмена сообщений.
- •22. Характеристики имитостойкости. Методы обеспечения имитостойкости.
- •23. Совершенная имитостойкость.
- •24. Линейные регистры сдвига
- •25. Помехоустойчивость шифров. Характеристики помехоустойчивых шифров.
- •26. Основные способы реализации криптографических алгоритмов и требования к ним.
- •27. Методы получения случайных и псевдослучайных последовательностей.
- •28. Методы анализа криптоалгоритмов. Понятие криптоатаки.
- •29. Методы анализа криптоалгоритмов. Перебор ключей
- •30. Методы анализа криптоалгоритмов. Метод встречи посередине.
- •31. Методы анализа криптоалгоритмов. Бесключевые методы.
- •32. Система шифрования с открытым ключом. Понятие односторонней функции с секретом.
- •33. Криптосистемы rsa.
- •34. Криптосистема Эль-Гамаля.
- •35. Проблема факторизации целых чисел и логарифмирование в конечных полях.
- •36. Американский стандарт шифрования des
- •37. Российский стандарт шифрования гост 28147-89
- •38. Шифр rc4
- •39. Шифр Rijndael. Математические основы работы.
- •40. Шифр Rijndael. Работа с байтами состояния.
- •41. Шифр Rijndael. Алгоритм выработки ключей.
- •43. Криптографические протоколы. Модели криптографических протоколов.
- •Классификация
- •44. Электронная цифровая подпись. Стандарты эцп.
- •45. Математические основы шифрсистем на эллиптических кривых.
- •46. Свойства множества точек эллиптической кривой.
- •47. Выбор параметров на эллиптической кривой. Шифр Эль-Гамаля на эллиптической кривой.
- •48.Эцп на базе эллиптической кривой.
- •49. Протоколы установления подлинности. Парольные системы разграничения доступа.Протокол рукопожатия.
- •50. Криптосистема на алгоритме а5
- •51. Протоколы сертификации ключей. Протоколы распределения ключей.
- •52. Протоколы выработки сеансовых ключей. Открытое распределение ключей Диффи-Хеллмана.
39. Шифр Rijndael. Математические основы работы.
AdvancedEncryptionStandard (AES), также известный как Rijndael — симметричный алгоритм блочного шифрования, принятый в качестве стандарта шифрования правительством США по результатам конкурса AES: RIJNDAEL имеет наилучшее сочетание стойкости, производительности, эффективности реализации и гибкости. Его низкие требования к объему памяти делают его идеально подходящим для встроенных систем. Авторами шифра являются ЙонДэмен и Винсент Рюмен, начальные буквы фамилий которых и образуют название алгоритма. Этот алгоритм хорошо проанализирован и сейчас широко используется.
В стандарте AES алгоритм оперирует байтами, которые рассматриваются как элементы конечного поля GF(28). Элементами поля GF(28) являются многочлены степени не более семи, которые могут быть заданы строкой своих коэффициентов. Если байт представить в виде: {α7, α6, α5, α4, α3, α2, α1, α0}, αi∈{0,1}, 0<=i<=7, то элемент поля описывается многочленом α7x7+ α6x6+ α5x5+ α4x4+ α3x3+ α2x2+ α1x+ α0
Для перевода двоичного представления байта в шестнадцатеричное можно воспользоваться следующими таблицами:
При этом байт разбивается на две части по четыре бита, каждая из которых заменяется в соответствии со значением в таблице.
Раундовые преобразования в AES оперируют 32-разрядными словами. Четырехбайтовому слову может быть поставлен в соответствие многочлен α(х) с коэффициентами из GF(28) степени не более трех: α(х)= α3x3+ α2x2+ α1x+ α0, где αi∈GF(28), 0<=i<=3.
Для элементов конечного поля определены аддитивные и мультипликативные операции.
Сложение суть операция поразрядного XOR, обозначается как . Пример выполнения операции сложения в виде многочленов: (х6 +х4 +х2 +х +1) (х7 + х +1)= х7 +х6 +х4 +х2. В конечном поле для любого ненулевого элемента α существует обратный элемент –α, при этом α+(-α)=0, где нулевой элемент это {00}. В GF(28) справедливо α+α=0, т.е. каждый ненулевой элемент является своей собственной аддитивной инверсией. Сложение двух многочленов с коэффициентами из GF(28) суть операции сложения многочленов с приведением подобных членов в поле GF(28). Таким образом, сложение двух 4-байтовых слов суть операция поразрядногоXOR.
Умножение, обозначаемое далее как •, более сложная операция. Умножение в GF(28) – это операция умножения многочленов со взятием результата по модулю неприводимого многочлена φ(х) восьмой степени и с использованием операции XOR при приведении подобных членов. В AES выбран φ(х)= х8 +х4 +х3 +х +1. Для того чтобы результат умножения мог быть представлен 4-байтовым словом, необходимо взять результат по модулю многочлена степени не более 4. Авторы шифра выбрали многочлен х4+1, для которого справедливо ximod(х4+1)=ximod 4. Для любого ненулевого элемента α справедливо α•1=α. Мультипликативной единицей в GF(28) является элемент {01}.
40. Шифр Rijndael. Работа с байтами состояния.
Промежуточные результаты преобразований, выполняемых в рамках криптоалгоритма, называются состояниями (State). Состояние можно представить в виде прямоугольного массива байтов. При размере блока, равном 128 битам, этот 16-байтовый массив (рис.1) имеет 4 строки и 4 столбца (каждая строка и каждый столбец в этом случае могут рассматриваться как 32-разрядные слова). Входные данные для шифра обозначаются как байты состояния в порядке S00, S10, S20, S01, S11, S21,S31,....
Рис. 1. Представление состояния в виде матрицы
Ключ шифрования, также как и массив State представляется в виде прямоугольного массива с четырьмя строками. Число столбцов этого массива равно Nk. Число раундов Nr в алгоритме Rijndael зависит от значений Nb и Nk, как показано в таблице 1. В стандарте AES число раундов определяется длиной ключа Nk.
Число раундов Nr - функция от длины ключа Nk и длины блока Nb
Раунд состоит из четырех различных преобразований:
- замены байтов SubBytes()- побайтовой подстановки в S-блоках с фиксированной таблицей замен;
- сдвига строк ShiftRows() – побайтового сдвига строк массива State на различное количество байт;
- перемешивания столбцов MixColumns() – умножение столбцов состояния, рассматриваемых как многочлены над GF(28), на многочлен третьей степени g(x) по модулю х4+1;
- сложение с раундовым ключом AddRoundKey() – поразрядное XOR с текущим фрагментом развернутого ключа.
Замена байтов (SubBytes). Представляет собой нелинейную замену байтов, выполняемую независимо с каждым байтом состояния. Таблицы замены S-блока являются инвертируемыми и построены из композиции следующих двух преобразований входного байта:
1) получение обратного элемента относительно умножения в поле GF(28), нулевой элемент {00} переходит сам в себя;
2) применение преобразования над GF(28), определенного следующим образом: b´i= bi b(i+4)mod 8 b(i+5)mod 8 b(i+6)mod 8+ b(i+7)mod 8 ci , где с0=с1=с5=с6=1, с2=с3=с4=с7=0, b´iи bi- соответственно исходное и преобразованное значение i-го бита, i=¯0,7.
Применение описанного S-блока ко всем байтам состояния обозначается как SubBytes(State). Рис. 2 иллюстрирует применение преобразования SubBytes() к состоянию.
Рис.2. Преобразование состояния посредством использования S-блока
Преобразование сдвига строк (ShiftRows). Последние 3 строки состояния циклически сдвигаются влево на различное число байтов. Строка 1 сдвигается на С1 байт, строка 2 – на С2 байт, и строка 3 – на С3 байт. В стандарте AES, где определен единственный размер блока, равный 128 битам, С1=1, С2=2, С3=3.
Преобразование перемешивания столбцов (MixColumns). Столбцы состояния рассматриваются как многочлены над полем GF(28) и умножаются по модулю х4+1 на многочлен g(x), выглядящий следующим образом: g(x)={03}x3+{01}x2+{01}x+{02}
Применение этой операции ко всем четырем столбцам состояния обозначено как MixColumns(State).
Рис.4 Преобразование состояния посредством перемешивания столбцов
Добавление раундового ключа (AddRoundKey). В данной операции раундовый ключ добавляется к состоянию посредством простого поразрядного XOR(рис.4).
Раундовый ключ вырабатывается из ключа шифрования посредством алгоритма выработки ключей.