Лабораториялық жұмыс № 1

Криптографиялық алгоритмдер.

Мәліметтерді өңдеу тәсілдеріне қарай алгоритмдер келесі түрге бөлінеді

1. Орын ауыстыру шифрлер

Ақпарат блоктары (байттар, биттер, одан үлкен бірліктер) өздігінен өзгерілмей, бірақта келу реті өзгереді, сыртқы бақлаушға ақпаратты мағнасыз етіп жасайды.

2. Алмастру шифрлер

Бір символ екінші символмен алмастыралады, бірақ хабарламада келу реті сақталад.

Цезарь шифрлау жүйесі

Цезарь шифрын (біралфавиттік ауыстыру) қолданған кезде бастапқы мәтіннің әрбір әрпі сол алфавиттің одап К=3 әріпке тең ығысу аралығында орналасқан әріппен ауыстырылады. Ю.Цезарь2 шифрында (1-кесте) хабардағы латын әліпбиінің бірінші әрпі (А) төртінші (Ц), екіншісі (В) - бесінші (Е), осылайша, ең соңғысы (2) - үшінші (С) әріппен ауыстырылған.

1-кесте - Біралфавиттік ауыстырулар (К=3, m-26)

ABCDEFGHIJKLMNOPQRSTUVWXYZ

DEFGHIJKLMNOPQRSTUVWXYZABC

Мысалы, Фарнак патшаны жеңгеннен кейін өзінің досы Аминтийге Цезарьдің жіберген ҮНQL ҮLGL ҮLFL (Келдім, көрдім, жеңдім) деген жолдауы осы әдіспен шифрланғаннан кейін мынадай түрде жазылады: ҮЕNІ ҮIDІ VІСІ.

Осыған ұқсас екінші бір шифр: Рим императоры Август хабар жібергенде бірінші әріпті (А) екіншісімен (В), екіншісін (В) - үшіншісімен (С), осылайша, ең соңғысын (2) - бірінші (А) әріппен ауыстырған. Яғни К=1, сонда:

авCDеFGHIJKLMNOPQRSTUVWXYZ

вCDеFGHIJKLMNOPQRSTUVWXYZA

Біралфавиттік ауыстыру жүйесіне қарсы криптоаналитакалық шабуыл символдардың пайда болу жиілігін есептеуден басталады. Содан шифрмәтіндегі әріптердің қайталану жиіліктері алфавиттегі әріптердің қайталану жиілігімен салыстырылады. Шифрмәтінде жоғары жиілікті әріп алфавиттегі қайталану жиілігі жоғары әріппен ауыстырылады. Мәселен, ағылшын мәтінінде ең жиі кездесетін әріп Е (қайталану жиілігі 0,13), одан кейін Т (0,105), А (0,081) және т.с.с., орыс мәтінінде О (0,090), Е (0,072), И (0,062), А (0,062) және т.с.с., ал қазақ мәтінінде А (0,0941), Е (0,0759), Ы (0,0587), Р (0,0578) және т.б. Қазақ тілінің метаалфавиті және ағылшын, қазақ (авторлардың деректеріне сәйкес), орыс әріптерінің қайталану жиілігі бойынша орналасқан тізбесі 2-суретте келтірілген. Шифрмәтіннің ұзындығы өскен сайын шифрлау жүйесінің табысты ашылу мүмкіндігі арта түседі.

Қазақ тілінің метаалфавиті (цифрлар және тыныс белгілері ескерілген әліпбиі):

АӘБВГТДЕЁЖЗИЙКҚЛМНҢОӨПРСТУҰҮХҺЧШЩЪЫЬЭЮЯ

0123456789 "".,?!();:>

Гронсфельд шифры

Гронсфельд шифры деп аталатын бұл күрделі ауыстыру шифры Цезарь шифрының өзгертілген бір түрі болып табылады. Ол үшін негізгі хабар әріптерінің астына сандар түріндегі кілттің цифрлары жазылады. Егер кілт хабардан қысқа (аз) болса, онда кілттің цифрлары қайталана береді. Мысалы, кілт ретінде 2718 санын қолдана отырып ¥ЛЫ ЖІБЕК ЖОЛЫ хабары үшін келесі шифрмәтін алынады:

Хабар Ұ Л Ы Ж І Б Е К Ж О Л Ы

Кілт 2 7 1 8 2 7 1 8 2 7 1 8

Шифрмәтін Ф Р І Н Э З Ж П И Ұ М Б

Хабардың бірінші Ұ әрпін шифрлау үшін кілттің бірінші цифры 2 екенің ескере отырып алфавиттегі Ұ әрпінен бастап екінші әріпті (Ү, Ф), яғни Ф әрпін таңдап алу керек. Әрі қарай шифрлау осылайша жалғаса береді.

Вижинер шифрлау жүйесі

Вижинер3 жүйесі Цезарь шифрлау жүйесіне ұқсайды. Шифрлау кестесі Вижинер кестесі деп аталады. Вижинер кестесі n2 элементтен тұратын квадраттық матрица болып табылады. Бұл жерде n - қолданылатын әліпби символдарының саны. Бірінші қатарда әліпбидің барлық әріптері жазылады. Әрбір келесі қатарда бір әріпке ығастырылады. Осындай әрекетті аяғына дейін қайталаудың нәтижесінде қатар саны бағанның (әліпбидің әріптерінің) санына тең квадрат кесте құрылады. 6-суретте қазақ тіліне арналған Вижинер кестесі көрсетілген. Кестенің екі кірісі бар: негізгі ашық мәтіннің әрпін анықтайтын жоғарғы қатардың символдары және кілттің сол жақтағы шеткі бағаны.

Шифрлау (және кері шифрлау) үшін Вижинер кестесін қолдануға болады. Шифрлауды орындау үшін әріптерден тұратын кілт таңдап алынады. Шифрлау былайша жүргізіледі. Толық кестеден бірінші қатар және бірінші әріптері кілттің әріптеріне сәйкес келетін қатарлар іріктеліп алынады.

Шифрлау былайша жүзеге асырылады: шифрланатын мәтіннің әрбір әрпінің астына кілттің әріптері жазылады; кестенің жоғарғы қатарынан ашық мәтіннің кезекті әрпімен оның астында орналасқан кілттің әрпін байластыратын сызықтардың қиылысқан жерінде тұрған кестенің әрпі табылады; шифрланатын мәтіннің әрпі кестенің осы әрпімен ауыстырылады. Осылайша шифрмәтіннің келесі әрпі табылады. Мысал ретінде "Жерұйық" кілтіне арналған жұмыс матрицасы 7-суретте келтірілген.

Ашық мәтін - "ЕГЕМЕН ҚАЗАҚСТАН ", кілт - "Жерұйық"

а әбвгғдежзийкқлмнңоөпрс т у ұ ү ф х һ ц ч ш щ ъ ы і ь э ю я

Жзийкқлмнңоөпрс т у ұ ү ф х һ ц ч ш щ ъ ы і ь э ю я а әбвгғде

Ежзийкқлмнңоөпрс т у ұ ү ф х һ ц ч ш щ ъ ы і ь э ю я а әбвгғд

Рс т у ұ ү ф х һ ц ч ш щ ъ ы і ь э ю я а әбвгғдежзийкқлмнңоөп

Ұ ү ф х һ ц ч ш щ ъ ы і ь э ю я а әбвгғдежзийкқлмнңоөпрс т у

Йкқлмнңоөпрс т у ұ ү ф х һ ц ч ш щ ъ ы і ь э ю я а әбвгғдежзи

Ы і ь э ю я а әбвгғдежзийкқлмнңоөпрс т у ұ ү ф х һ ц ч ш щ ъ

Қлмнңоөпрс т у ұ ү ф х һ ц ч ш щ ъ ы і ь э ю я а әбвгғдежзийк

Хабар Е г е м е н Қ а з а қ с т а н

Кілт ж е р ұ й ы қ ж е р ұ й ы қ ж

Шифрмәтін м й х я о и ү ж н р э щ ң қ у

7 - сурет - Вижинер кестесінің көмегімен шифрлау

Шифрлайтын кестелер

Жай орын ауыстыру әдісі кестелік шифрлардың ең қарапайым түрі болып табылады. Бұл әдісте кестенің өлшемі кілт міндетін атқарады. Мысалы, КОМПЬЮТЕРЛІК ЖҮЙЕЛЕРДІ ҚОРҒАУ хабарын шифрлау үшін ол кестеге баған-баған бойынша жазылады. 4 қатардан және 7 бағаннан тұратын кестені толтыру нәтижесі 10-суретте көрсетілген.

К | Ь | Р | Ж | Л | І | Ғ
О | Ю | Л | Ү | Е | Қ | А
М | Т | І | Й | Р | О | У
П | Е | К | Е | Д | Р | .

10-сурет – 4 қатардан және 7 бағаннан тұратын кестенің толтырылуы

Шифрмәтінді қалыптастыру үшін кестедегі жазылған мәлімет қатар-қатар бойынша оқылады. Егер шифрмәтінді жеті әріп бойынша топтайтын болсақ, оңда мынадай шифрланған хабар алынады:

КЬРЖЛІҒ ОЮЛҮЕҚА МТІЙРОУ ПЕКЕДР

Шифрды ашу кезінде іс-әрекеттер кері ретпен орындалады.

Сиқырлы квадраттар

Сиқырлы квадрат деп оның клеткаларына әрбір бағанының, әрбір қатарының және әрбір диагоналының қосындысы бірдей сан беретін 1-ден басталатын натурал сандардың тізбегі жазылған квадраттық кестені атайды.

Шифрланатын мәтін сиқырлы квадратқа оның клеткаларының нөмірленуіне сәйкес жазылады. Егер содан кейін қатар-қатар бойынша осындай кестенің құрамын жазып алса, онда бастапқы хабарламаның әріптерінің орнын ауыстыру арқылы жинақталған шифрмәтін алынады.

13-суретте АҚПАРАТТЬІ ҚОРҒАУ мәтінін сиқырлы квадраттың көмегімен шифрлау мысалы көрсетілген. Оң жақтағы кестеде мынадай шифрмәтін алынған: ПҚҒ РҚОТ ЫАТР АУАА

16 | 3 | 2 | 13
5 | 10 | 11 | 8
9 | 6 | 7 | 12
4 | 15 | 14 | 1

. | П | Қ | Ғ
Р | Қ | О | Т
Ы | А | Т | Р
А | У | А | А

ПРАКТИКАЛЫҚ ТАПСЫРМА:

1. Алфавиттің циклдік жылжу әдісімен текстік файлдың шифрлеу мен дешифрлеуді ұймдастыру.

Алфавиттің циклдік жылжу әдісімен хабарламаның жолды шифрлеу мысалын қарастырайық. Келтірілген алгоритмде енізілетін символдық тізбектің әрбір символдың ASCII-коды 3 бірлікке жылжиды, және шығатын символдар тізбегіне жазылады.

Var s1,s2: String; {s1 – алғашқы жол, S2 - шифртекст}

i: Byte;

Begin

Writeln('алғашқы жолды енгізіңіз');

Readln(s1);

{Шифрлеу}

s2:='';

For i:=1 to length(s1) do

Begin

If ord(s1[i])<253 Then

s2:=s2+chr(ord(s1[i])+3)

Else

s2:=s2+chr(ord(s1[i])+3-255)

End;

Writeln('Шифрленген жол - ', s2);

{Дешифрлеу}

s1:='';

For i:=1 to length(s2) do

Begin

If ord(s2[i])<253 Then

s1:=s1+chr(ord(s2[i])-3)

Else

s1:=s1+chr(ord(s2[i])-3+255)

End;

Writeln('Дешифрленген жол - ',s1);

Readln;

End.

2. Алфавиттің циклдік жылжу әдісімен текстік файлдың шифрлеу мен дешифрлеуді ұйымдастыру. Жылжу сандық кілт негізінде орындалу керек (Гронсфельд шифр)

3. Жоғарыда берілген рандомирленген алфавит көмегімен текстік файлдың шифрлеу мен дешифрлеуді ұйымдастыру.

4. Көптік алмастыруымен (жоғарыда көрсетілген екі немесе одан да көп рандомирленген алфавиттердің қосуды) көмегімен текстік файлдың шифрлеу мен дешифрлеуді ұйымдастыру.

5. Хабарламада символдарды алмастыру әдісімен текстік файлд шифрлеу және дешифрлеуді ұйымдастру.

6. Алғашқы хабарламадағы биттердің инверсиясын қолданып текстік файлдың шифрлеу мен дешифрлеуді ұйымдастыру.

7. Текстік файлды XOR биттік операциясын және кілтті қолданып шифрлеуді және дешифрлеуді ұйымдастыру.