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)
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.