Конкурс на Advanced Encryption Standard
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
?тановка 8х8 бит,
Рис. 11 - Подстановка ByteSub
- сдвиг строк в двумерном массиве на различные смещения,
Рис. 12 - Сдвиг строк ShiftRow
- математическое преобразование, перемешивающее данные внутри столбца,
Рис. 13 - Математическое преобразование MixColumm
- добавление материала ключа операцией XOR.
Рис. 14 - Добавление ключа операцией XOR
В последнем раунде операция перемешивания столбцов отсутствует, что делает всю последовательность операций симметричной.
4. Сравнение шифров
В результате первого этапа конкурса были выбраны 5 алгоритмов без явно выраженных недостатков: MARS, RC6, Rijndael, Serpent и Twofish. Началось детальное изучение именно этих алгоритмов продолжавшееся еще год с небольшим. В результате победителем конкурса стал алгоритм Rijndael; ему было присвоено название AES, под именем которого он уже достаточно широко реализован и, видимо, по широте распространения обойдет своего предшественника - алгоритм DES.
Сформулируем основные достоинства и недостатки каждого алгоритма, который прошел во второй тур.
Таблица 1 - Сравнение шифров
АлгоритмДостоинстваНедостаткиSerpentПростая структура алгоритма облегчает его анализ с целью нахождения возможных уязвимостей. Serpent эффективно реализуем аппаратно и в условиях ограниченных ресурсов. Serpent легко модифицируется с целью защиты от атак по времени выполнения и потребляемой мощности (однако, за счет снижения скорости).Является самым медленным из алгоритмов-финалистов в программных реализациях. Процедуры зашифрования и расшифрования абсолютно различны, т.е. требуют раздельной реализации. Распараллеливание вычислений при шифровании алгоритмом Serpent реализуемо с ограничениями.TwofishTwofish эффективно реализуем аппаратно и в условиях ограниченных ресурсов. Зашифрование и расшифрование в алгоритме Twofish практически идентичны. Является лучшим из алгоритмов-финалистов с точки зрения поддержки расширения ключа на лету. Несколько вариантов реализации позволяют оптимизировать алгоритм для конкретных применений.Сложность структуры алгоритма затрудняет его анализ. Сложная и медленная процедура расширения ключа. Относительно сложно защищается от атак по времени выполнения и потребляемой мощности. Распараллеливание вычислений при шифровании алгоритмом Twofish реализуемо с ограничениями.MARSЗашифрование и расшифрование в алгоритме MARS практически идентичны.Исключительно сложная структура алгоритма с раундами различных типов затрудняет как анализ алгоритма, так и его реализацию. Возникают проблемы при программной реализации на тех платформах, которые не поддерживают 32-битное умножение и вращение на переменное число бит. Алгоритм MARS не может быть эффективно реализован аппаратно и в условиях ограниченных ресурсов. Сложно защищается от атак по времени выполнения и потребляемой мощности. MARS хуже других алгоритмов-финалистов поддерживает расширение ключей на лету. Распараллеливание вычислений при шифровании алгоритмом MARS реализуемо с ограничениями.RC6Простая структура алгоритма облегчает его анализ. Кроме того, алгоритм унаследовал часть преобразований от своего предшественника - алгоритма RC5, тщательно проанализированного до конкурса AES. Самый быстрый из алгоритмов-финалистов на 32-битных платформах. Зашифрование и расшифрование в алгоритме RC6 практически идентичны.Скорость шифрования при программной реализации сильно зависит от того, поддерживает ли платформа 32-битное умножение и вращение на переменное число бит. RC6 сложно реализуем аппаратно и в условиях ограниченных ресурсов. Достаточно сложно защищается от атак по времени выполнения и потребляемой мощности. Недостаточно полно поддерживает расширение ключей на лету. Распараллеливание вычислений при шифровании алгоритмом RC6 реализуемо с ограничениями.Выводы
Как известно, проанализировав результаты всех исследований, эксперты выбрали в качестве стандарта AES алгоритм Rijndael[6]. Практически по всем характеристикам Rindael, как минимум, не уступает остальным алгоритмам-финалистам. Но его основной плюс в возможности параллельных вычислений. Это преимущество связано с развитием многоядерных процессоров, способных обрабатывать информацию в несколько потоков. Также основным преимуществом является его легкая программная и техническая реализация.
Что касается алгоритмов Serpent, Twofish, MARS и RC6, то видно, что они практически равнозначны по совокупности характеристик, за исключением алгоритма MARS, имеющего существенно больше недостатков, в том числе, алгоритм практически нереализуем в условиях ограниченных ресурсов. Также основным их недостатком является, то что у этих алгоритмов нет возможности параллельных вычислений. TwoFish и MARS очень трудно реализуются программно.
В курсовой работе были рассмотрены основные претенденты на новый стандарт AES. Было очень трудно найти описание самих алгоритмов, принцип их действия и свойства. Так же очень интересный фактор при реализации алгоритма - это его программная реализация. Именно этот фактор очень влиял на выбор основного финалиста. Сделаны основные выводы. Рассмотрены многие источники литературы. Все поставленные цели и задачи выполнены.
В работе рассмотрены 5 алгоритмов, прошедших во второй этап конкурса. Всего таких алгоритмов было 15. Еще можно подробнее рассмотреть и проанализировать все 15 алгоритмов. Это даст более подробный анализ всех претендентов.
Сейчас актуальна информация о возможн?/p>