Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний університет “Львівська політехніка”
Звіт
до лабораторної роботи №1
З курсу: “Методи і засоби криптологічних перетворень”
на тему: „ Шифр з автоключем”
Львів – 2009
Мета роботи: навчитися за допомогою шифру з автоключем перетворювати відкритий текст в криптотекст і навпаки. Написати програму реалізацїї даного методу шифрування та розшифрування на мові програмування Сі.
Теоретичні відомості
Реалізація перетворення відкритого тексту в криптотекст на ЕОМ:
Текст програми
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void)
{
size_t length;
int i,j,a,b,c,g,l,p,s,d;
char vidtext[100];
char vidtextob[100];
char devidtext[100];
char klychob[3];
char klych[3];
char vidtextplusklych[100];
char chufrtext[100];
char dechufrtext[100];
char dechufrtextob[100];
puts("Vvedit vidkrutuy text:");
gets(vidtext);
puts("Vvedit klych:");
gets(klych);
length=strlen(vidtext);
d=length;
g=0;a=0;
for (i=0;i<d;i++)
{
j=vidtext[i];
if ((j>=65) && (j<=90))
{
vidtextob[g]=vidtext[i];
g++;
}}
length=strlen(klych);
d=length;
for (i=0;i<d;i++)
{
j=klych[i];
if ((j>=65) && (j<=90))
{
klychob[a]=klych[i];
a++;
}}
printf("klychob=");
for(i=0;i<a;i++)
printf("%c",klychob[i]);
printf("\n");
printf("vidtextob=");
for(i=0;i<g;i++)
printf("%c",vidtextob[i]);
printf("\n");
for(i=0; i<a; i++)
vidtextplusklych[i]=klychob[i];
b=a;
for(i=0;i<=(g-a);i++)
{
vidtextplusklych[b]=vidtextob[i];
b++;
}
printf("vidtextplusklych=");
for(i=0;i<g;i++)
printf("%c",vidtextplusklych[i]);
printf("\n");
for(i=0;i<g;i++)
{
l=vidtextob[i]-65;
p=vidtextplusklych[i]-65;
s=l+p+65;
if (s<=90)
{
chufrtext[i]=s;
}
else
{
s=s-90+64;
chufrtext[i]=s;
}
}
printf("chufrtext=");
for(i=0;i<g;i++)
printf("%c",chufrtext[i]);
printf("\n");
printf("Vvedit shufrtext:");
gets(dechufrtext);
length=strlen(dechufrtext);
d=length;
g=0;
for (i=0;i<d;i++)
{
j=dechufrtext[i];
if ((j>=65) && (j<=90))
{
dechufrtextob[g]=dechufrtext[i];
g++;
}}
for(i=0;i<a;i++)
{
l=klychob[i]-65;
p=dechufrtextob[i]-65;
s=p-l+65;
if (s<65)
{
devidtext[i]=90-(64-s);
}
else
{
devidtext[i]=s;
}
}
for (i=a;i<g;i++)
{
l=devidtext[i-a]-65;
p=dechufrtextob[i]-65;
s=p-l+65;
if (s<65)
{
devidtext[i]=90-(64-s);
}
else
{
devidtext[i]=s;
}
}
printf("devidtext=");
for(i=0;i<g;i++)
printf("%c",devidtext[i]);
printf("\n");
system ("PAUSE");
return 0 ;
}
Висновок: під час виконання даної лабораторної роботи, я вивчила шифрування шифром з автоключем. Реалізувавши цей метод програмним способом, я переконалася в правильності результатів виконання програми, звіривши їх з результатами, отриманими при шифруванні відкритого тексту шифром з автоключем без допомоги ПК.