Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Шифрування даних за допомогою AES

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

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

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

Рік:
2024
Тип роботи:
Лабораторна робота
Предмет:
Захист інформації в комп’ютерних системах

Частина тексту файла

Міністерство освіти і науки України Національний університет “Львівська політехніка” Кафедра ЕОМ / Лабораторна робота №8 з дисципліни «Захист інформації в комп’ютерних системах» на тему: «Шифрування даних за допомогою AES» Мета роботи: Мета роботи – ознайомитись з одним із сучасних симетричних алгоритмів блочного шифрування AES, навчитися його застосовувати для різних типів даних. Завдання: 1. Розробити графічний інтерфейс на мові C# для коду алгоритму реалізації шифрування файлів за допомогою AES (наведений у додатку). 2. Налаштувати алгоритм згідно свого варіанту відповідно до таблиці варіантів. Теоретичні відомості Advanced Encryption Standard (AES) – симетричний алгоритм блочного шифрування (розмір блока 128 біт, ключ 128/192/256 біт), фіналіст конкурсу AES і прийнятий в якості американського стандарту шифрування урядом США. Станом на 2009 рік AES був одним із найпоширеніших алгоритмів симетричного шифрування. AES являє собою симетричний алгоритм шифрування з ключем. Ключ може мати довжину 128, 192 і 256 біт. Алгоритми з ключем довжиною 128, 192 і 256 біт позначаються відповідно як AES-128, AES-192, AES-256. AES-128, AES-192, AES-256 обробляють блоки даних за відповідно 10, 12 та 14 ітерацій. Кожна ітерація (раунд) являє собою визначену послідовність трансформацій. Всі ітерації однакові за виключенням останньої, з якої виключене одне з перетворень. Кожен раунд працює з двома 128-бітними блоками: “поточний” та “ключ раунду”. Всі раунди використовують різні “ключі раунду”, які отримуються за допомогою алгоритму розширення ключа. Цей алгоритм не залежить від даних, які ми шифруємо, і може виконуватися незалежно від фази шифрування/дешифрування. Хід виконання: Варіант №6 Код реалізації алгоритму роботи шифру: using System; using System.Security.Cryptography; using System.IO; namespace AES_Encryption { public class AES { public AES() { } // Encrypt a byte array into a byte array using a key and an IV private byte[] Encrypt(byte[] clearData, byte[] Key, byte[] IV) { // Create a MemoryStream that is going to accept the encrypted bytes MemoryStream ms = new MemoryStream(); Rijndael alg = Rijndael.Create(); alg.Key = Key; alg.IV = IV; CryptoStream cs = new CryptoStream(ms, alg.CreateEncryptor(), CryptoStreamMode.Write); cs.Write(clearData, 0, clearData.Length); cs.Close(); byte[] encryptedData = ms.ToArray(); return encryptedData; } /// <summary> /// Returns an encrypted string using Rijndael (128,192,256 Bits). /// </summary> public string Encrypt(string Data, string Password,int Bits) { byte[] clearBytes = System.Text.Encoding.Unicode.GetBytes(Data); PasswordDeriveBytes pdb = new PasswordDeriveBytes(Password, new byte[] {0x00, 0x01, 0x02, 0x1C,0x1D,0x1E,0x03,0x04,0x05,0x0F,0x20,0x21,0xAD,0xAF,0xA4}); if (Bits == 128) { byte[] encryptedData = Encrypt(clearBytes, pdb.GetBytes(16), pdb.GetBytes(16)); return Convert.ToBase64String(encryptedData); } else if(Bits == 192) { byte[] encryptedData = Encrypt(clearBytes, pdb.GetBytes(24), pdb.GetBytes(16)); return Convert.ToBase64String(encryptedData); } else if(Bits == 256) { byte[] encryptedData = Encrypt(clearBytes, pdb.GetBytes(32), pdb.GetBytes(16)); return Convert.ToBase64String(encryptedData); } else { return string.Concat(Bits); } } // Decrypt a byte array into a byte array using a key and an IV private byte[] Decrypt(byte[] cipherData, byte[] Key, byte[] IV) { MemoryStream ms = new MemoryStream(); Rijndael alg = Rijndael.Create(); alg.Key = Key; alg.IV = IV; CryptoStream cs = new CryptoStream(ms, alg.CreateDecryptor(), CryptoStreamMode.Write); cs.Write(cipherData, 0, cipherData.Length); cs.Close(); byte[] decryptedData = ms.ToArray(); return decryptedData; } public string Decrypt(string Data, string Password,int Bits) { byte[] ...
Антиботан аватар за замовчуванням

22.03.2018 19:03

Коментарі

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

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

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

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

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини