Добавлен: 22.11.2023
Просмотров: 56
Скачиваний: 3
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Министерство образования и науки Российской Федерации
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
КУБАНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНОЛОГИЧЕСКИЙ
УНИВЕРСИТЕТ (КубГТУ)
Кафедра компьютерных технологий и информационной безопасности
Факультет ИИТиБ
КУРСОВАЯ РАБОТА
по дисциплине: «Математические основы криптологии»
на тему: Общая структура алгоритма Rijndael (AES)
Выполнил студент группы: 09-Б-КЗ1
Власов Константин Александрович
ЗАДАНИЕ
на курсовое проектирование студенту Власову Константину Александровичу группы 09-Б-КЗ1 факультета ИИТиБ специальности 090104 Комплексная защита объектов информатизации.
Тема работы Общая структура алгоритма Rijndael (AES)
Содержание задания Программная реализация общей структуры алгоритма Rijndael (AES) с длинами ключа 128, 192 и 256 бит
Объем работы:
а) пояснительная записка к работе 30 стр.
б) графическая часть листа формата А1
Рекомендуемая литература: 1) С.Г. Баричев, В.В. Гончаров, Р.Е. Серов, Основы современной криптографии, 2-е издание, Москва, "Горячая линия - Телеком", 2002.
) Осипенко Л. П., Васильченко А. А. Математические основы криптологии. Методические указания для выполнения курсовой работы. - Краснодар: Изд-во КубГТУ, 2009.
Реферат
В данной курсовой работе рассмотрен алгоритм шифрования AES (Rijndael). Рассмотрены основные математические операции на полях Галуа. Были разобраны и реализованы процедуры AddRoundKey, SubBytes, ShiftRows, MixColumns, играющие главную роль в работе алгоритма. Изучен принцип расширения ключа (Key Expansion) для увеличения криптостойкости. С помощью полученных знаний AES был реализован в среде программирования C# с помощью Microsoft Visual Studio 2010 в режиме шифрования ECB (ELECTRONIC CODEBOOK) для шифрования и расшифрования текстовой информации.
Введение
Целью проведения конкурса AES был поиск нового стандарта шифрования на замену таких алгоритмов как DES и IDEA, криптостойкость которых была подвергнута сомнению, а впоследствии и вовсем признали эти алгоритмы ненадежными. В результате проведения конкурса был выбран новый стандарт шифрования Advanced Encryption Standard (AES), также известный как Rijndael - симметричный алгоритм блочного шифрования с переменной длиной блока и переменной длиной ключа. Длина блока и длина ключа могут быть независимо установлены в 128, 192 или 256 бит. Обычно длина блока составляет 128 бит, поэтому в данной работе рассматривался именно этот размер. Алгоритм использует линейно-подстановочные преобразования и состоит из 10, 12 или 14 раундов в зависимости от длины ключа (соответственно 128, 192 и 256 бит). Блок данных, обрабатываемый с использованием алгоритма Rijndael, делится на массивы байтов, и каждая операция шифрования является байт-ориентированной.
Преобразование раунда алгоритма Rijndael не имеет структуру сети Фейстеля, а использует структуру типа SP-сеть (Substitution-Permutation network, подстановочно-перестановочная сеть) - разновидность блочного шифра, предложенная в 1971 году Хорстом Фейстелем. Ппреобразование каждого раунда состоит из четырех различных преобразований, называемых слоями. Каждый слой разрабатывался с учетом противодействия линейному и дифференциальному криптоанализу. В основу каждого слоя положена своя собственная функция.
Алгоритм Rijndael очень хорошо выполняется как в программной, так и в аппаратной реализации в широком диапазоне окружений, имеет небольшие требования к памяти, что делает его пригодным для окружений с ограниченными ресурсами. В этом случае он также демонстрирует отличное выполнение.
1. Математические основы алгоритма
В основе алгоритма AES лежит математика на полях Галуа .
Поле же образуется из кольца, обладающего некоторыми свойствами, которые рассмотрены ниже.
1.1 Основные определения и свойства колец и полей
Непустое множество R называется кольцом, если в нем определены две алгебраические операции: сложение, ставящее в соответствие каждым двум элементам элемент , называемый их суммой, и умножение, ставящее в соответствие каждым двум элементам элемент , называемый их произведением, причем эти операции обладают следующими свойствами:. (Коммутативность сложения) a + b = b + a;. (Ассоциативность сложения) a + (b + c) = (a + b) + c;. (Обратимость сложения) Для любых a и b из R уравнение a + x = b имеет (по крайней мере, одно) решение, т. е. существует элемент такой, что a + c = b;. (Коммутативность умножения) ab = ba;
Термин "кольцо" применяется также к множествам с некоммутативным или даже неассоциативным умножением. Формулировки других свойств также меняются.. (Ассоциативность умножения) a(bc) = (ab)c;. (Дистрибутивность умножения относительно сложения) (a + b)c = ac + bc.
При обычных операциях сложения и умножения кольцом является:
. Множество целых чисел.
. Множество рациональных чисел.
. Множество действительных чисел.
. Множество рациональных чисел.
. Множество, состоящее лишь из одного числа 0.
. Множество четных чисел и вообще множество целых чисел, кратных некоторому числу n.
. Множество комплексных чисел с целыми и (так называемое кольцо целых комплексных чисел).
. Множество действительных чисел , где a и b - целые числа.
Множество натуральных чисел, а также множество всех положительных рациональных чисел кольцами не являются, так как не выполняется аксиома III.
. Большую роль в алгебре играет кольцо многочленов с одним или несколькими неизвестными и коэффициентами из некоторого кольца R. При этом за операции сложения и умножения принимаются обычные действия над многочленами, известные из школьной алгебры. Эти действия имеют смысл, так как они сводятся к сложению и умножению коэффициентов многочленов, а последние принадлежат к кольцу R, где указанные действия определены
. Пары (a, b) целых чисел образуют кольцо, если операции определены по формулам
.
Примеры колец показывают, что в отношении обратной операции для умножения (в отличие от сложения) различные кольца обладают совершенно различными свойствами. Так, в кольце целых чисел деление выполняется лишь в исключительных случаях, причем все элементы кольца делятся на +1 и -1. В кольце же рациональных чисел деление всегда возможно (кроме деления на 0). Желая изучить свойства обратной операции для умножения, приходим к важнейшему частному случаю кольца - полю.
Полем называется кольцо P, обладающее следующими свойствами:
VII. (Обратимость умножения) Для любых
,
где , уравнение имеет (по крайней мере одно) решение, т. е. существует элемент такой, что .
VIII. содержит по крайней мере один элемент, отличный от нуля.
Из примеров 1-10 колец только 2, 3 и 4, т. е. рациональные, действительные и комплексные числа, являются полями. В примере 5 свойство VII выполнено, так как вообще нет элемента a ≠ 0, но не выполнено свойство VIII. В остальных примерах не выполняется свойство VII.
1.2 Основные теоремы колец и полей
Для операции сложения и умножения в кольце справедливы все следствия, полученные из законов ассоциативности и коммутативности в предыдущем параграфе. В частности, можно определить сумму и произведение любого конечного числа элементов, для которых верны правила оперирования, аналогичные и которые не зависят от порядка данных элементов.
Свойства I - III показывают, что кольцо относительно операции сложения является коммутативной группой. Поэтому во всяком кольце существует элемент 0, называемый нулем кольца, со свойством
для любого a. Далее, для любого a существует противоположный элемент -a такой, что
Из законов сложения I - III следует (как для всякой коммутативной группы) существование в любом кольце операции вычитания, обратной сложению. Умножение может и не обладать обратной операцией, как, например, в кольце целых чисел или в кольце многочленов.
Следствие закона дистрибутивности. Прежде всего из VI и IV следует, очевидно, вторая форма закона дистрибутивности:
Далее, обе формы закона дистрибутивности оказываются верными также и для разности, т. е.
Для доказательства первого равенства надо проверить, что элемент (a - b)c удовлетворяет определению разности элементов ac и bc. Но действительно
Второе равенство доказывается аналогично.
Теорема 1. Если один из сомножителей равен нулю, то и все произведение равно нулю, т. е.
, для любого a.
Докажем лишь первое из равенств, так как второе вытекает из первого при помощи IV. По определению нуля и разности 0 = b - b для любого b.
Отсюда
Однако теорема, обратная теореме 1, верная для чисел, уже не сохраняется для любых колец, иными словами, если произведение двух элементов кольца равно нулю, то нельзя утверждать, что хотя бы один из них равен нулю. Так, в приведенном выше примере 10 кольца, составленного из пар (a, b) целых чисел, нулем является, очевидно, пара (0, 0). Если взять целые числа и , то пары (a, 0) и (0, b) отличны от нуля кольца, но (a, 0)(0, b) = (0, 0).
Определение 1. Элементы кольца, для которых, но называются делителями нуля. Кольцо без делителей нуля называется также областью целостности.
Теорема 2. Из следует , если только и не является делителем нуля.
Теорема 3. (Свойства разности) В любом кольце разность элементов обладает следующими свойствами: