DataLife Engine / Информатика | Криптографиялық алгоритмдерді практика жүзінде программалау

Информатика | Криптографиялық алгоритмдерді практика жүзінде программалау

[quote]
Мазмұны

Кіріспе……………………………………………………………………………...4
1. Математикалық сипаттама...........................................................................5
1.1 Омофондар жүйесі..................................................................................5
1.2 Гаммалау арқылы шифрлау...................................................................6
1.3 Вижинер кестесі бойынша шифрлау.....................................................7
2. Бақылау мысалының шешуі.........................................................................9
2.1 Мәтіндерді шифрлау...............................................................................9
2.2 Мәтіндерге салыстырмалы энтропиялық анализ..............................10
3. Алгоритм және программа схемасы……………………………………..12
4. Бастапқы мәліметтер……………………………………………………...16
5. Нәтиже……………………………………………………………………..16
Қорытынды………………………………………………………………………17
Әдебиеттер тізімі………………………………………………………………...18
Қосымша 1 Программаның листингі…………………………………………...19


1.Математикалық сипаттама
1.1 Омофондар жүйесі
Шифрға жасалатын шабуылдардың ішіндегі ең қарапайымы бұл шифр сөздегі кездесетін әріптердің кездесу жиідігіне қарай сол тілге сай жиі қолданылатын әріптерді қойып шығу. Бұл шабуылға қарсы қолданылатын ең қарапайым әдіс омофондар жүйесінде жүзеге асқан. Біралфавитті болып табылатын бұл шифрда бастапқы хабарламаның әріптері бірнеше ауыстыруға ие. Олардың саны әріптің тілде қолдану жиілігіне тура пропорционал. Мысалы, ағылшынның Е әрпі үшін L әрпінің әрбір қойылымына 3 ауыстыру, J әрпінің әрбір қойылымына 123 ауыстыруы бар. Бастапқы хабарламаның әрпін шифрлай отырып, біз оның ауыстрымдарының бірін кездейсоқ түрде аламыз. Сондықтан шифрлау алгоритмі функция болып табылмайды.
Ауыстырулар (омофон деп аталады) 000 ден 999 дейінгі үш таңбалы сандармен берілуі мүмкін. Біз Е үшін осындай номерлердің кездейсоқ 123-ін меншіктейміз. Аз кездесетін әріптер үшін азырақ береміз.
Егер омофондар бірдей әріптің пайда болуы үшін кездейсоқ түрде меншіктелетін болса онда ол криптотексте тең ықтималды болады.
Яғни әріптердің жай жиілігін санау ештеңе бермейді. Бірақта әр тілде жұрнақ, жалғау және сөз тіркестерінің жиілігіне орай шифрды бұзуға болады.

1-кесте. Кең таралған Еуропа тілдерінде әріптердің кездесу жиілігі

1.2 Гаммалау арқылы шифрлау
Бұл әдісте шифрланатын мәтіннің символдары гамма деп аталатын арнаулы тізбектің символдарымен қосылады. Кейде белгілі бір заң бойынша ашық деректер үстіне шифрдың гаммасы беттестіріледі. Сондықтан бұл әдіс гаммалау деп аталады, ал шифрдың гаммасы – белгілі бір алгоритм бойынша ашық деректерді шифрлауға және шифрланған деректерді ашуға арналып жасалған жалған-кездейсоқ тізбек.
Гаммалау арқылы шифрлаудың мәні мынада: жалған-кездейсоқ сандар бергішінің көмегімен шифрдың гаммасын генерациялау және алынған гамманы, бастапқы мәтінге қайтадан кері аударуға болатындай етіп (мысалы, екі модулі бойынша қосу опрациясын пайдалану арқылы) беттестіру.
Мына жағдайды атап өтуіміз керек. Шифрлау алдында ашық деректерді, ұзындығы бірдей, әдетте 64 биттен, Т0 блоктарға бөледі. Шифрдың гамасы осыған ұқсас, ұзындығы Гш блоктарынан тұратын тізбектер түрінде құрылады. Шифрлау теңдеуі мына түрдегі болады: Тш =Гш +Т0 ;
Шифрлауды ашу процесі шифр гаммасын қайтадан генерациялау және осы гамманы шифрланған деректер үстіне салудан тұрады. Шифрлауды ашу теңдеуінің түрі мынадай болады: Т0 =Гш -Тш ;
Осындай әдіспен алынған шифрмәтін, ашуға қиындық тудырады, өйткені оның кілті айнымалы шама. Шифр гаммасы әр шифрланған блок үшін кездейсоқ түрде өзгеріп тұруы қажет. Егер гамма периоды барлық шифрланған мәтін ұзындығынан көп болса және шифрды бұзушыға бастапқы мәтіннің ешқандай бөлігі белгілі болмаса, онда мұндай шифрды тек кілттің барлық варианттарын түгел тікелей таңдау арқылы ғана шешуге болады. Бұл жағдайда шифрдың криптографиялық беріктілігі кілт ұзындығымен анықталады.
Жалғанкездейсоқ сандар генераторы ретінде сызықты конгруэнтті генераторды қолдануға болады.
Бірақ сонымен қатар жалғанкездейсоқ сан жабық кілт болып табылатындықтан, тізбекті жүйеге кіріктірілген генератор арқылы генерациялап, оны файл арқылы басқа каналмен жіберуге болады. Сонда шифрды кері шифрлағанда басқа каналмен алынған шифр кілтімен сондай шифрлау программасын қолданып ашуға болады.
Жалған кездейсоқ сандар тізбегін генерациялау әдістері. Гаммалау әдісімен шифрлағанда кілт есебінде биттердің кездейсоқ қатары пайдаланылады. Бұл қатар екілік түрде берілген (мысалы, А=00000, В=00001, С=00002 және т.с.с.) ашық мәтінмен қосылады. Бұл қосылу екі модулі бойынша биттерді өзара қосу арқылы жүзеге асырылады. Нәтижесінде шифрланған мәтін пайда болады. Күні бұрын болжауға болмайтын ұзындығы үлкен екілік тізбектерді генерациялау классикалық криптографиядағы маңызды проблемалар қатарына жатады. Бұл проблеманы шешу үшін екілік жалғанкездейсоқты тізбектер генераторлары пайдаланылады.
Жалғанкездейсоқ бүтін сандар тізбегін генрециялайтын белгілі процедуралар ішінде ең жиі қолданылатыны сызықты конгруэнтті генератор.
1.3 Вижинер Кестесі бойынша шифрлау
Вижинер жүйесі Цезарь жүйесі жүйесіне ұқсайды. Шифрлау кестесі Вижинер кестесі деп аталады. Вижинер кестесі n2 элементтен тұратын квадраттық матрица болып табылады. Бұл жерде n – қолданылатын әліпби символдарының саны. Бірінші қатарда әліпбидің барлық әріатері жазылса, әрбір келесі қатарды бір әріпке ығыстырылады. Осындай әрекеті аяғына дейін қайталаудың нәтижесінде қатар саны бағанның (әліпбидің әріптерінің) санына тең квадрат кесте құрады. 6-суретте қазақ тіліне арналған Вижинер кестесі көрсетілген. Кестенің екі кірісі бар: негізгі ашық мәтіннің әрпін анықтайтын. Жоғарғы қатардың символдары және кілттің сол жақтағы шеткі бағаны.
Шифрлау (және кері шифрлау) үшін Вижинер кестесін қолдануға болады. Шифрлауды орындау үшін әріптерден тұратын кілт таңдап алынады. Шифрлау былайша жүргізіледі. Толық кестеден бірінші қатар және бірінші әріптері кілттің әріптеріне сәйкес келетін қатарлар іріктеліп алынады.

2-кесте. Вижинер кестесі

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

1-сурет. Жұмыс матрицасы және шифрланған мәтін.

2. Бақылау мысалының шешілуі
2.1 Мәтіндерді шифрлау
Шифрланатын мәтін: Kazakhstan is great country
Вижинер кестесін қолданып мәтінді шифрлау. Бұл жағдайда алдымен шифрланатын мәтіннен барлық бос орындар алынып тасталады. Және белгілі бір кілтсөз таңдап алынады. Мысалыға бұл Kartbayev сөзі болсын. Енді машинада шифрлауды жүзеге асыру үшін қажетті сандық әдісті жасау қажет. Егер жоғарыдағы мысалға математикалық анализ жасайтын болсақ, оның нәтижесінде мына әдіс алынды. Алдымен барлық алфавит әріптері нөмірленеді. Ашық мәтін әріптерінің де нөмірлері анықталады. Сосын шифрланатын мәтінннің әрбір әрпі мынадай қатынас бойынша шифрланған мәтін әрпіне ауыстырылады:
мұндағы K=26, ағылшын алфавитіндегі әріп саны.
Сонда
K A Z A K H S T A N I S G R E A T C O U N T R Y
11 1 26 1 11 8 19 20 1 14 9 19 7 18 5 1 20 3 15 21 14 20 18 25

K A R T B A Y E V …
11 1 18 20 2 1 25 5 22 …


(11+11) MOD 26 =22 V
(1+1) MOD 26 = 2 B

(18+26) MOD 26 = 18 R
(1+20) MOD 26 = 21 U
(11+2) MOD 26 =13 M
(8+1) MOD 26 =9 I
(19+25) MOD 26 = 18 R
(20+5) MOD 26 = 25 Y
(1+22) MOD 26 =23 W
(14+11) MOD 26= 25 Y
(9+1) MOD 26= 10 J
(18+19) MOD 26=11 K
(7+20) MOD 26=1 A
(18+2) MOD 26=20 T
(5+1) MOD 26 =6 F
(1+25) MOD 26=26 Z
(20+5) MOD 26=25 Y
(3+22) MOD 26=25 Y
(15+11) MOD 26=26 Z
(21+1) MOD 26=22 W
(14+18) MOD 26=6 F
(20+20) MOD 26=14 N
(18+2) MOD 26=20 T
(25+1) MOD 26=26 Z

Кері шифрлаудың формуласы мынадай:
Омофондар әдісімен шифрлау. Бұл әдіспен шифрлағанда шифрлау біралфавитті жүргізіледі. Шифрдың негізгі өзегі әрбір шифрлаушы символға бірнеше ауыстырудан келетіндігінде. Біздің жағдайда программалаудың тиімділігін арттырудың мақсатында әрбір символға 10 ауыстырудан берілді. Ал жалпы шифрлау мынадай схемамен жүргізілді.

KAZAKHSTAN (салыстыру) ABCDEFGHIJKLMNOPQRSTUVWXYZ
Егер салыстыру тура болса оның ауыстыруын шифрланған мәтінге қою.

Мысалы, бастапқы шифрдан Kazakhstan сөзін алайық.
A B C D E F G H I J K L M N O P Q R S TU V W X Y Z
9 23 20 13 23 2 9 21 17 25 26 11 1 23 18 7 24 4 10 9 5 14 21 6 23 19
z i s i z u j i i w - тізбегі алынды.

Бұлай шифрлағанда кері шифрлау үшін қарсы жаққа ауыстырулар тізбегі цифрлы эквивалентте жіберіледі. Программада бұл эквивалентті арнайы текстік файлға шығарады.
Гаммалаумен шифрлау Бұл шифрда бастапқы текстке қосып модулдеп бөлу үшін арнайы жалған кездейсоқ тізбек құрылады.
Бұл тізбек бір рет жасалады. Оны кері шифрлау үшін сол тізбекті білу қажет. Ал ол үшін жалғанкездейсоқ тізбекті басқа каналмен жіберуге болады.
Мысалы үшін бастапқы сөзді алайық,
K A Z A K H S T A N
11 1 26 1 11 8 19 20 1 14
оған гаммалар тізбегін басамыз.
12 24 18 13 16 21 17 23 1 16 сәйкес қосып, модтап бөлу арқылы
w y r n a c j q b d шифрмәтін табылды.

2.2 Мәтіндерге салыстырмалы энтропиялық анализ
Алдымен ағылшын алфавиті үшін әріптерге келетін энтропияны көрсетейік.

e0.26
t 0.25
a 0.24
I0.23
O0.22
N0.21
h 0.20
s0.19
r0.18
l0.17
d0.16
m 0.15
u 0.14
c0.13
f0.12
w0.11
y0.10
g0.09
p0.08
b0.07
v0.06
k0.05
x0.04
j0.03
q0.02
z0.01

Бұл энтропия символдардың кездесу жиілігіне орай бөлінген.
Бастапқы мәтін үшін максималды энтропияны табайық.
K A Z A K H S T A N
Hmax=log2m=log210=2.3
ht=pi =1.68
ht
07.01.2019
Вернуться назад