Лабораторная работа №3 Изучение работы блоковых шифров и способов их объединения Задание:

advertisement
Лабораторная работа №3
Изучение работы блоковых шифров и способов их объединения
Задание:
1. Изучить блочные алгоритмы шифрования: алгоритм перестановки, алгоритм
скремблеров, алгоритм замены по таблице, матричный метод преобразования и
алгоритм Винжера.
2. Изучить режимы использования блочных шифров (ECB, CBC, CFB и OFB).
3. Изучить способы объединения блочных шифров (многократное шифрование, сеть
Фейстела).
4. Реализовать систему в соответствии с вариантами указанными в Таблице 1 и
заданием:
Изучить принцип работы алгоритма, который указан в варианте (Таблица 1,
Поле А) на приведенном примере. Разработать собственный алгоритм (или
модифицировать пример), который реализует указанный в варианте:
 режим использования блочного шифра (Таблица 1, Поле В);
 работает с указанной длиной блока (Таблица 1, Поле С);
 позволяет оценивать скорость шифрования/дешифрования
Дополнительные требования:
1. Функции шифрования/дешифрования + вспомогательные функции необходимые
для осуществления процесса кодирования/декодирования помещаются в
отдельную библиотеку dll (это необходимо для выполнения третьей лабораторной
работы).
2. Пароль в зашифрованном виде записывается в закодированный файл. При попытке
расшифровать его с другим паролем выводится сообщение об ошибке.
3. В процессе кодирования осуществляется подсчет контрольной суммы. При
декодировании осуществляется проверка контрольной суммы. При несовпадении
выдается сообщение об ошибке. Для четных вариантов – контрольная сумма
считается по открытому тексту, для нечетных вариантов по шифрованному тексту.
4. Должна иметься возможность отключения режима использования блочного шифра
и работа программы в режиме простого ECB.
5. Паролем может быть ЛЮБАЯ последовательность символов (русских и
английских, цифр, знаков препинания и т.д.).
6. Программа должна быть оформлена в виде удобной утилиты, позволяющей
работать с любыми файлами.
7. Программа должна обеспечивать шифрование файлов произвольной длины.
8. Текст программы оформляется прилично (удобочитаемо, с описанием ВСЕХ
функций, переменных и критических мест).
9. В процессе работы программа ОБЯЗАТЕЛЬНО выдает информацию
о
состоянии процесса кодирования/декодирования.
10. После завершения работы программы выдает информацию о скорости шифрования
/ дешифрования (символ /сек)
11. Интерфейс программы может быть произвольным, но удобным и понятным
(разрешается использование библиотек VCL)
12. Среда разработки и язык программирования могут быть произвольными.
Требования для сдачи лабораторной работы:
1. Демонстрация работы реализованной вами системы.
2. АВТОРСТВО
3. Теория (ориентирование по алгоритму и теоретическим аспектам методов
гаммирования и перестановок)
4. Оформление и представление письменного отчета по лабораторной работе,
который содержит:
1. Титульный лист
2. Задание на лабораторную работу
3. Описание используемых алгоритмов шифрования
4. Листинг программы
Варианты заданий.
Таблица 1.
№
А
варианта
Перестановка
1.
2.
Скремблер
3.
Замена по таблице
4.
Матричный метод
5.
Система Винжера
6.
Перестановка
7.
Скремблер
8.
Замена по таблице
9.
Матричный метод
10.
Система Винжера
11.
Перестановка
12.
Скремблер
13.
Замена по таблице
14.
Матричный метод
15.
Система Винжера
16.
Перестановка
17.
Скремблер
18.
Замена по таблице
19.
Матричный метод
20.
Система Винжера
B
C
Фейстела
OFB
CBC
CFB
Фейстела
OFB
CFB
CBC
CBC
OFB
CFB
Фейстела
Фейстела
OFB
CBC
CBC
CBC
CFB
Фейстела
CFB
10 байт
3 байта
1 байт
7 байт
1 байт
11 байт
7 байт
1 байт
9 байт
1 байт
12 байт
6 байт
2 байта
11 байт
1 байт
15 байт
7 байт
2 байта
8 байт
1 байт
D
Число подблоков 3
Сдвиг влево
Число столбцов 5
Число подблоков 4
Сдвиг вправо
Число столбцов 4
Число подблоков 3
Сдвиг влево
Число столбцов 6
Число подблоков 4
Сдвиг вправо
Число столбцов 7
-
Download