Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний університет “Львівська політехніка”
Кафедра ЗІ
Звіт
до лабораторної роботи №2
З курсу: “Методи і засоби криптологічних перетворень”
на тему: „ Афінні шифри”
Мета роботи: навчитися за допомогою шифру зсуву k-го порядку перетворювати відкритий текст в криптотекст і навпаки. Написати програму реалізацїї даного методу шифрування на мові програмування С++.
Теоретичні відомості
Текст програми
#include <iostream>
# define MaxDig 100
# define kl 4
using namespace std;
int main ()
{char masuv[MaxDig][3];
char a[MaxDig];
char key[kl];
char key_d[kl];
char shufrtext[MaxDig][3];
char vidkrut_text[MaxDig][3];
char alfav[]="abcdefghijklmnopqrstuvwxyz";
int k=3;
int i,l,ii,i1,j;
for(i=0;i<MaxDig;i++)
{a[i]='\0';
for(j=0;j<k;j++)
{masuv[i][j]='\0';
shufrtext[i][j]='\0';
vidkrut_text[i][j]='\0';
}
}
cout<<"enter massiv- ";
cin>>a;
i=strlen(a);
i1=i/k;
ii=0;
for (l=0;l<i1;l++)
{for( j=0;j<k;j++)
{masuv[l][j]=a[ii];
ii++;}
}
for (i=0;i<kl;i++)
{key[i]='\0';
}
cout<<"enter key- ";
cin>>key;
cout<<"shufrtext- ";
int l1,l2,l3;
for (l=0;l<i1;l++)
{
for( j=0;j<k;j++)
{ l1=0;
while (masuv[l][j]!=alfav[l1])
{
l1++;
}
l2=0;
while(key[j]!=alfav[l2])
{
l2++;
}
l3=(l1+l2)%26;
shufrtext[l][j]=alfav[l3];
}}
for (l=0;l<i1;l++)
{for( j=0;j<k;j++)
{cout<<shufrtext[l][j];}
}cout<<"\n";
cout<<"kluch_deshufr- ";
for (i=0;i<kl;i++)
{key_d[i]='\0';
}
for (i=0;i<kl-1;i++)
{ l1=0;
while(key[i]!=alfav[l1])
{l1++;}
key_d[i]=alfav[26-l1];
cout<<key_d[i];
}
cout<<"\ndewufrovan_text- ";
for (l=0;l<i1;l++)
{
for( j=0;j<k;j++)
{ l1=0;
while (shufrtext[l][j]!=alfav[l1])
{
l1++;
}
l2=0;
while(key_d[j]!=alfav[l2])
{
l2++;
}
l3=(l1+l2)%26;
vidkrut_text[l][j]=alfav[l3];
}}
for (l=0;l<i1;l++)
{for( j=0;j<k;j++)
{cout<<vidkrut_text[l][j];}
}cout<<"\n";
system ("pause");
return 0;
}
Результат виконання роботи
Висновок: під час виконання даної лабораторної роботи, я вивчила шифрування шифром зсуву k-го порядку . Реалізувавши цей метод програмним способом, я переконалася в правильності результатів виконання програми, звіривши їх з результатами, отриманими при шифруванні відкритого тексту шифром зсуву k-го порядку без допомоги ПК.