Ім'я файлу: ЗІКС2 — копия.docx
Розширення: docx
Розмір: 503кб.
Дата: 25.11.2021
Пов'язані файли:
Практична №1 Романчук Л.Я. КБСТ-12.docx
Коробейко Юлія КІ-24 Комплексна контрольна робота.docx

Міністерство освіти і науки України

Національний університет „Львівська політехніка”

Кафедра СКС


Звіт

з лабораторної роботи № 2

з дисципліни: “Захист інформації в комп’ютерних системах ”

на тему «Перестановочний шифр»

Варіант 14

Виконав: ст.гр. КІ-46 іііііііііКозик А. А.

Прийняв:

Муляревич О. В.

Львів

2020

Мета роботи: ознайомитись з основами класичної техніки шифрування – перестановочний шифр.

Теоретичні відомості

Розглянутий вище метод ґрунтувався на заміщенні символів відкритого тексту різними символами шифрованого тексту. Принципово інший клас перетворень будується на використанні перестановок букв відкритого тексту. Шифри, створені за допомогою перестановок, називають перестановочними шифрами.

Найпростіший з таких шифрів використає перетворення "драбинки", що полягає в тім, що відкритий текст записується уздовж похилих рядків певної довжини ("сходів"), а потім зчитується построчно по горизонталі. Наприклад, щоб шифрувати повідомлення "meet me after the toga party" по методу драбинки зі сходами довжиною 2, запишемо це повідомлення у вигляді



Шифроване повідомлення буде мати такий вигляд.



Такий "шифр" особливої складності для криптоаналізу не представляє. Більше складна схема припускає запис тексту повідомлення в горизонтальні рядки однакової довжини й наступне зчитування тексту стовпець за стовпцем, але не один по одному, а відповідно до деякої перестановки стовпців. Порядок зчитування стовпців при цьому стає ключем алгоритму. Розглянемо наступний приклад.

Ключ:

Відкритий текст:

Шифрований текст: TTNAAPTMTSUOAODWCOIXKNLYPETZ

Простий перестановочный шрифт дуже легко розпізнати, тому що букви в ньому зустрічаються з тією же частотою, що й у відкритому тексті. Наприклад, для тільки що розглянутого способу шифрування з перестановкою стовпців аналіз шифру виконати досить просто - необхідно записати шифрований текст у вигляді матриці й перебрати можливі варіанти перестановок для стовпців. Можна використати також таблиці значень частоти биграмм і триграмм.

Перестановочный шифр можна зробити істотно більше захищеним, виконавши шифрування з використанням перестановок кілька разів. Виявляється, що в цьому випадку застосовану для шифрування перестановку відтворити вже не так просто. Наприклад, якщо попереднє повідомлення шифрувати ще раз за допомогою того ж самого алгоритму, то результат буде наступним.

Ключ:

Відкритий текст:

Шифрований текст:

Щоб наочніше представити те, що ми одержимо в підсумку повторного застосування перестановки, зіставимо кожну букву вихідного відкритого тексту з номером відповідної їй позиції. Наше повідомлення складається з 28 букв, і вихідною послідовністю буде послідовність



Після першої перестановки одержимо послідовність, що усе ще зберігає деяку регулярність структури.



Після другої перестановки виходить наступна послідовність.



Регулярність цієї послідовності вже зовсім не проглядається, тому її криптоанализ буде вимагати значно більших зусиль.

Завдання:

Створити програму, що реалізує довільний перестановочний шифр. Підготувати і захистити звіт, в якому обов’язково навести алгоритм роботи даного перестановочного шифру.

Виконання роботи

Програма написана на мові Java.



Рис. 1. Робота програми

Алгоритм роботи програми



Рис. 2. Алгоритм роботи

Текст програми

package com.lpnu.lab2;

import java.util.Scanner;

public class Encryption {
private Scanner scanner = new Scanner(System.in);

private String message;
private String tempMessage = "";
private String codeMessage = "";
private int messageLength;

private String key;
private int keyLength;
private char[] keyChar = {'1', '2', '3', '4', '5', '6', '7', '8', '9'};

private void input() {
System.out.print("Введіть речення яке потрібно закодувати: ");
message = scanner.nextLine();
messageLength = message.length();
System.out.print("Введіть ключ: ");
key = scanner.nextLine();
keyLength = key.length();
}

private String encryption(String message) {
String resultMessage = "";
for (int i = 0; i < keyLength; i++) {
int index = key.indexOf(keyChar[i]);
for (int j = index; j < messageLength; j += keyLength) {
resultMessage += message.charAt(j);
}
}
return resultMessage;
}

public void run() {
input();
tempMessage = encryption(message);
codeMessage = encryption(tempMessage);
System.out.print("Закодоване речення: ");
System.out.println(codeMessage);
}
}

Висновок: на цій лабораторній роботі я навчився створювати програму, що реалізує перестановочний шифр.
скачати

© Усі права захищені
написати до нас