Для студентов МГТУ им. Н.Э.Баумана по предмету Криптографические Методы Защиты ИнформацииКМЗИ Алгоритм Rijndael со сцеплением блоков шифртекстаКМЗИ Алгоритм Rijndael со сцеплением блоков шифртекста
2024-05-062024-05-06СтудИзба
ДЗ 3: КМЗИ Алгоритм Rijndael со сцеплением блоков шифртекста
-46%
Описание
Криптографические методы защиты информации. Задание №3.
1. Напишите программу, представляющую элемент из 𝐺𝐹(256) в полиномиальной форме и наоборот. Полиномы выводите в общепринятом формате (например, вместо x^1 выводите x, а вместо x^0 выводите 1).
2. Напишите функцию, умножающую два двоичных многочлена степени не выше 31.
3. Напишите функцию умножения двух элементов из 𝐺𝐹(256). При выводе продемонстрируйте
результаты для различных неприводимых многочленов, с помощью которых определяется операция умножения.
4. Реализуйте расширенный алгоритм Евклида для 𝐺𝐹(256).
5. Напишите функцию, которая ищет мультипликативный обратный для элемента из 𝐺𝐹(256).
6. Разработайте метод генерации прямого S-box и обратного S-box алгоритма Rijndael.
7. Пусть 𝑛 ∈ ℕ. Пусть, далее, 𝑓, 𝑔 ∈ 𝐺𝐹 (256)[𝑋 ]/(𝑋 𝑛 + 1) , то есть
𝑛−1
𝑓 = ∑ 𝑓 𝑘 𝑋 𝑘 ,
𝑘=0
𝑛−1
𝑔 = ∑ 𝑔 𝑘 𝑋 𝑘 ,
𝑘=0
где 𝑓 𝑘 , 𝑔 𝑘 ∈ 𝐺𝐹 (256) . Реализуйте операцию умножения многочленов 𝑓 и 𝑔.
8. Разработайте приложение, обеспечивающее безопасность данных на основе алгоритма Rijndael. Реализуйте возможность выбора длины блока шифротекста и длины ключа, режима сцепления блока шифротекста. Реализуйте методы сцепления блоков шифротекста ECB, CBC, OFB, CFB.
Спроектируйте ваше программное решение так, чтобы класс режима сцепления в качестве параметра принимал алгоритм шифрования (Например, реализуйте паттерн состояние или стратегия).
1. Напишите программу, представляющую элемент из 𝐺𝐹(256) в полиномиальной форме и наоборот. Полиномы выводите в общепринятом формате (например, вместо x^1 выводите x, а вместо x^0 выводите 1).
2. Напишите функцию, умножающую два двоичных многочлена степени не выше 31.
3. Напишите функцию умножения двух элементов из 𝐺𝐹(256). При выводе продемонстрируйте
результаты для различных неприводимых многочленов, с помощью которых определяется операция умножения.
4. Реализуйте расширенный алгоритм Евклида для 𝐺𝐹(256).
5. Напишите функцию, которая ищет мультипликативный обратный для элемента из 𝐺𝐹(256).
6. Разработайте метод генерации прямого S-box и обратного S-box алгоритма Rijndael.
7. Пусть 𝑛 ∈ ℕ. Пусть, далее, 𝑓, 𝑔 ∈ 𝐺𝐹 (256)[𝑋 ]/(𝑋 𝑛 + 1) , то есть
𝑛−1
𝑓 = ∑ 𝑓 𝑘 𝑋 𝑘 ,
𝑘=0
𝑛−1
𝑔 = ∑ 𝑔 𝑘 𝑋 𝑘 ,
𝑘=0
где 𝑓 𝑘 , 𝑔 𝑘 ∈ 𝐺𝐹 (256) . Реализуйте операцию умножения многочленов 𝑓 и 𝑔.
8. Разработайте приложение, обеспечивающее безопасность данных на основе алгоритма Rijndael. Реализуйте возможность выбора длины блока шифротекста и длины ключа, режима сцепления блока шифротекста. Реализуйте методы сцепления блоков шифротекста ECB, CBC, OFB, CFB.
Спроектируйте ваше программное решение так, чтобы класс режима сцепления в качестве параметра принимал алгоритм шифрования (Например, реализуйте паттерн состояние или стратегия).
Характеристики домашнего задания
Учебное заведение
Семестр
Номер задания
Просмотров
4
Покупок
0
Размер
48,82 Mb