20943

Шифрування та дешифрування даних за допомогою потокових алгоритмів

Лабораторная работа

Информатика, кибернетика и программирование

Програма шифрування інформації з використанням визначених алгоритмів. У якості інформації використовувати копію файлу з розробленою програмою. програма дешифрування інформації (повернення початкового вигляду файла)...

Украинкский

2017-03-13

51.15 KB

2 чел.

Міністерство освіти, науки, молоді та спорту України

Національний технічний Університет “ХПІ”

“ХАРКІВСКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ”

Кафедра “ Обчислювальна техніка та програмування ”

Лабораторна робота №6

по курсу “Захист інформації у комп’ютерних системах та мережах”

 

                                                                                                Виконав:

                                                                                                      ст. гр КІТ 39

 Родін С.І

                                                                                                 Перевірив:

Межерицький С.Г

Харків 2012

Варіант №15

Тема: “Шифрування та дешифрування даних за допомогою

потокових алгоритмів”

Ціль роботи :cтворення програм для шифрування та дешифрування інформації за допомогою шифрів підстановки.

Постановка задачі

Необхідно розробити і налагодити дві програми:

 Програма шифрування інформації з використанням визначених алгоритмів.

 У якості інформації використовувати копію файлу з розробленою програмою.

 програма дешифрування інформації (повернення початкового вигляду файла);

а також оцінити правильність процедури “шифрування – дешифрування” (відсутність зміни результату відносно початкового файлу).

Індивідуальні завдання: алгоритм М

Ця назва дано Кнутом Алгоритм являє собою спосіб об'єднати кілька псевдослучайних потоків, збільшуючи їхню безпеку. Вихід одного генератора використовується для вибору відстає виходу іншого генератора

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

Program1

const

alphabet : string[26] = '0123456789';

type

barray = array [1..100] of byte;

var

b : barray;

N,M,i,j,k : byte;

z : longint;

Procedure WriteB(B:barray);

begin

Inc(Z); Write (Z:3,' : ');

for i:=1 to M do write(alphabet[b[i]]);

writeln;

end;

Procedure SwapB(var B:barray;i,k:byte);

var x : byte;

begin

x:=B[i]; B[i]:=B[k]; B[k]:=x;

end;

Procedure PermuteAll(B:barray;N:byte);

var i,k,j : byte;

begin

WriteB(B);

while (true) do

begin

i:=N;

while (i>0) and (B[i]>=B[i+1]) do i:=i-1;

if i=0 then exit;

for j:=i+1 to N do

if (B[j]>B[i]) then K:=j;

SwapB(B,i,k);

for j:=i+1 to (i+ ((N+1-i) div 2)) do SwapB(B,j,N+i+1-j);

WriteB(B);

end;

end;

begin

readln(N,M);

for i:=1 to M do b[i]:=i;

PermuteAll(B,M);

while (true) do

begin

i:=M;

while (i>0) and (b[i]=N-m+i) do Dec(i);

if i=0 then exit;

Inc(B[i]);

for j:=i+1 to M do B[j]:=B[j-1]+1;

PermuteAll(B,M);

end;

readln;

end.

Результат програми All

Program2

const

alphabet : string[40] = '0123456789';

type

barray = array [1..100] of byte;

var

b : barray;

N,M,i,j,k : byte;

z : longint;

Procedure WriteB(A:barray);

begin

Inc(Z); Write (A:3,' : ');

for i:=1 to M do write(alphabet[b[i]]);

writeln;

end;

Procedure SwapB(var B:barray;i,k:byte);

var x : byte;

begin

x:=B[i]; B[i]:=B[k]; B[k]:=x;

end;

Procedure PermuteONE(B:barray;N:byte);

var i,k,j : byte;

begin

WriteB(B);

while (true) do

begin

i:=N;

while (i>0) and (B[i]>=B[i+1]) do i:=i-1;

if i=0 then exit;

for j:=i+1 to N do

if (B[j]>B[i]) then K:=j;

SwapB(B,i,k);

for j:=i+1 to (i+ ((N+1-i) div 3)) do SwapA(A,j,N+i+2-j);

WriteB(B);

end;

end;

begin

readln(N,M);

for i:=1 to M do b[i]:=i;

PermuteAll(B,M);

while (true) do

begin

i:=M;

while (i>0) and (b[i]=N-m+i) do Dec(i);

if i=0 then exit;

Inc(B[i]);

for j:=i+1 to M do B[j]:=B[j-1]+1;

PermuteONE(B,M);

end;

readln;

end.

Результат програми One

Алгоритм

Сенс полягає в тому, що якщо prngA - дійсно випадково, неможливо нічого дізнатися про prngB (і, слепослідовно, неможливо виконати криптоаналіз). Якщо prngA має такий вигляд, що його криптоаналіз може

бути виконаний тільки, якщо його вихід доступний в свою чергу (тобто, тільки якщо спочатку був виконаний криптоаналіз prngB), а в іншому випадку воно по суті дійсно випадково, то ця комбінація повинна бути

безпечною.

Висновок: за час лабораторної роботи cтворив  програму для шифрування та дешифрування інформації за допомогою шифрів підстановки.


 

А также другие работы, которые могут Вас заинтересовать

35269. Метод Гауса рішення системи лінійних рівнянь складання алгоритму 34.5 KB
  Поставте задачу розв’язання системи лінійних рівнянь методом Гауса. Яка умова застосування методу Гауса. Скільки етапів вирішення системи лінійних рівнянь методом Гауса. Що називають прямим та зворотнім ходом методу Гауса...
35270. Тема. Знаходження інтегралу за формулами трапецій. 181 KB
  h void min {double bhSynI; int ni; cout Vvedite nijnii predel : ; cin ; cout Vvedite verhnii predel b: ; cout Vvedite verhnii predel b: ;; cin b; cout Vvedite n: ; cin n; doublex=new double [n]; doubley=new double [n]; h=b n; S=0; x[0]=; fori=1;i =n1;i {x[i1]=x[0]ih; y[i]=1 pow3x[i]x[i]0.5; S=Sy[i]; I=b nSy[0]y[n] 2; cout I= I; } } .
35271. Тема. Знаходження інтегралу за формулами трапецій. 22.5 KB
  h void min { int n; double bhT ; cout Enter bn n ; cin b n; h=b n; doublex=new double[n]; x[0]=; forint i=0;i =n;i {x[i]=x[0]ih;} doubley= new double [n]; for i=0; i =n; i { y[i]=1 sqrtx[i]x[i]0.
35272. Тема. Обчислення інтегралу по формулі Сімпсона. 26 KB
  Обчислення інтегралу по формулі Сімпсона. Навчитися обчислювати інтеграл по формулі Сімпсона; склаcти алгоритм. Обчислити інтеграл по формулі Сімпсона при заданому значенні 16 include iostrem. Які проста та узагальнена формули Сімпсона Сформулюйте ідею методу Якою повинна бути розбивка відрізку на частини Яка оцінка похибки методу Сімпсона Який ступінь точності методу Який зв’язок формули Сімпсона та НьютонаКотеса .
35273. Тема. Метод Крилова побудови власного багаточлена матриці. 36 KB
  h void min { int klj; double [3][3]b[3][3]y0[3]y1[3]y2[3]y3[3]y4[3]yn1yn2yn3yn4Sum1Sum2Sum3Sum4; double x1x2x3x4d0d1d2d3102030213132; cout Vvedite mtritsy endl; fork=0;k =3;k { forl=0;l =3;l cin b[k][l]; } cout Vvedite nylevou vektor endl; fork=0;k =3;k cin y0[k]; fork=0;k =3;k { forl=0;l =3;l { yn1=b[k][l]y0[l]; Sum1=Sum1yn1; } y1[k]=Sum1; } fork=0;k =3;k { forl=0;l =3;l { yn2=b[k][l]y1[l]; Sum2=Sum2yn2; } y2[k]=Sum2; } fork=0;k =3;k {...
35274. Тема: Масиви. Селективна обробка масивів Ціль роботи: вивчити роботу з масивом як зі складеним типом даних 369 KB
  Відповідно до індивідуального завдання розробити алгоритм ініціалізації масиву селективної обробки масиву. 7 Знайти суму позитивних чисел масиву Контрольні запитання 1.Які типи мови С можна і не можна вказувати як тип при оголошенні масиву 4.У яких випадках розмірність масиву при оголошенні можна не вказувати 5.
35275. Тема: Обробка символьних даних Ціль роботи: вивчити і навчитися використовувати масиви символьних даних. 184 KB
  Обладнання: ПКПО Borlnd C Хід роботи 1. Для роботи з рядками використовувати покажчики на тип chr масиви покажчиків.Підготуватися до захисту лабораторної роботи вивчивши питання по даній темі.
35276. Тема: Використання бібліотечних функцій для роботи із символьними даними Ціль роботи: виробити практичні н. 54 KB
  Лабораторна робота № 24 Тема: Використання бібліотечних функцій для роботи із символьними даними Ціль роботи: виробити практичні навички в написанні програм з використанням бібліотечних функцій для роботи із символьними даними. Обладнання: ПКПО Borlnd C Хід роботи ТБ КОТ 1.Підготуватися до захисту лабораторної роботи вивчивши питання по даній темі.Який заголовний файл необхідний для роботи з бібліотечними функціями обробки символьних даних 2.
35277. Вкладені цикли. Багатомірні масиви. Масиви покажчиків 54.5 KB
  Показати використання різних видів синтаксичних конструкцій включаючи індексні вираження і покажчики на тип елементів масиву для доступу до елементів масиву. Поясните організацію збереження елементів масиву.Як відбувається масштабування при послідовному разіменування покажчика імені масиву у процесі доступу до елементів Які синтаксичні конструкції можна використовувати для доступу до елементів масиву 3.Приведіть загальну формулу для масиву Тип Ім'я [N][M][K] при доступі до заданого елемента Ім'я [i][j][k] і поясните її.