Перестановочний

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

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

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

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

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

Міністерство освіти і науки Національний університет „Львівська політехніка” Кафедра EОМ Звіт з лабораторної роботи № 2 з дисципліни: “ Захист інформації в комп’ютерних системах ” Перестановочний шифр Варіант 16 2018 Тема: Перестановочний шифр Мета: Ознайомитись з основами класичної техніки шифрування – перестановочними шифрами. Завдання: Створити програму, що реалізує довільний перестановочний шифр. Підготувати і захистити звіт, в якому обов’язково навести алгоритм роботи даного перестановочного шифру. Хід роботи: Код реалізації алгоритму package sample; public class RotationAlgorithm { public static String encrypt(String source, String key){ if(key.length() < 2) return source; else { StringBuffer[] matrix = new StringBuffer[key.length()]; for(int i = 0; i < matrix.length; i++) matrix[i] = new StringBuffer(); int j = 0; for(int i = 0; i < source.length(); i++) { matrix[(Character.getNumericValue(key.charAt(j))) - 1].append(source.charAt(i)); if(++j == key.length()) j = 0; } StringBuilder target = new StringBuilder(); for (int i = 0; i < key.length(); i++){ target.append(matrix[i].toString()); } return target.toString() ; } } public static String decrypt(String source, String key){ if(key.length() < 2) return source; else { StringBuffer[] matrix = new StringBuffer[key.length()]; for(int i = 0; i < matrix.length; i++) matrix[i] = new StringBuffer(); int j = 0; for(int i = 0; i < key.length(); i++) { if(source.length() % key.length() != 0 && key.indexOf(Integer.toString(i + 1)) + 1 <= source.length() % key.length()) matrix[i].append(source.substring(j, j + source.length() / key.length() + 1)); else matrix[i].append(source.substring(j, j + source.length() / key.length())); if(source.length() % key.length() != 0 && key.indexOf(Integer.toString(i + 1)) + 1 <= source.length() % key.length()) j += source.length() / key.length() + 1; else j += source.length() / key.length(); } StringBuilder target = new StringBuilder(); int k = 0; for (j = 0; j < source.length() / key.length() + 1; ++j) { for (int i = 0; i < key.length(); i++) { target.append(matrix[Character.getNumericValue(key.charAt(i)) - 1].toString().charAt(j)); if (++k >= source.length()) break; } if (k >= source.length()) break; } return target.toString(); } } } / Рис. 1. Процес кодування тексту / Рис. 2. Текст після декодування Висновок На даній лабораторній роботі я ознайомився з основами класичної техніки шифрування – перестановочними шифрами, також я розробив програмну реалізацію перестановочного шифру що використовує перестановки стовпців.
Антиботан аватар за замовчуванням

24.11.2018 18:11-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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