Защита Информации / зи лб 1
.docxМИНИСТЕРСТВО ОБРАЗОВАНИЯ и НАУКИ
КЫРГЫЗСКОЙ РЕСПУБЛИКИ
КЫРГЫЗСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ им. И. РАЗЗАКОВА
ФАКУЛЬТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ
КАФЕДРА «ИНФОРМАТИКА И ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА»
Отчет
По защите информации
Лабораторная работа 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");
}