Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчёт по лабораторным.docx
Скачиваний:
12
Добавлен:
18.11.2022
Размер:
494.32 Кб
Скачать

Лабораторная работа № 4. Цифровая подпись.

  1. Создать в блокноте файл с некоторым текстом и сохранить его на диске в кодировке Юникод.

  2. Создать в Visual Studio .Net программу, осуществляющую цифровую подпись текста, содержащегося в данном файле по алгоритму шифрования RSA и алгоритму хеширования MD5 и верификацию созданной подписи.

  3. Создать на форме меню из трёх пунктов: Ключи RSA, Подпись и Верификация.

  4. В меню Ключи RSA реализовать следующие функции: создание новой пары ключей RSA, сохранение обоих ключей в файле секретного ключа, сохранение отктытого ключа в файле открытого ключа. Имена файлов выбираются пользователем с помощью элемента управления SaveFileDialog.

  5. Нанести на форму элемент управления RichTextBox и Label.

  6. В меню Подпись создать следующие подменю: Открыть файл и Подписать.

  7. В меню Открыть файл реализовать следующие функции: выбор текстового файла и отображение данных из него в элементе управления RichTextBox. Выбор файла осуществляется с помощью элемента управления OpenFileDialog.

  8. В меню Подписать реализовать следующие функции: выбор файла секретного ключа (имя файла выбирается с помощью элемента управления OpenFileDialog), подпись текста по заданному алгоритму и сохранение подписи в бинарном файле (имя файла выбирается с помощью элемента управления SaveFeleDialog).

  9. В меню Верификация создать следующие подменю: Открыть файл, Открытый ключ и Верификация подписи.

  10. В меню Открыть файл реализовать следующие функции: выбор текстового файла и отображение данных из него в элементе управления RichTextBox. Выбор файла осуществляется с помощью элемента управления OpenFileDialog.

  11. В меню Открытый ключ реализовать следующие функции: выбор файла открытого ключа и чтение информации из него. Имя файла выбирается с помощью элемента управления OpenFileDialog. В случае успешного чтения ключа выдать соответствующее сообщение на элемент Label.

  12. В меню Верификация подписи реализовать следующие функции: чтение файла подписи (имя файла выбирается с помощью элемента управления OpenFileDialog) и верификацию полученной подписи на основе информации об открытом ключе, полученной в предыдущем пункте. В случае успешной или неуспешной верификации выдать соответствующее сообщение на элементе Label.

  13. Проверить работу программы, верификация подписи должна быть успешной.

  14. Создать подпись, после чего внести в текстовый файл какие-нибудь изменения и произвести верификацию. Верификация должна быть неуспешной.

  15. Создать подпись, но при выборе файла секретного ключа указать имя не секретного, а открытого ключа. При этом должна выдаваться ошибка, т.к. создавать подпись можно только с помощью секретного ключа.

Текст программы:

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.Security.Cryptography;

using System.IO;

namespace Информационная_безопасноть__4

{

public partial class Form1 : Form

{

RSACryptoServiceProvider RSA = new RSACryptoServiceProvider(512);

public Form1()

{