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

Шифрування методом гамування

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

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

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

Рік:
2023
Тип роботи:
Лабораторна робота
Предмет:
Інші

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

Національний технічний університет України «Київський політехнічний інститут імені Ігоря Сікорського» Теплоенергетичний факультет Кафедра цифрових технологій в енергетиці ЛАБОРАТОРНА РОБОТА №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"); } }
Антиботан аватар за замовчуванням

03.05.2023 19:06

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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