Частина тексту файла (без зображень, графіків і формул):
Національний технічний університет України
«Київський політехнічний інститут імені Ігоря Сікорського»
Теплоенергетичний факультет
Кафедра цифрових технологій в енергетиці
ЛАБОРАТОРНА РОБОТА №2
з дисципліни «Безпека інформаційних систем»
на тему: “Шифрування методом гамування”
Варіант № 13
Мета лабораторної роботи – ознайомлення та набуття навичок пов’язаних з захистом інформації та навчити працювати з методами криптографії.
Теоретичні відомості
Для зашифровування вхідної послідовності за цим методом відправник виконує побітове додавання по модулю 2 ключа k (відомий й одержувачу й відправнику) і m- розрядної двійкової послідовності, що відповідає повідомленню, яке пересилається:
ci=mi+ki, i=1,m
де mi, ki, ci – черговий i-й біт відповідно вихідного повідомлення m, ключа k і зашифрованого повідомлення с.
Процес розшифровування зводиться до повторної генерації ключової послідовності й накладенню її на зашифровані дані. Рівняння розшифрування має вигляд:
mi=ci–ki, i=1,m
Розрізняють гамування з кінцевою й нескінченною гамами. У якості кінцевої гами може використовуватися фраза, в якості нескінченної – послідовність, яка генерується генератором псевдовипадкових чисел.
У тому випадку, коли безліччю використовуваних для шифрування знаків повідомлення є текст, відмінний від двійкового коду, то його символи й символи гами замінюються цифровими еквівалентами, які потім підсумовуються по модулю N. Процес зашифровування в цьому випадку визначається співвідношенням
ci=(mi+ri) mod N, i=1, m
де mi, ri, ci – черговий i-й знак вихідного повідомлення, гами й шифротексту відповідно; N – кількість символів в алфавіті повідомлення; m – кількість знаків відкритого тексту.
Завдання для лаболаторної роботи:
Завдання виконується індивідуально кожним студентом. Усі необхідні обчислення зі скріншотами описуються у звіті.
Створити програму на будь-якій мові програмування для шифрування повідомлення із лабораторної роботи 1 із використанням шифру гамування.
/
Додати скріншот зашифровування до звіту. Порівняти час на шифрування методом заміни (Цезаря) та методом гамування, якщо час не сильно відрязняється додайте де-кілька речень за власним бажанням (або обрати свій текст).
Хід роботи
Так як перша лабораторна робота виконана для шифрування використовуючи англійський алфавіт, перекладемо текст на англійський і будемо використовувати його. Отримаємо ось такий текст:
/
Виконаємо шифрування методом гамування:
/
Тепер виконаємо шифрування цього ж тексту методом Цезаря:
/
Метод шифрування гамуванням виявився набагато швидшим за метод шифрування Цезаря.
Висновок: Під час виконання даної лабораторної роботи було набуто навичок пов’язаних з захистом інформації, а саме написано програмний код для шифрування методом гамування і порівняно його швидкість з шифром Цезаря.
Код програми:
https://replit.com/join/jkyarekold-tr-15fundamient
import java.util.Scanner;
class Main {
private static final int KEY = 7;
public static String encrypt(String text) {
char[] chars = text.toCharArray();
for (int i = 0; i < chars.length; i++) {
chars[i] ^= KEY;
}
return new String(chars);
}
public static String decrypt(String text) {
return encrypt(text);
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Input text: ");
String text = scan.nextLine();
System.out.println();
long startTime = System.nanoTime();
String encryptedText = encrypt(text);
String decryptedText = decrypt(encryptedText);
long endTime = System.nanoTime();
long executionTime = endTime - startTime;
System.out.println("Encrypted text: " + encryptedText);
System.out.println();
System.out.println("Decrypted text: " + decryptedText);
System.out.println();
System.out.println("Execution time: " + executionTime + " ns");
}
}
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!