Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Алгоритмы донаучной криптографии

Автор:   •  Ноябрь 30, 2022  •  Лабораторная работа  •  1,001 Слов (5 Страниц)  •  151 Просмотры

Страница 1 из 5

Министерство науки и высшего образования Российской Федерации

Федеральное государственное бюджетное образовательное учреждение высшего образования

ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)

Кафедра автоматизированных систем управления (АСУ)

АЛГОРИТМЫ ДОНАУЧНОЙ КРИПТОГРАФИИ

Отчет по лабораторной работе №1

По дисциплине

«Информационная безопасность»

Студент гр. 439-4

_______________ В.Н. Верещагина

«___»___________ 2022 г.

Проверил: профессор кафедры АСУ, д.т.н.

_______________ А.Н. Горитов

«___»___________ 2022 г.

Томск 2022

  1. Цель работы

Познакомиться и научиться работать с алгоритмами донаучной криптографии.

  1. Задание на лабораторную работу

Вариант задания № 2. Шифр сдвига.

Напишите программу позволяющую зашифровать и расшифровать сообщения с помощью шифра сдвига. Входные и выходные данные запишите в файл типа .txt

  1. Описание алгоритма шифрования

Шифр сдвига - это вид шифра подстановки, в котором каждый символ в открытом тексте заменяется символом, находящимся на некотором постоянном числе позиций левее или правее него в алфавите.

Алгоритм:

Мы считываем каждую букву из исходного файла и сдвигаем ее на (исходная буква + K ) mod 26, где K – ключ сдвига и записываем в выходной файл.

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

#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;

...

Скачать:   txt (5.3 Kb)   pdf (142.1 Kb)   docx (25.1 Kb)  
Продолжить читать еще 4 страниц(ы) »
Доступно только на Essays.club