рефератырефератырефератырефератырефератырефератырефератырефераты

рефераты, скачать реферат, современные рефераты, реферат на тему, рефераты бесплатно, банк рефератов, реферат культура, виды рефератов, бесплатные рефераты, экономический реферат

"САМЫЙ БОЛЬШОЙ БАНК РЕФЕРАТОВ"

Портал Рефератов

рефераты
рефераты
рефераты

Шифрувальник та дешифрувальник

Міністерство вищої освіти України

Запорізький Національний Технічний Університет

ПОЯСНЮВАЛЬНА ЗАПИСКА ДО КУРСОВОГО

ПРОЄКТУ З ДИСЦИПЛІНИ “ОП та АМ”

Шифрувальник та дешифрувальник

2003

РЕФЕРАТ

Об'єкт дослідження - вивчення середи програмування TURBO PASCAL 7.0 на прикладі створення програми.

Мета роботи - написати програму, за допомогою якої можливо було б шифрувати інформацію та розпізнавати шифровану.

Програма працює з машинописом англійського тексту, який відповідає стандартам ASCII. Кирилиця програмою розпізнається не чітко, завдяки розходженню її кодування зі стандартами ASCII.

Програма може здійснювати шифровку та розшифровку інформації,яка знаходиться у файлах з розширенням .doc , .txt .

Принцип дії - це зміна коду символу за мировим стандартом завдяки ключу, який має знати лише користувач. Цей числовий ключ і буде зміщенням коду символів. Він не повинен бути кратним 256, тобто він не повинен приймати значення 0, 256, 512 та інші.

Простий і наглядний інтерфейс програми лише полегшує її використання.

ЗМІСТ

Реферат

Варіанти кодування знакогенераторів ПК

Робота з програмою, її інтерфейс

Основні процедури і їх функції

Текст програми

Рисунок 1.1 - Меню програми

Рисунок 1.2 - Файл, який шифрується програмою

Рисунок 1.3 - Шифрування інформації програмою

Рисунок 1.4 - Файл, який містить зашифровану інформацію

Рисунок 1.5 - Розшифровка інформації програмою

Рисунок 1.6 - Файл, який містить розшифровану інформації

Варіанти кодування знакогенераторів ПК

Стандартний знакогенератор ПК ІВМ складається з двох частин: символи з кодами від 0 до 127, утворюючі першу половину символів знакогенератора, будуються за стандартом ASCII і однакові на всіх ІВМ - сумісних ПК. Друга половина символів (коди 128...255) можуть відрізнятись на ПК різного типу. У стандартному знакогенераторі фірми ІВМ символи псевдографіки займають три суміжні області (коди 176...223). Область з кодами від 128 до 175 та від 224 до 239 використовується для розміщення деяких символів національного алфавіту різних європейських мов, а остання (коди 240...255) - для розміщення спеціальних знаків. З розрахунку цього рас положення символів розроблюється подальша множина програм зарубіжного походження.

Стандартний вітчизняний знакогенератор будується на рекомендаціях Міжнародного Консультаційного Комітету По Телеграфії і Телефонії (МККТТ). Розміщення символів у другій половині таблиці цього знакогенератору різко відрізняється від прийнятої фірмою ІВМ, що затрудняє користування зарубіжного програмного забезпечення на вітчизняних ПК. У зв'язку з цим, стандартний (ГОСТовий ) варіант кодування часто замінюється альтернативним, головна риса якого - розміщення символів псевдографіки ні тих же місцях, що й в знакогенераторі ІВМ. Недолік такого знакогенератора міститься у тому, що символи Кирилиці утворюють розривний масив. Саме на цей варіант розраховані всі програми вітчизняного виробництва. Він став фактичним стандартом для зарубіжних фірм, які виготовляють ПК для експорту до нашої країни.

Робота з програмою, її інтерфейс

Для початку роботи з програмою необхідно запустити її, клацнувши два рази лівою кнопкою миші по ярлику KYRSOVIK.BAT . Після цього на екрані монітора з'явиться меню програми (Рисунок 1.1 - Меню програми, с.).

Клавішами “догори” і “донизу” необхідно вибрати дію, яку буде виконувати програма: “Шифровка Информации”, “Расшифровка Информации” або “Выход”.

При виборі “Шифровка Информации” з'явиться запит на параметри, які повинні бути введені (Рисунок 1.3 - Шифрування інформації програмою, с.): файл, інформацію якого буде шифрувати програма (Рисунок 1.2 - Файл, який шифрується програмою, с.), файл, який буде містити шифровану інформацію та код шифрування. Шифрована інформація буде міститись в текстовому файлі (Рисунок 1.4 - Файл, який містить зашифровану інформацію). Після введення цих даних з'явиться заново меню.

При виборі “Расшифровка Информации” з'явиться вікно

(Рисунок 1.5 - Розшифровка інформації програмою, с. ), у якому повинні бути введені файл, інформацію якого потрібно розшифрувати , файл, в який буде поміщена розшифрована інформація (Рисунок 1.6 - Файл, який містить розшифровану інформації) та відповідний код шифрування.

При виборі “Выход” програма завершує свою роботу.

Основні процедури і їх функції

Алгоритм програми складається з роботи двох процедур: процедури шифрування (Zashifr) і дешифрування (Racshifr).

В процедурі Zashifr (сторінки 7, 13) вказується путь розташування (name_otkyda) файла (f), інформацію якого необхідно зашифрувати, та новій файл (f_new) і путь до нього (name_kyda), в який необхідно помістити зашифрований текст .

В строкову змінну (s) заноситься інформація файла, який шифрується, а потім ASCII код кожного символу цієї строкової змінної зміщується в сторону зростання на величину ключа коду (sdvig). Потім в іншу строкову змінну (ss) заносяться всі кодовані символи і ця змінна записується до файлу, який має містити шифрований текст.

В процедурі Racshifr (сторінки 8, 13) навпаки, код строкової змінної (s), в яку було занесено шифровану інформацію, зменшується на величину ключа коду (sdvig). І також інша строкова змінна (ss), яка вже буде містити розшифровану інформацію, поміститься вже у новий файл, який буде містити розкодовану інформацію.

Складання інтерфейсу будується на використанні стандартних модулів CRT і GRAPH середовища компілятора TURBO PASCAL 7.0 .

Стандартне перебування ПК після включення, а також у момент запуску відкомпільованої програми відповідає роботі екрана у текстовому режимі, тому програма ініціалізує графічний режим роботи дисплею адаптера. Після роботи програми ПК вертається в текстовий режим.

Текст програми

Uses CRT,GRAPH;

label a;

var gd,gm,k:integer;

ch:Char;

bool:boolean;

{--------------------------------------}

Procedure Zashifr;

var name_otkyda,name_kyda,s,st,ss:string;

f,f_new:text;

sdvig,i,j:integer;

begin

writeln(' Введите путь к текстовому файлу,');

writeln(' содержимое которого необходимо зашифровать:');

readln(name_otkyda);

assign(f,name_otkyda);

reset(f);

writeln(' Введите путь к текстовому файлу,');

writeln(' содержимое которого будет шифровкой предыдущего:');

readln(name_kyda);

assign(f_new,name_kyda);

rewrite(f_new);

writeln(' Введите сдвиг кода символа:');

readln(sdvig);

writeln(' Результат шифровки данных:');

while not Eof(f) do

begin readln(f,s);

ss:='';

for i:=1 to length(s) do

begin

for j:=0 to 255 do

begin

if j=ord(s[i]) then

begin

st:=CHR(sdvig+j);

ss:=ss+st;

write(st);

end;

end;

end;

writeln;

writeln(f_new,ss);

ss:='';

end;

close(f);

close(f_new);

end;

{--------------------------------------}

Procedure Racshifr;

var name_otkyda,name_kyda,s,st,ss:string;

f,f_new:text;

sdvig,i,j:integer;

begin

writeln(' Введите путь к текстовому файлу,');

writeln(' содержимое которого необходимо расшифровать:');

readln(name_otkyda);

assign(f,name_otkyda);

reset(f);

writeln(' Введите путь к текстовому файлу,');

writeln(' содержимое которого будет расшифровкой предыдущего:');

readln(name_kyda);

assign(f_new,name_kyda);

rewrite(f_new);

writeln(' Введите сдвиг кода символа:');

readln(sdvig);

writeln(' Результат расшифровки данных:');

while not Eof(f) do

begin

readln(f,s);

ss:='';

for i:=1 to length(s) do

begin

for j:=0 to 255 do

begin

if j=ord(s[i]) then

begin

st:=CHR(-sdvig+j);

ss:=ss+st;

write(st);

end;

end;

end;

writeln;

writeln(f_new,ss);

ss:='';

end;

close(f);

close(f_new);

end;

{--------------------------------------}

begin

clrscr;

bool:=false;

gd:=detect;

a: InitGraph(gd,gm,'');

clearDevice;

SetBkColor(9);

Rectangle(200,100,420,150);

SetFillStyle(1,6);

FloodFill(220,120,White);

OutTextXY(235,125,'Шифровка Информации');

Rectangle(200,200,420,250);

SetFillStyle(1,8);

FloodFill(220,220,White);

OutTextXY(225,225,'Расшифровка Информации');

Rectangle(200,300,420,350);

SetFillStyle(1,8);

FloodFill(220,320,White);

OutTextXY(280,325,' Выход');

k:=3;

repeat ch:=readkey;

case ch of

#72:begin

k:=k+1;

if k=4 then k:=1;

case k of

3:begin

Rectangle(200,100,420,150);

SetFillStyle(1,6);

FloodFill(220,120,White);

OutTextXY(235,125,'Шифровка Информации');

Rectangle(200,200,420,250);

SetFillStyle(1,8);

FloodFill(220,220,White);

OutTextXY(225,225,'Расшифровка Информации');

Rectangle(200,300,420,350);

SetFillStyle(1,8);

FloodFill(220,320,White);

OutTextXY(280,325,' Выход');

end;

2:begin

Rectangle(200,100,420,150);

SetFillStyle(1,8);

FloodFill(220,120,White);

OutTextXY(235,125,'Шифровка Информации');

Rectangle(200,200,420,250);

SetFillStyle(1,6);

FloodFill(220,220,White);

OutTextXY(225,225,'Расшифровка Информации');

SetFillStyle(1,8);

FloodFill(220,320,White);

OutTextXY(280,325,' Выход');

end;

1:begin

Rectangle(200,100,420,150);

SetFillStyle(1,8);

FloodFill(220,120,White);

OutTextXY(235,125,'Шифровка Информации');

Rectangle(200,200,420,250);

SetFillStyle(1,8);

FloodFill(220,220,White);

OutTextXY(225,225,'Расшифровка Информации');

SetFillStyle(1,6);

FloodFill(220,320,White);

OutTextXY(280,325,' Выход');

end;

end;

end;

#80:begin

k:=k-1;

if k=0 then k:=3;

case k of

3:begin

Rectangle(200,100,420,150);

SetFillStyle(1,6);

FloodFill(220,120,White);

OutTextXY(235,125,'Шифровка Информации');

Rectangle(200,200,420,250);

SetFillStyle(1,8);

FloodFill(220,220,White);

OutTextXY(225,225,'Расшифровка Информации');

Rectangle(200,300,420,350);

SetFillStyle(1,8);

FloodFill(220,320,White);

OutTextXY(280,325,' Выход');

end;

2:begin

Rectangle(200,100,420,150);

SetFillStyle(1,8);

FloodFill(220,120,White);

OutTextXY(235,125,'Шифровка Информации');

Rectangle(200,200,420,250);

SetFillStyle(1,6);

FloodFill(220,220,White);

OutTextXY(225,225,'Расшифровка Информации');

SetFillStyle(1,8);

FloodFill(220,320,White);

OutTextXY(280,325,' Выход');

end;

1:begin

Rectangle(200,100,420,150);

SetFillStyle(1,8);

FloodFill(220,120,White);

OutTextXY(235,125,'Шифровка Информации');

Rectangle(200,200,420,250);

SetFillStyle(1,8);

FloodFill(220,220,White);

OutTextXY(225,225,'Расшифровка Информации');

SetFillStyle(1,6);

FloodFill(220,320,White);

OutTextXY(280,325,' Выход');

end;

end;

end;

#13:begin

case k of

3:begin

ClearDevice;

CloseGraph;

Zashifr;

readln;

goto a;

end;

2:begin

ClearDevice;

CloseGraph;

RacShifr;

readln;

goto a;

end;

1:begin

ClearDevice;

CloseGraph;

bool:=true;

end;

end;

end;

end;

until bool;

end.

ІЛЮСТРАЦІЇ

Рисунок 1.1 - Меню програми

Рисунок 1.2 - Файл, який шифрується програмою

Рисунок 1.3 - Шифрування інформації програмою

Рисунок 1.4 - Файл, який містить зашифровану інформацію

Рисунок 1.5 - Розшифровка інформації програмою

Рисунок 1.6 - Файл, який містить розшифровану інформації

рефераты
РЕФЕРАТЫ © 2010