Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
7
Добавлен:
06.06.2024
Размер:
53.25 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное автономное образовательное

учреждение высшего образования

«Омский государственный технический университет»

Радиотехнический факультет

Кафедра «Комплексная защита информации»

Отчет по Практическому занятию № 5

дисциплины «Защита информации в компьютерных системах»

Тема: «Программная реализация методов симметричного шифрования»

Выполнил студент гр.ПИН-201: Салыкин А.И.

Проверил преподаватель:

ст. пр. Горохова В.Ф.

Омск 2022

Содержание

1. Задание 3

  1. Задание

Сформулируйте задание к практическому занятию

Написать программу для шифрования сообщений методом Шифр Цезаря. Реализовать код программы и продемонстрировать результат.

Описание выбранного метода шифрования

Опишите как можно подробнее выбранный метод с математическими выкладками, иллюстрациями, ссылками на источники литературы.

Шифр Цезаря — это вид шифра подстановки, в котором каждый символ в открытом тексте заменяется символом, находящимся на некотором постоянном числе позиций левее или правее него в алфавите. Например, в шифре со сдвигом вправо на 3, А была бы заменена на Г, Б станет Д, и так далее.

Математическая модель

Если сопоставить каждому символу алфавита его порядковый номер (нумеруя с 0), то шифрование и дешифрование можно выразить формулами модульной арифметики:

y = (x + k) mod n

x = (y – k) mod n,

где x — символ открытого текста, y — символ шифрованного текста, n — мощность алфавита, а k — ключ. С точки зрения математики шифр Цезаря является частным случаем аффинного шифра.

Шифр Цезаря называют в честь Юлия Цезаря, который, согласно «Жизни двенадцати цезарей» Светония, использовал его со сдвигом 3, чтобы защищать военные сообщения. Хотя Цезарь был первым зафиксированным человеком, использовавшим эту схему, другие шифры подстановки, как известно, использовались и ранее.

Список литературы

Гай Светоний Транквилл. Жизнь двенадцати цезарей = De vita XII caesarvm. — М.: Издательство «Наука», 1964. — 374 с. — (Литературные памятники).

Kahn D. The Codebreakers (англ.): The Story of Secret Writing — Macmillan, 1967. — 1164 p. — ISBN 978-0-684-83130-5

Singh S. The Code Book, Histoire des codes secrets (англ.): The Science of Secrecy from Ancient Egypt to Quantum Cryptography, De l'Égypte des pharaons à l'ordinateur quantique — NYC: Doubleday, Knopf Doubleday Publishing Group, 1999. — 416 p.

Фомичёв В. М. Дискретная математика и криптология: Курс лекций / под ред. Н. Д. Подуфалов — М.: Диалог-МИФИ, 2013. — 397 с. — ISBN 978-5-86404-185-7

Листинг программы

Приводится исходный код программы с комментариями

import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String input = sc.nextLine(); // ввод с клавиатуры int key = 1; // шаг сдвига при шифровании char[] simvol = new char[input.length()]; // массив символов for (int i = 0; i < input.length(); i++){ if(Character.isLetter(input.charAt(i)) && Character.isUpperCase(input.charAt(i))){ // проверка соответствия символа с буквой и верхним регистром simvol[i] = (char) ((((int)input.charAt(i) - 65 + key) % 26) + 65); // елси совпадает, то сдвигает на key шагов вправо } else if(Character.isLetter(input.charAt(i)) && Character.isLowerCase(input.charAt(i))){ // проверка соответствия символа с буквой и нижним регистром simvol[i] = (char) ((((int)input.charAt(i) - 97 + key) % 26) + 97); // елси совпадает, то сдвигает на key шагов вправо } else { // если символ не является буквой, то просто записываем его simvol[i] = input.charAt(i); } } System.out.println(simvol); } }

Пример реализации

Описание примера в виде скринов работы программы.

7

Соседние файлы в папке Защита информации в КС