Методические указания к лабораторной работе




Скачать 430.89 Kb.
страница6/6
Дата06.06.2016
Размер430.89 Kb.
1   2   3   4   5   6

5. Демонстрационная реализация криптоАЛГОРИТМа AES НА MATHCAD

5.1. Общие замечания


Для наглядного представления о работе алгоритма шифрования AES он реализован в виде программы на MathCAD. Все преобразования, используемые алгоритмом AES при шифровании и дешифровании, реализованы в виде отдельных функций, что позволяет знакомится с ними детально. Далее будут подробно описаны основные функции.

Реализация AES на MathCAD-е имеет основной целью наглядную демонстрацию работы алгоритма, что приводит к существенному проигрышу в скорости работы. Кроме того, MathCAD 2001i не предоставляет встроенных функций для работы с битами, как следствие, такие функции приходится также реализовывать самостоятельно.


5.2. Вспомогательные функции работы с битовым представлением


Все вспомогательные функции, не относящиеся напрямую к криптоалгоритму AES, собраны в файле «Вспомогательные функции.mcd».

Для реализации криптоалгоритма AES требуются следующие вспомогательные функции.



Разложение целого числа в массив битов.

Данная функция преобразует любое целое i число, меньшее 250+1, в массив битов  вектор из 0 и 1  где младшие биты идут первыми. Аналогично работает функция



.

Которая преобразует любое целое число i, меньшее 250+1, в массив битов фиксированной ширины r. Если целое число i имеет меньше ненулевых битов, чем r  массив дополняется нулевыми старшими битами до нужной ширины.



Преобразование массива битов в целое число.

Преобразует вектор из 0 и 1, где младшие биты идут первыми, в целое число.



Операция побитового XOR над двумя целыми числами.

Возвращает целое число, равное результату a  e.



Вычисления остатка деления бинарного полинома X на бинарный полином x.

Полиномы должны быть представлены как вектора из 0 и 1, младшие биты/степени ПЕРВЫЕ.


5.3. Вспомогательные функции преобразования данных


Эти функции приведены непосредственно в основном файле, демонстрирующем работу AES: «Криптоалгоритм AES.mcd».

Преобразование вектора из 16 байт в матрицу 44.

Данная функция используется при преобразовании строки в вектор блоков.

Перечислять все функции этого типа нет смысла  все они доступны в файле с комментариями.

5.4. Основные преобразования AES


Эти функции приведены непосредственно в основном файле, демонстрирующем работу AES: «Криптоалгоритм AES.mcd»

5.4.1. Функция умножения AES AESmult


Функция выполняет операцию умножения двух байтов, как это описано в пункте .

Параметрами функции являются два целых числа. Функция представляет их в виде полиномов и умножает их между собой по модулю x8 + x4 + x3 + x + 1.


5.4.2. Замена байтов по таблице замен


Функция выполняет замену байтов блока state по таблице замен S-box.

.

Обратное преобразование выполняется этой же функцией, только вместо таблицы замен S-box, ей передают обратную таблицу замен InvS-box.


5.4.3. Сдвиг строк блока


Функция выполняет циклический сдвиг строк блока state ВЛЕВО на различное число байт, как это описано в пункте .

.

Обратная функция, см. пункт 



.

5.4.4.  Операция перемешивания столбцов


Функция выполняет операцию перемешивания столбцов блока state, как это описано в пункте 

Обратное преобразование (см. пункт )





5.4.5. Суммирование с раундовым ключом


Функция выполняет операцию добавления раундового ключа к блоку state, как это описано в пункте 


5.4.6. Расширение ключа


Функция выполняет операцию расширения ключа шифрования K, как это описано в пункте .


5.4.7. Шифрование и дешифрование блока


Функция выполняет полный цикл шифрования одного блока state, с расширенным ключом xK, как это описано в пункте 

Обратная операция  дешифрование блока:




5.4.8. Шифрование и дешифрование произвольной строки


Функция выполняет шифрование произвольной строки ключом K

.

Дешифрование произвольной строки ключом K



.

6. Задания для самостоятельного выполнения


Варианты 0.n  стандартные задания. Выполнение такого варианта позволяет гордо говорить: «Я делал лабораторную работу». Одно из стандартных заданий выполняется в обязательном порядке, независимо от выполнения/невыполнения заданий повышенной сложности.

Варианты 1.n  задания повышенной сложности, за ПОЛНОЕ выполнение любого из них автоматически выставляется зачет по курсу. Выполнение заданий повышенной сложности  по собственному желанию и только как ДОПОЛНЕНИЕ к основному. Т.е. сначала надо сделать основное, а затем  повышенной сложности.

Выполненное задание состоит из


  • отчета по лабораторной работе, где описан СОБСТВЕННЫЙ вклад в решение проблемы. Переписывать методичку и Интернет не надо.

  • работающей программы на MathCAD. Другие варианты программ не принимаются к рассмотрению, кроме случаев, оговоренных в заданиях повышенной сложности.

Вариант 0.1


Используя методичку и программу изучить пошаговое действие алгоритма AES. Установить экспериментально значения исходных строк, при которых программа ПЕРЕСТАЕТ функционировать правильно. Попытаться объяснить эти ограничения. Изменяя размер исходной строки N пределах от одного символа до 1000 символов произвести измерения затрат времени t на шифрование, дешифрование AES. Замеры произвести на одном и том же ком компьютере не менее чем в 20 точках диапазона. Построить графики зависимости t от N. Предложить и обосновать теоретическую зависимость t от N в пределе больших N. Прокомментировать результаты с точки зрения оценки производительности AES.

Ответить на вопросы:



  1. Зачем (ну свои соображения) нужна таблица замен и как она повышает криптостойкость алгоритма?

  2. Оценить сравнительную криптостойкость AES и ГОСТ 28147-89. Какой из алгоритмов более стоек?

Вариант 0.2


Используя методичку и программу изучить пошаговое действие алгоритма AES. Разработать алгоритм взлома AES прямым перебором ключа. Прокомментировать результаты с точки зрения проблем реализации метода и оценки криптостойкости AES к этому методу криптоанализа.

Вариант 0.3


Используя методичку и программу изучить пошаговое действие алгоритма AES. Исследовать сохранение частотных и корреляционных характеристик длинных строк при шифровании алгоритмом AES. Прокомментировать результаты с точки зрения проблем реализации методов криптоанализа и оценки криптостойкости AES.

Вариант 1.1


Используя данную программу как пример для подражания, реализовать любой другой БОЛЕЕ ЭФФЕКТИВНЫЙ вариант алгоритма AES. Под эффективностью понимается скорость выполнения криптопреобразования. Для каждого шага своей реализации алгоритма привести подробное описание. Создать демонстрационную программу, подтверждающую работоспособность реализации алгоритма. Дать оценки производительности алгоритма по сравнению с готовым примером. Программы принимаются ТОЛЬКО в MathCAD.

Вариант 1.2


Реализовать на Delphi (ну или на C/C++/pithon/perl/) программу шифрования/дешифрования произвольного файла. Программа должна иметь интерфейс командной строки. В качестве образца для подражания использовать программу шифрования произвольного файла из лабораторной работы [Error: Reference source not found]. Сравнить быстродействие реализации ГОСТ 28147-89 и AES. Прокомментировать причины различия.

Вариант 1.3


Реализовать ЛЮБОЙ другой метод симметричного криптопреобразования (из числа реально применяемых). Написать руководство (в качестве примера см. настоящее руководство) и демонстрационную программу. Программы принимаются ТОЛЬКО в MathCAD.

Вариант 1.4


Найти или придумать иной алгоритм криптоанализа AES (кроме прямого перебора). Продемонстрировать его работоспособность в виде программы. Программы принимаются ТОЛЬКО в MathCAD.

Список использованных источников




1) Многочлен, который можно представить в виде произведения многочленов низших степеней с коэффициентами из данного поля, называется приводимым (в данном поле), в противном случае — неприводимым. Например, многочлен x4 + 2, неприводимый в поле рациональных чисел, разлагается на два множителя в поле вещественных чисел и на четыре множителя в поле комплексных чисел.

1. Криптографические алгоритмы. Алгоритм криптопреобразования - ГОСТ 28147-89: Методические указания к лабораторной работе / С.А.Кабаков, О.Е.Александров. Екатеринбург: УГТУ-УПИ, 2002. 32 с
1   2   3   4   5   6


База данных защищена авторским правом ©uverenniy.ru 2016
обратиться к администрации

    Главная страница