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

МИНИСТЕРСТВО ОБРАЗОВАНИЯ и НАУКИ

КЫРГЫЗСКОЙ РЕСПУБЛИКИ

КЫРГЫЗСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ им. И. РАЗЗАКОВА

ФАКУЛЬТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

КАФЕДРА «ИНФОРМАТИКА И ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА»

Отчет

По защите информации

Лабораторная работа 1

Бишкек 2019

Шифрование с использованием маршрутной перестановки (текст записывается по вертикали снизу вверх в матрицу 4*4б шифрование по горизонтальной змейке)

#include<iostream>

#include<string>

using namespace std;

int main() {

setlocale(0, "");

int ind = 0, i, j, n, a = 0, b = 0, c, kol = 0;

string Im = "здраствуй небо в облаках здарствуй юность в сопогах проподи моя тоска вотон я встречай войска ",

S = "...............",

M [4][4], Rm [100], Im2 [100];

//getline(cin, Im, '.');

n = Im.length();

c = n % 16;

Im.append(S, 0, 16 - c);

n = (n + 16 - c) / 16;

//Шифрование

while (kol < n) {

for (i = 0; i < 4; i++) {

for (j = 3; j >= 0; j--) {

M[j][i] = Im[ind + b];

ind++;

}

}

ind = 0;

for (i = 0; i < 4; i++) {

for (j = 0; j < 4; j++) {

cout << M[i][j];

}

cout << endl;

}

cout << endl;

for (i = 0; i < 4; i++) {

if (a % 2 == 0) {

for (j = 0; j < 4; j++) {

Rm[ind + b] = M[i][j];

cout << Rm[ind + b];

ind++;

}

}

else

{

for (j = 3; j >= 0; j--) {

Rm[ind + b] = M[i][j];

cout << Rm[ind + b];

ind++;

}

}

a++;

}

cout << endl;

ind = 0;

b = b + 16;

kol++;

}

cout << endl;

kol = 0; ind = 0; b = 0;

//Расшифровка

while (kol < n) {

for (i = 0; i < 4; i++) {

if (a % 2 == 0) {

for (j = 0; j < 4; j++) {

M[i][j] = Rm[ind + b];

ind++;

}

}

else

{

for (j = 3; j >= 0; j--) {

M[i][j] = Rm[ind + b];

ind++;

}

}

a++;

}

ind = 0;

for (i = 0; i < 4; i++) {

for (j = 3; j >= 0; j--) {

Im2[ind + b] = M[j][i];

cout << Im2[ind + b];

ind++;

}

}

ind = 0;

b = b + 16;

kol++;

}

cout << endl;

system("pause");

}

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