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

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

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

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

Рік:
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:12-

Коментарі

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

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

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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