Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки
Національний університет «Львівська політехніка»
Кафедра ЕОМ
/
Звіт
до лабораторної роботи № 1
з дисципліни: “ Захист інформації в комп’ютерних системах ”
на тему: Шифр моноалфавітної заміни (шифр Цезаря)
Варіант - 6
Львів – 2017
ШИФР МОНОАЛФАВІТНОЇ ЗАМІНИ (ШИФР ЦЕЗАРЯ)
Мета: ознайомитись з основами класичної техніки шифрування – шифрами моноалфавітної заміни, та типовим прикладом шифрів виду – шифром Цезаря.
ТЕОРИТИЧНІ ВІДОМОСТІ:
При використанні моноалфавітної заміни окремі букви відкритого тексту заміняються іншими буквами або числами або якимись іншими символами. Якщо відкритий текст розглядається як послідовність бітів, то підстановка зводиться до заміни заданих послідовностей бітів відкритого тексту заданими послідовностями бітів шифрованого тексту.
Найдавнішим і найпростішим з відомих підстановочних шифрів є шифр, що використовувався Юлієм Цезарем. У шифрі Цезаря кожна буква алфавіту замінюється буквою, що перебуває на три позиції далі в цьому ж алфавіті.
Якщо відомо, що певний текст був шифрований за допомогою шифру Цезаря, то за допомогою простого перебору всіх варіантів розкрити шифр дуже просто - для цього досить перевірити 25 (кількість літер алфавіту) можливих варіантів ключів.
Застосування методу послідовного перебору всіх можливих варіантів виправдано наступними трьома важливими характеристиками даного шифру.
1. Відомі алгоритми шифрування й дешифрування.
2. Необхідно перебрати всього 25 варіантів.
3. Мова відкритого тексту відома та легко розпізнається.
ЗАВДАННЯ
Розробити програму, що реалізує шифрування вихідного повідомлення за допомогою шифру Цезаря. Повідомлення, що необхідно зашифрувати, має бути задано українською мовою.
В якості ключа шифрування обирається номер студента у списку групи.
1
Г
л
о
в
а
Ю
р
і
й
2
3
48
52
35
33
31
54
45
46
3
9
54
58
41
39
37
60
51
52
4
9
54
58
41
39
37
60
51
52
5
З
с
х
ж
е
ґ
ч
н
о
Пояснення до таблиці:
1-й рядок - фраза для шифрування;
2-й рядок – зміщення літер відносно початку алфавіту;
3-й рядок - номера букв фрази для шифрування, збільшені на 1;
4-й рядок – номер букв фрази врахувавши циклічне зміщення;
5-й рядок - зашифрована фраза
КОД ВИКОНАВЧОЇ ПРОГРАМИ:
Файл(CesarCrypt.java)
import java.util.Scanner;
public class CesarCrypt {
String ukrAlphabet = "АБВГҐДЕЄЖЗИІЇЙКЛМНОПРСТУФХЦЧШЩЬЮЯабвгґдеєжзиіїйклмнопрстуфхцчшщьюя";
//String result = "";
int key = 1;
int number;
// Метод кодування за шифром Цезаря
public String Encrypt(String data)
{
String result = "";
char [] chArr = data.toCharArray();
char [] alpArr = ukrAlphabet.toCharArray();
for (int i = 0; i < chArr.length; i++)
{
number = ukrAlphabet.indexOf(chArr[i]);
if (number != -1)
result += alpArr[(number + key) % (alpArr.length)];
else
result += chArr[i];
}
System.out.println("res "+result);
return result;
}
// Декодування
public String Decrypt(String data)
{
String res="";
char [] chArr = data.toCharArray();
char [] alpArr = ukrAlphabet.toCharArray();
for (int i = 0; i < chArr.length; i++)
{
number = ukrAlphabet.indexOf(chArr[i]);
if (number != -1)
{
number = (ukrAlphabet.length() + number - key) % ukrAlphabet.length();
res+= alpArr[number];
}
else
res += chArr[i];
}
System.out.println("result "+res);
return res;
}
}
ВИСНОВОК:
На даній лабораторній роботі я оволодів навиками створення алгоритму шифрування Цезар. Даний алгоритм створено на мові Java.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!