Державна служба України з надзвичайних ситуацій
Львівський державний університет безпеки життєдіяльності
Кафедра управління інформаційною безпекою
/
Звіт
з лабораторної роботи № 2
з дисципліни «Основи криптографічного захисту»
на тему:
“Досліджуння шифру Кардана ”
Шифр «Кардана».
Код програми:
#include <iostream>
const int m_size = 6;
using namespace std;
int main()
{
int grid[m_size][m_size] = { { 1,0,1,0,0,0 },
{ 0,0,0,0,0,0 },
{ 1,1,0,0,0,0 },
{ 0,0,1,0,0,0 },
{ 0,0,0,1,1,1 },
{ 0,0,0,0,1,0 } };
char text_matrix[m_size*m_size];
cin >> text_matrix;
int KEY[m_size*m_size];
int size = 0;
//0
int count = 0;
for (int i = 0; i<m_size; i++) {
for (int j = 0; j<m_size; j++) {
if (grid[i][j] == 1) KEY[size++] = count;
count++;
}
}
//90
count = 0;
for (int i = 0; i<m_size; i++) {
for (int j = 0; j<m_size; j++) {
if (grid[m_size - j - 1][i] == 1) KEY[size++] = count;
count++;
}
}
//180
count = 0;
for (int i = 0; i<m_size; i++) {
for (int j = 0; j<m_size; j++) {
if (grid[m_size - i - 1][m_size - j - 1] == 1) KEY[size++] = count;
count++;
}
}
//270
count = 0;
for (int i = 0; i<m_size; i++) {
for (int j = 0; j<m_size; j++) {
if (grid[j][m_size - i - 1] == 1) KEY[size++] = count;
count++;
}
}
cout<< "Matruza suvy" <<endl;
for (int i = 0; i < m_size*m_size; i++) {
cout << KEY[i] << "\t";
if ((i % 6 == 0)&&(i!=0))
cout << endl;
}
cout << endl;
int index = 0;
char result[m_size*m_size];
for (int i = 0; i<m_size*m_size; i++) {
index = KEY[i];
result[index] = text_matrix[i];
}
cout << endl;
cout << "zakodovanui text" << endl;
for (int i = 0; i<m_size*m_size; i++) {
cout << result[i] << "\t";
if ((i % 6 == 0) && (i != 0))
cout << endl;
}
cout << endl;
cout << endl;
index = 0;
char decode[m_size*m_size];
for (int i = 0; i<m_size*m_size; i++) {
index = KEY[i];
decode[i] = result[index];
}
cout << "rozkodovanui text" << endl;
for (int i = 0; i < m_size*m_size; i++) {
cout << decode[i] << "\t";
if ((i % 6 == 0) && (i != 0))
cout << endl;
}
cout << endl;
system("pause");
return 0;
}
/
Рис. 1.Шифр «Кардана»
Висновок: під час виконання даної лабораторної роботи, я ознайомився та проаналізував ще один із видів криптографічного кодування інформації, а саме за допомогою шифру “Кардана”. Код був написаний мовою програмування С++.