DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

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

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

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

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

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

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ „ЛЬВІВСЬКА ПОЛІТЕХНІКА” Кафедра ЕОМ / Звіт Лабораторна робота № 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(); } } } } Результат виконання роботи: Шифрування / Дешифрування / Висновок:Під час даної лабораторної роботи я реалізував програму підтримки комбінованих криптосистем на прикладі цифрового конверта.
Антиботан аватар за замовчуванням

03.12.2015 14:36

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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