Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Лабораторна робота № 1
з дисципліни “Криптографічні системи та протоколи”
на тему:
“ Прості методи шифрування тексту ”
Мета роботи: вивчитити постих методів шифрування тексту.
1. Завдання.
Реалізувати програму, що дозволяє шифрувати текстову інформацію за допомогою наступних методів:
метод підстановки з періодами
метод Віженера з блоками
метод Кардано
2. Фрагменти тексту програми.
кодування даних
…
if(ComboBox1->ItemIndex==1)
{ int key_i=1;
for(int i=1;i<=m2.Length();i++)
{ int j=(l_b.Pos(key[key_i])+l_b.Pos(m2[i]))%33;
if(j==0) j=33; m2[i]=l_b[j]; key_i++;
if(key_i > CSpinEdit1->Value) key_i=1; }
Memo1->Text=m2; }
if(ComboBox1->ItemIndex==2)
{ key+=" "; int key_l=0,key_i[10], mkey1[10][10], mkey2[10][10];
for (int j=0;j<10;j++) key_i[j]=0;
int z=1;
while (key.Length()>0)
{ if(key.SubString(z,1)!=" ")
{ key_i[key_l]=StrToInt(key.SubString(1,key.Pos(" ")-1));
key_l++;
z=key.Pos(" ");
key=key.SubString(z+1,key.Length()-z); }
else key=key.SubString(2,key.Length()-1);
z=1; }
for (int i=0;i<key_l;i++)
for (int j=0;j<key_l;j++) mkey1[i][j]=0;
for (int i=0;i<key_l;i++)
mkey1[(key_i[i]-1)%key_l][(key_i[i]-1)/key_l]=1;
for (int r=0;r<4;r++)
{ for (int i=0;i<key_l;i++)
{
AnsiString s="";
for (int j=0;j<key_l;j++)
{ mkey2[i][j]=mkey1[key_l-1-j][i];
s+=IntToStr(mkey1[i][j]); }
Memo2->Lines->Add(s); }
Memo2->Lines->Add("");
for (int i=0;i<key_l;i++)
for (int j=0;j<key_l;j++) mkey1[i][j]=mkey2[i][j]; } }
…
декодування даних
…
if (keytrue())
{ AnsiString m=Memo1->Text, key=Edit1->Text;
if (ComboBox1->ItemIndex==0)
for(int i=1;i<=m.Length();i++) m[i]=l_b[key.Pos(m[i])];
if (ComboBox1->ItemIndex==1)
{ int key_i=1;
for(int i=1;i<=m.Length();i++)
{ int j=(l_b.Pos(key[key_i])-l_b.Pos(m[i]))%33;
if(j==0) j=33; if (j<0) j*=-1;
m[i]=l_b[j]; key_i++;
if(key_i > CSpinEdit1->Value) key_i=1; } }
Memo1->Text=m; }
…
5. Результати роботи
Рисунок 1 – Шифрування даних методом Віженера з блоками
Висновок: На даній лабораторній роботі було засвоєно та реалізовано прості алгоритми для шифрування текстової інформації.