Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичкаТОЗИ лаб.rtf
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
862 Кб
Скачать
☆

Практикалық ж±мыс №2 т¦раќты периодты транспозиция шифры

Ж±мыс маќсаты: т±раќты периодты транспозиция шифрыныњ ж±мысын ќарастыру.

D – кілттіњ ±зындыѓы. Хабар топтарѓа бµлінеді. Топтардыњ ±зындыѓы D тењ. Алмастыру кілті беріледі. Сол кілт арќылы єр топты ауыстырамыз.

Мысалы:

D=5. Алмастыру кілті 53142. Сонда COMET GEL FLASH хабары з топќа бµлінеді. Єр топ 53142 кілтпен ауыстырылады. Єр топтыњ бірінші символыныњ орнына бесінші символ келеді, екіншініњ орнына ‰шінші .... Сонда криптограмма: TMCEO E LGHAFSL.

Егер ќатар екіден кµп транспозиция ќолданса, онда б±л ќос транспозиция болады. Олардыњ кілттері болады. Сонда ќос транспозицияныњ кілтініњ ±зындыѓы болады.

Транспозиция шифрына мысал ретінде берілген программа листингі:

Program transpozicia;

Uses crt;

Label m1;

Type

Arr=array [1..20] of integer;

Var

Key:arr;

Text:string;

C,k,i:integer;

Begin

Clrscr;

Writeln(‘Vvedite text’);

Read (text);

M1:

Writeln(‘Vvedite period klusha’);

Read (key);

If length(text) mod k<>0 then

Begin

Writeln(‘Vvedite dlinu klusha’);

Goto m1;

End;

Writeln(‘Vvedite klush’);

For i:=1 to k do

Begin

Write (‘k[‘,I,’]=’);

Read (kilt[i]);

End;

C:=0;

Repeat

For i:=1 to k do

Write(text[c+kilt[i]]);

C:=c+k;

Until c=length(text);

Readkey;

End.

Тапсырмалар

  1. Теориялық материалды оқу.

  2. Берілген шифрмен мәтінді шифрлау және керішифрлау.

  3. Берілген программа листигі бойынша блокті сұлбасын сызу.

  4. Шифрдың тұрақтылығына баға беру.

Практикалық ж±мыс №3 виженер шифрыныњ жєне оныњ н¦сќалары

Ж±мыс маќсаты: Виженер шифрыныњ ж±мысын ќарастыру.

Шифрлау кестесі Вижинер кестесі деп аталады. Вижинер кестесі n2 элементтен т±ратын квадрат­тыќ матрица болып табылады. Б±л жерде n – ќолданылатын єліпби символ­дарыныњ саны. Бірінші ќатарда єліпбидіњ барлыќ єріптері жазылады. Єрбір келесі ќатарда бір єріпке ыѓыстырылады. Осындай єрекетті аяѓына дейін ќайталаудыњ нєтижесінде ќатар саны баѓанныњ (єліпби єріптерініњ) санына тењ квадрат кесте ќ±рылады. Кестеніњ екі кірісі бар: негізгі ашыќ мєтінніњ єрпін аныќтайтын жоѓарѓы ќатардыњ символдары жєне кілттіњ сол жаќтаѓы шеткі баѓаны.

Шифрлау (жєне кері шифрлау) ‰шін Вижинер кестесін ќолдануѓа болады. Шифрлауды орындау ‰шін єріптерден т±ратын кілт тањдап алынады. Шифрлау былайша ж‰ргізіледі. Толыќ кестеден бірінші ќатар жєне бірінші єріптері кілттіњ єріптеріне сєйкес келетін ќатарлар іріктеліп алынады.

Шифрлау былайша ж‰зеге асырылады:

Кілт d єріптер жинаѓынан т±рады. Кілт хабардыњ астына ќайталанып жазылады, содан кейін хабар єріпініњ жєне кілт єріпініњ нµмірлері ќосыладыда одан алфавиттіњ модулі алынады. - аѓылшын алфавитіне.

Мысалы: аѓылшын алфавиті

А

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

Y

X

Z

1

2

3

4

5

6

7

8

9

1

0

1

1

1

2

1

3

1

4

1

5

1

6

1

7

1

8

1

9

2

0

2

1

2

2

2

3

2

4

2

5

2

6

COMET деген хабарды WAS кілтімен шифрлаймыз. Сонда криптограмма ZPFBU болады.

Хабар

C

O

M

E

T

Ќайталанатын кілт

W

A

S

W

A

Криптограмма

3+23=26=Z

15+1=16=P

13+19=32mod26=6=F

5+23=28mod26=2=B

20+1=21=U

Егер ќатар екіден кµп Виженер шифры ќолданса, онда б±л ќос Виженер шифры болады. Олардыњ кілттері болады. Криптограмма формуласымен табылады. Сонда ќос транспозицияныњ кілті болады.

Бофор шифры. Бофор шифры Виженер шифрына құсас. Бофор шифрында криптограмма мына формуламен табылады: .

Түрі өзгертілген Бофор шифры. Виженер шифрына құсас. Киптограмма мына формуламен табылады: .

Вернам шифры. Шексіз қайталанбайтын кілтті Виженер шифры Вернам шифры болады. 1,...,26 сандарынан кездей соқ таңдалады.

«Қума кілт» шифры. Виженер шифрында кілт ретінде мағынасы бар мәтін қолданса онда «Қума кілт» шифры болады.

Виженер шифрына мысал ретінде берілген программа листингі:

program vizhiner;

uses crt;

var

str,alf,key,keyc,res,keyc1,keyc2:string;

i,j,d,k,r,pk,ps,pr,l,s,ch,h,pm,chd,chm:integer;

begin

clrscr;

writeln('input alf');

readln(alf);

writeln('input str');

readln(str);

writeln('input key');

readln(key);

l:=length(alf);

k:=length(key);

s:=length(str);

if (s>k) then

begin

chd:=s div k;

chm:=s mod k;

if chd>1 then d:=1;

repeat

insert(key,keyc,k+1);

d:=d+1;

until d>chd;

if chm<>0 then

keyc1:=copy(key,1,chm);

keyc2:=concat(keyc,keyc1);

r:=length(keyc2);

end;

for j:=1 to r do

begin

for i:=1 to l do

if str[j]=alf[i] then ps:=i;

for i:=1 to l do

if keyc2[j]=alf[i] then pk:=i;

pr:=ps+pk;

if pr>l then

begin

pm:=pr-l;

res:=copy(alf,pm,1);

end

else

res:=copy(alf,pr,1);

writeln(res);

end;

end.

Тапсырмалар

  1. Теориялық материалды оқу.

  2. Берілген шифрмен мәтінді шифрлау және керішифрлау.

  3. Берілген программа листигі бойынша блокті сұлбасын сызу.

  4. Шифрдың тұрақтылығына баға беру.