Алгоритмы донаучной криптографии
Автор: llnvs7 • Ноябрь 30, 2022 • Лабораторная работа • 1,001 Слов (5 Страниц) • 146 Просмотры
Министерство науки и высшего образования Российской Федерации
Федеральное государственное бюджетное образовательное учреждение высшего образования
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра автоматизированных систем управления (АСУ)
АЛГОРИТМЫ ДОНАУЧНОЙ КРИПТОГРАФИИ
Отчет по лабораторной работе №1
По дисциплине
«Информационная безопасность»
Студент гр. 439-4
_______________ В.Н. Верещагина
«___»___________ 2022 г.
Проверил: профессор кафедры АСУ, д.т.н.
_______________ А.Н. Горитов
«___»___________ 2022 г.
Томск 2022
Цель работы
Познакомиться и научиться работать с алгоритмами донаучной криптографии.
Задание на лабораторную работу
Вариант задания № 2. Шифр сдвига.
Напишите программу позволяющую зашифровать и расшифровать сообщения с помощью шифра сдвига. Входные и выходные данные запишите в файл типа .txt
Описание алгоритма шифрования
Шифр сдвига - это вид шифра подстановки, в котором каждый символ в открытом тексте заменяется символом, находящимся на некотором постоянном числе позиций левее или правее него в алфавите.
Алгоритм:
Мы считываем каждую букву из исходного файла и сдвигаем ее на (исходная буква + K ) mod 26, где K – ключ сдвига и записываем в выходной файл.
Листинг программы
#include <fstream>
#include <iostream>
#include <Windows.h>
using namespace std;
void CaesarIn(int k)
{
ifstream input("input.txt");
ofstream output("caesarin.txt");
char buff;
int iter;
if (!input.is_open())
cout << "Файл не может быть открыт!\n";
else
{
while (!input.eof()) // пока файл не пуст, считываем из файла по одному символу и выводим на экран
{
buff = input.get(); ////Считываем символ-разделитель, но не выводим.
if (buff == ' ') output << ' ';
if (buff == '\n') output << '\n';
if (buff >= 'A' && buff <= 'Z')
{
buff += (k % 26);
if (buff > 'Z') buff -= 26;
output << buff;
}
if (buff >= 'a' && buff <= 'z')
{
buff += (k % 26);
// cout << "Символ buff += (k % 26): " << buff << endl;
...