Міністерство освіти та науки України
Національний університет “Львівська політехніка”
Звіт
про виконання лабораторної роботи №1
з курсу “Методи та засоби криптологічних перетворень ”
на тему: “Шифр з автоключем ”
Мета роботи: навчитися зашифровувати і зашифровувати текст шифром з автоключем.
Завдання: написати програму що реалізує шифр з авто ключем.
Короткі теоретичні відомості
Текст програми для шифрування тексту
#include<stdio.h>
#define n 15
int A_asciicode[33]= { 224,225,226,227,180,228,229,186,230,231,232,
179,191,233,234,235,236,237,238,239,240,241,
242,243,244,245,246,247,248,249,252,254,255 };
int main()
{
FILE *in,*out,*fkl,*z;
int i,ch,zzz,ch1,ch2,qwer,qwer1;
in=fopen("C:\\str\\d1.txt","r");
fkl=fopen("C:\\str\\kluch.txt","a+");
out=fopen("C:\\str\\d2.txt","w+");
while(1)
{
ch=fgetc(in);
if(feof(in)) break;
if((ch>190&&ch<218)||(ch==252)||(ch>221&&ch<250)||(ch==165)||(ch==180)||
(ch==170)||(ch==186)||(ch==175)||(ch==178)||(ch==179)||(ch==254)||(ch==255))
{
if(ch==165) ch=180;
if(ch==170) ch=186;
if(ch==178) ch=179;
if(ch==175) ch=191;
if(ch>191&&ch<223) ch+=32;
fprintf(fkl,"%c",ch);
fprintf(out,"%c",ch);
}
}
rewind(fkl);
rewind(out);
z=fopen("C:\\str\\d3.txt","wt");
while(1)
{
ch2=fgetc(out);
ch1=fgetc(fkl);
if(feof(out)) break;
i=0;
while(ch2!=A_asciicode[i])
i++;
qwer=i;
i=0;
while(ch1!=A_asciicode[i])
i++;
qwer1=i;
zzz=qwer+qwer1;
if(zzz>32)
zzz-=33;
fprintf(z,"%c",A_asciicode[zzz]);
}
fclose(in);
fclose(out);
fclose(fkl);
fclose(z);
return 0;
}
Текст програми для розшифрування тексту
#include<stdio.h>
#include<math.h>
#define n 15
int A_asciicode[33]= { 224,225,226,227,180,228,229,186,230,231,232,
179,191,233,234,235,236,237,238,239,240,241,
242,243,244,245,246,247,248,249,252,254,255 };
int main()
{
FILE *zasch,*rozsch,*kluch;
int i,ch1,ch2,qwer1,qwer2,zzz;
zasch=fopen("C:\\str\\d3.txt","r");
rozsch=fopen("C:\\str\\pov.txt","w");
kluch=fopen("C:\\str\\kluch.txt","r");
while(1)
{
ch1=fgetc(zasch);
ch2=fgetc(kluch);
if(feof(zasch)) break;
i=0;
while(ch1!=A_asciicode[i])
i++;
qwer1=i;
i=0;
while(ch2!=A_asciicode[i])
i++;
qwer2=i;
zzz=qwer1-qwer2;
if(zzz<0) zzz+=33;
fprintf(rozsch,"%c",A_asciicode[zzz]);
}
return 0;
}
Текст: навчитися зашифровувати і зашифровувати текст шифром з авто ключем
Ключ: ключ
РЕЗУЛЬТАТ 1
юласчтїлзюимзарйїктофайзтдсарйїктофафегюібфїзйцаррдчкнрїрю
РЕЗУЛЬТАТ 2
навчитисязашифровуватиізашифровуватитекстшифромзавтоключем
Висновок: на лабораторній роботі я навчився зашифровувати і розшифровувати текст шифром з авто ключем.