Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Изучение стандартных средств для реализации приложений, использующих симметричное и ассиметричное шифрование

Автор:   •  Февраль 10, 2023  •  Практическая работа  •  5,862 Слов (24 Страниц)  •  150 Просмотры

Страница 1 из 24

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ ДОНЕЦКОЙ НАРОДНОЙ РЕСПУБЛИКИ

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«ДОНЕЦКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

Кафедра ПИ им. Фельдмана

Факультет ИСП

Отчет по лабораторной работе №4

Тема: Изучение стандартных средств для реализации приложений,

использующих симметричное и ассиметричное шифрование

Курс: Безопасность программ и данных

Выполнил

ст. гр. ПИ-18в

Парсаданян Я.Р.

Проверил

Донецк – 2021

Задание

Шифрование симметричным алгоритмом шифрования (Rijndael).

Шифрование ключа симметричного алгоритма ассиметричным алгоритмов (RSA).

Получение дайжеста с помощью функции хеширования (MD5).

Реализация ЭЦП с помощью ассиметричного алгоритма (RSA).

        

Описание алгоритмов

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

Операция SubBytes представляет собой табличную замену каждого байта массива данных. Операция ShiftRows выполняет циклический сдвиг влево всех строк массива данных за исключением нулевой производится на i байт. Операция MixColumns выполняет умножение каждого столбца массива данных на фиксированный полином a(x). Операция AddRoundKey выполняет наложение на массив данных материала ключа. А именно, на i-ый столбец массива данных побитовой логической операцией XOR накладывается определенное слово.

RSA – алгоритм с открытым ключом, основывающийся на вычислительной сложности задачи факторизации больших целых чисел. Криптосистема RSA стала первой системой, пригодной и для шифрования, и для цифровой подписи.

Отправитель выбирает два очень больших простых числа Р и Q и вычисляет два произведения N=PQ и M=(P-1)(Q-1). Затем он выбирает случайное целое число D, взаимно простое с М, и вычисляет Е, удовлетворяющее условию DE = 1 MOD М. После этого он публикует D и N как свой открытый ключ шифрования, сохраняя Е как закрытый ключ. Если S – сообщение, длина которого, определяемая по значению, выражаемого им целого числа, должна быть в интервале (1, N), то оно превращается в шифровку возведением в степень D по модулю N и отправляется получателю S'=(S**D) MOD N. Получатель сообщения расшифровывает его, возводя в степень Е по модулю N, так как S=(S'**E) MOD N = (S**(D*E)) MOD N. Таким образом, открытым ключом служит пара чисел N и D, а секретным ключом число Е.

MD5 – 128-битный алгоритм хеширования. Предназначен для создания «дайджестов» сообщений произвольной длины.

На вход алгоритма поступает входной поток данных. Длина сообщения может быть любой (L). Сначала к концу потока дописывают единичный бит. Затем добавляют некоторое число нулевых бит такое, чтобы новая длина потока L' стала сравнима с 448 по модулю 512, (L'=512*N+448). В конец сообщения дописывают 64-битное представление длины данных (количество бит в сообщении) до выравнивания. После этого длина потока станет кратной 512. Для вычислений инициализируются четыре переменные размером по 32 бита, начальные значения которых задаются шестнадцатеричными числами. В этих переменных будут храниться результаты промежуточных вычислений. Начальное состояние ABCD называется инициализирующим вектором. В цикле вычисляются значения и выводится хеш.

Код программы

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.IO;

using System.Security.Cryptography;

namespace zashita4

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

        MD5 md5 = MD5.Create();

        CspParameters cspp = new CspParameters();

        CspParameters csppHash = new CspParameters();

...

Скачать:   txt (21.2 Kb)   pdf (370.8 Kb)   docx (290.4 Kb)  
Продолжить читать еще 23 страниц(ы) »
Доступно только на Essays.club