1.82M
Категория: ИнформатикаИнформатика

Технологии и Методы программирования

1.

Астраханский государственный технический университет
Курсовой проект
по дисциплине «Технологии и Методы программирования»
на тему:
Алгоритм шифрования AES
Выполнил
ДИБББ-22
студент гр.
Ступин А.О.
Руководитель
ст.преп.

2.

Постановка задачи
• Разработка программного продукта, который:
• реализует алгоритм шифрования AES;
• реализует алгоритм дешифрования AES.

3.

Введение
• В современном мире безопасность — это
наиглавнейшая проблема информационного мира.
• Если раньше можно было достаточно легко спрятать
необходимую информацию, то с появлением более
развитых систем связи, с появлением и развитием
Интернета, с превращением мира в
информационное сообщество, нельзя быть
уверенным в безопасности каждого бита
информации.

4.

Криптография
• Криптография — наука о
методах обеспечения
конфиденциальности,
целостности данных,
аутентификации, шифрования.
• В современном мире
криптография может
предложить множество
различных алгоритмов
шифрования.
md2/4/5/6
Sha-1/2
Haval
Rijndael(AES)
DES
DFC
RC4
RC5
RSA
DSA
Rabin
Elgamal
ГОСТ 28147-89

5.

Классификация алгоритмов

6.

AES-128
• AES (он же Rijndael) –
современный
симметричный алгоритм
блочного шифрования,
принятый в качестве
стандарта шифрования
правительством США по
результатам конкурса AES.
Виды AES:
• AES-128
• AES-192
• AES-256
Цифровое обозначение
соответствует длине применяемого
ключа, выраженной в битах.

7.

Операции в алгоритме
«Получить расписание ключей»
(GetKeyExpansion).
начало
четыре столбца (слова) основного
ключа перенести в первые четыре
слова расширенного ключа;
делать 40 раз
произвести циклическую
перестановку байта исходного
слова;
заменить байты слова в
соответствии с S-box;
сложить слово и столбец матрицы
Rcon;
кц
конец
«Сложить блок с раундовым ключом»
(AddRoundKey)

8.

«Умножить на
фиксированную
матрицу» (MixColums)
«Заменить байты блока в
соответствии с S-box» (SubBytes)

9.

Шифрование
начало
получить «расписание» ключей;
сложить блок и ключ0;
делать 9 раз
заменить байты блока в соответствии с S-box;
сдвинуть i-тую строку на i позиций влево;
умножить на фиксированную матрицу;
сложить блок и ключN;
кц
заменить байты блока в соответствии с S-box;
сдвинуть i-тую строку на i позиций влево;
сложить блок и ключ10;
конец

10.

Дешифрование
начало
сложить блок и ключ11;
делать 9 раз
сдвинуть i-тую строку на i позиций вправо;
заменить байты блока в соответствии с
Inverse-S-box;
сложить блок и ключN;
умножить на матрицу обратную в
MixColums;
кц
сдвинуть i-тую строку на i позиций вправо;
заменить байты блока в соответствии с
Inverse-S-box;
сложить блок и ключ0;
конец

11.

Входные и выходные данные
Входные данные:
• 128-битный ключ шифрования в 16-тиричном формате
(введенный, случайно сгенерированный или
загруженный файлом);
• информация, предназначенная для
шифрования/дешифрования, в виде файла.
Выходные данные:
• зашифрованный/дешифрованный файл
• ключ (в случае его сохранения)

12.

Системные требования
Рекомендуемая конфигурация:
• Intel-совместимый процессор с частотой не менее 1,6
ГГц;
• не менее 512 МБ ОЗУ;
• не менее 20 MБ свободного места на диске;
• дисковод CD-ROM/DVD-ROM.
• Операционная система: Windows 10. Среда
разработки – IntelliJ IDEA Community Edition 2021.2.2.

13.

Заключение
• В результате курсового проектирования разработана
программа, реализующая криптографический
алгоритм AES-128.
Программа отвечает
поставленным
требованиям и может
быть использована для
обеспечения
безопасности файлов
на компьютере.

14.

Спасибо за внимание!
English     Русский Правила