Для студентов МГТУ им. Н.Э.Баумана по предмету Криптографические Методы Защиты ИнформацииКМЗИ Алгоритм Rijndael со сцеплением блоков шифртекстаКМЗИ Алгоритм Rijndael со сцеплением блоков шифртекста
5,00554
2024-05-062025-04-03СтудИзба
ДЗ 3: КМЗИ Алгоритм Rijndael со сцеплением блоков шифртекста
Описание
Криптографические методы защиты информации. Задание №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
Размер
48,82 Mb
Список файлов
CMZI_DZ3
CMZI_DZ.iml
modules.xml
workspace.xml
DZ3-checkpoint.ipynb
RSA_Rijndael-checkpoint.ipynb
Files
.~lock.Demo.crypto_
CBC.crypto
CBC.png
CBC_decrypted.crypto
CBC_decrypted.png
CFB.crypto
CFB.png
CFB_decrypted.png
Demo.crypto
Demo.gif
Demo.jpg
Demo_decrypted.jpg
ECB.crypto
ECB.png
ECB_decrypted.png
Logo.crypto
Logo.png
Logo_decrypted.png
Text.crypto
Text.txt
Text_decrypted.txt
Video.crypto