DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Комбіновані криптосистеми на прикладі цифрового конверта

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних наук та інформаційних технологій
Факультет:
Комп’ютерні науки
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2015
Тип роботи:
Лабораторна робота
Предмет:
Проектування засобів захисту інформації в комп’ютерних мережах
Група:
КН-1
Коротко про документ

Про що ця робота

У роботі реалізовано програму підтримки комбінованих криптосистем на прикладі цифрового конверта. Розроблено програмний код на C# для шифрування та перевірки цифрового підпису.

У роботі розглядаються

  • Комбіновані криптосистеми
  • Цифровий конверт
  • Шифрування даних
  • Цифровий підпис
  • Алгоритм CAST-128
  • Алгоритм RSA
  • Безпека комп'ютерних мереж

Зміст і розділи

  1. Мета
  2. Завдання
  3. Теоретичні відомості
  4. Текст програми
  5. Результат виконання роботи
  6. Висновок
Для кого:Студенти технічних спеціальностей, які вивчають захист інформації та криптографію.
Викладачі:Викладач кафедри ЕОМ

Ключові поняття

криптосистемацифровий конвертсеансовий ключвідкритий ключособистий ключцифровий підписшифруваннядешифруванняRSACAST-128хеш-функція

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ „ЛЬВІВСЬКА ПОЛІТЕХНІКА” Кафедра ЕОМ / Звіт Лабораторна робота № 4 «Комбіновані криптосистеми на прикладі цифрового конверта » з дисципліни: «Проектування засобів захисту інформаціїв комп’ютерних мережах» . Львів-2015 Мета:реалізувати програму підтримки комбінованих криптосистем на прикладі цифрового конверта. Завдання: В ході роботи необхідно засвоїти основні принципи побудови комбінованих криптосистем, розробити програму підтримки комбінованих криптосистем на прикладі цифрового конверта.Для спрощення реалізації розрядність відкритого та закритогоключів повинна складати до 64 біт. Теоретичні відомості: Суть технології цифрового конверта в наступному. Генерується унікальне число –сеансовий ключ. Упаковуння документа в цифровій конверт здійснюється шляхом обробки за певним алгоритмом, на вхід якого подаються як сам документ, так і сеансовий ключ. Вилучення документа з конверта можливо тільки при знанні сеансового ключ. Надалі технологія використання цифрового конверта визначається технологією керування сеансовоми ключами. Перший спосіб застосовується при доступі до баз даних і полягає в тому, що документи в цифрові конверти спочатку запаковує адміністратор системи, він же генерує ключі доступу. Далі на основі проміжних чисел-ключів, створених користувачами системи, і ключів доступу для конвертів, сформованих адміністратором, формуються ключі доступу для кожного користувача. При цьому за допомогою свого ключа доступу користувач може витягти з цифрового конверта тільки ті документи, доступ до яких дозволений адміністратором. При створенні нових документів користувач може сам дозволяти чи обмежувати доступ до них інших користувачів. У ході експлуатації системи може здійснюватися повне її адміністрування - зміна повноважень користувачів, зміна ключів, додавання та видалення користувачів і т. д., при цьому повного переналаштування системи не потрібно. Другий спосіб - відкритий розподіл ключів. На сьогоднішній день - це найбільш перспективний спосіб керування числами-ключами, що використовується практично у всіх системах захисту інформації в світі. Він полягає в тому, що два користувача незалежно генерують особисті ключі, на їх основі виробляють так звані відкриті ключі, якими обмінюються. Далі відправник генерує секретний сеансовий ключ, з допомогою якого розміщає підготовлений для відправки документ в цифровій конверт. Сам секретний сеансовий ключ шифрується за допомогою відкритого ключа партнера. Для сформованого конверта генерується цифровий підпис. Одержувач за допомогою відкритого ключа відправника перевіряє цифровий підпис. Потім, використовуючи свій особистий ключ, розшифровує секретний сеансів ключ, за допомогою якого отримує з цифрового конверта документ. Таким чином, по каналу зв'язку документ проходить в конверті і його зміст недоступний стороннім. Текст програми: usingSystem; usingSystem.Collections.Generic; usingSystem.ComponentModel; usingSystem.Data; usingSystem.Drawing; usingSystem.Linq; usingSystem.Text; usingSystem.Windows.Forms; usingSystem.Security.Cryptography; usingSystem.IO; usingAced.Cryptography; namespaceEncDecr_CAST_128 { publicpartialclass Form1 : Form { public Form1() { InitializeComponent(); } privateGuid _key = Guid.Empty; int[] schKey; byte[] MBuffer; byte[] KBuffer; byte[] SBuffer; boolEncrypted = false; privatevoidEncryptCAST() { //while (richTextBox1.Text.Length % 8 != 0) //richTextBox1.Text += " "; byte[] buffer = System.Text.Encoding.ASCII.GetBytes(richTextBox1.Text); while (buffer.Length % 8 != 0) Array.Resize(refbuffer, buffer.Length+1); longiv = AcedCast5.GetOrdinaryIV(schKey); iv = AcedCast5.EncryptCBC(schKey, buffer, 0, buffer.Length, iv); richTextBox1.Text = System.Text.Encoding.ASCII.GetString(buffer); MBuffer = buffer; } privatevoidDecryptCAST() { longiv = AcedCast5.GetOrdinaryIV(schKey); iv = AcedCast5.DecryptCBC(schKey, MBuffer, 0, MBuffer.Length, iv); richTextBox1.Text = System.Text.Encoding.ASCII.GetString(MBuffer); } privatevoidbutton1_Click(object sender, EventArgs e) { RSACryptoServiceProviderrsaOtr = newRSACryptoServiceProvider(); File.WriteAllText("publicOtr.xml", rsaOtr.ToXmlString(false)); File.WriteAllText("privateOtr.xml",rsaOtr.ToXmlString(true)); } privatevoidbutton6_Click(object sender, EventArgs e) { if (openFileDialog1.ShowDialog() == DialogResult.OK) { byteTemp = 0x00, BackTemp = 0x00; FileStreamfromFile = newFileStream(openFileDialog1.FileName, FileMode.Open, FileAccess.Read); Array.Resize(refKBuffer, 128); for (int i = 0; i < 128; i++) KBuffer[i] = (byte)fromFile.ReadByte(); richTextBox2.Text = Encoding.ASCII.GetString(KBuffer); Array.Resize(refSBuffer, 128); for (int i = 0; i < 128; i++) SBuffer[i] = (byte)fromFile.ReadByte(); richTextBox3.Text = Encoding.ASCII.GetString(SBuffer); Array.Resize(refMBuffer, 1); while ((Temp != 0xff) || (BackTemp != 0xff)) { BackTemp = Temp; Temp = (byte)fromFile.ReadByte(); MBuffer[MBuffer.Length-1] = Temp ; Array.Resize(refMBuffer, MBuffer.Length + 1); } Array.Resize(refMBuffer, MBuffer.Length - 3); fromFile.Close(); richTextBox1.Text = Encoding.ASCII.GetString(MBuffer); } } privatestring SHA_1(StringFun) { ************ } privatevoidbutton4_Click(object sender, EventArgs e) { byte[] Key; byte[] SHA1; RSACryptoServiceProviderrsaKey = newRSACryptoServiceProvider(); rsaKey.FromXmlString(File.ReadAllText("publicOtr.xml")); _key = Guid.NewGuid(); schKey = AcedCast5.ScheduleKey(_key.ToByteArray()); Key = _key.ToByteArray(); SHA1 = System.Text.Encoding.ASCII.GetBytes(SHA_1(richTextBox1.Text)); EncryptCAST(); KBuffer = rsaKey.Encrypt(Key, false); SBuffer = rsaKey.Encrypt(SHA1, false); richTextBox2.Text = Encoding.ASCII.GetString(KBuffer); richTextBox3.Text = Encoding.ASCII.GetString(SBuffer); Encrypted = true; } privatevoidbutton7_Click(object sender, EventArgs e) { byte[] Key; byte[] SHA1; string SHA2; RSACryptoServiceProviderrsaKey = newRSACryptoServiceProvider(); rsaKey.FromXmlString(File.ReadAllText("privateOtr.xml")); Key = KBuffer; KBuffer = rsaKey.Decrypt(Key, false); schKey = AcedCast5.ScheduleKey(KBuffer); richTextBox2.Clear(); for (int i = 0; i <KBuffer.Length; i++ ) richTextBox2.Text += String.Format("{0:X}", KBuffer[i]); SHA1 = rsaKey.Decrypt(SBuffer, false); DecryptCAST(); richTextBox3.Text = Encoding.ASCII.GetString(SHA1); SHA2 = SHA_1(richTextBox1.Text); if(richTextBox3.Text==SHA2) MessageBox.Show("Signisequal", "Attention",MessageBoxButtons.OK, MessageBoxIcon.Exclamation); else MessageBox.Show("Signisnotequal", "Attention", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); Encrypted = false; } privatevoid button2_Click_1(objectsender, EventArgs e) { if(Encrypted == true) if (saveFileDialog1.ShowDialog() == DialogResult.OK) { FileStreamoutFile = newFileStream(saveFileDialog1.FileName, FileMode.Create, FileAccess.Write); outFile.Write(KBuffer, 0, (int)KBuffer.Length); outFile.Write(SBuffer, 0, (int)SBuffer.Length); outFile.Write(MBuffer, 0, (int)MBuffer.Length); outFile.Close(); } } } } Результат виконання роботи: Шифрування / Дешифрування / Висновок:Під час даної лабораторної роботи я реалізував програму підтримки комбінованих криптосистем на прикладі цифрового конверта.
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!