Разработка программы, обеспечивающую с помощью средств языка С++ ввод анкетных данных студентов и вывод в табличном виде списка студентов, отобранных по заданному условию, страница 13

14. Дисперсия времени пребыв. в сист.

Задача №22

ДАНО:

Текстовый файл с некоторой информацией.

ТРЕБУЕТСЯ:

1.  Создать новую пару ключей RSA длиной 512 бит и сохранить в одном файле открытый и секретный ключ, а в другом – только открытый ключ.

2.  Создать новый ключ симметричного шифрования по алгоритму DES.

3.  Зашифровать с помощью ключа симметричного шифрования текст, содержащийся в файле.

4.  Зашифровать симметричный ключ DES с помощью открытого ключа RSA.

5.  Сохранить зашифрованный ключ DES и зашифрованную с помощью него информацию в новом бинарном файле.

ОГРАНИЧЕНИЯ:

·  Пункт 1 выполнить в отдельном программном модуле.

·  Пункты 2,3,4,5 выполнить вместе в отдельном программном модуле.

·  Язык программирования – Visual Basic .Net или C # (по выбору)

1:

Dim  RSA As New RSACryptoServiceProvider(512)

' записать в файл информацию об открытом и секретном ключах

Dim fs As New FileStream("key1.bin", FileMode.OpenOrCreate)

Dim w As New StreamWriter(fs)

w.Write(RSA.ToXmlString(True))

w.Flush()

fs.Close()

' записать в другой файл информацию о секретном ключе

fs = New FileStream("key2.bin", FileMode.OpenOrCreate)

w = New StreamWriter(fs)

w.Write(RSA.ToXmlString(False))

w.Flush()

fs.Close()

2,3,4,5:

Dim fs As New FileStream(Текст.txt, FileMode.Open)

Dim r As New StreamReader(fs)

RSA.FromXmlString(r.ReadToEnd())

fs.Close()

' открытие шифрованного файла для записи

fs = New FileStream(Шифр.bin, FileMode.Create)

' создание нового симметричного ключа для шифрования по алгоритму DES

Dim DES As New DESCryptoServiceProvider

' шифрование симметричного ключа и вектора инициализации

'с помощью октытого ключа RSA

Dim EncrypKey() As Byte = RSA.Encrypt(DES.Key, False)

Dim EncrypIV() As Byte = RSA.Encrypt(DES.IV, False)

' запись асимметрично зашифрованных ключа и вектора инициализации

' в файл

fs.Write(EncrypKey, 0, EncrypKey.Length)

fs.Write(EncrypIV, 0, EncrypIV.Length)

' шифрование информации с помощью алгоритма DES и запись её в файл

Dim transform As ICryptoTransform = DES.CreateEncryptor()

Dim cs As New CryptoStream(fs, transform, CryptoStreamMode.Write)

Dim w As New StreamWriter(cs)

w.Write(RichTextBox1.Text)

w.Flush()

' очистка буфера памяти и закрытие файла

cs.FlushFinalBlock()

w.Close()

fs.Close()

Задача №23

ДАНО:

Текстовый файл с некоторой информацией.

ТРЕБУЕТСЯ:

1.  Создать новую пару ключей RSA длиной 512 бит и сохранить в одном файле открытый и секретный ключ, а в другом – только открытый ключ.

2.  Создать цифровую подпись RSA для данного текста и поместить её в отдельный файл. В качестве алгоритма хеширования использовать SHA-1.

3.  Проверить истинность цифровой подписи.

ОГРАНИЧЕНИЯ:

·  Каждый пункт выполнить в отдельном программном модуле.

·  Язык программирования – Visual Basic .Net или C # (по выбору)

1:

Dim  RSA As New RSACryptoServiceProvider(512)

' записать в файл информацию об открытом и секретном ключах

Dim fs As New FileStream("key1.bin", FileMode.OpenOrCreate)

Dim w As New StreamWriter(fs)

w.Write(RSA.ToXmlString(True))

' очистка буфера памяти

w.Flush()

fs.Close()

' записать в другой файл информацию о секретном ключе

fs = New FileStream("key2.bin", FileMode.OpenOrCreate)

w = New StreamWriter(fs)

w.Write(RSA.ToXmlString(False))

' очистка буфера памяти

w.Flush()

fs.Close()

2:

Dim text As String

Dim signature() As Byte

' открытие исходного файла и чтение из него информации в переменную text

Dim fs As New FileStream("Пример3.txt", FileMode.Open)