2-amaliy ish
Mavzu: Bir qiymatli o’rniga qo’yishga asoslangan shifrlar tahlili
Ishdan maqsad: Bir va ko’p qiymatli, o’rin almashtirish, o’rniga qo’yish
haqidagi nazariy va amaliy bilim ko’nikmalarni shakllantirish.
Nazariy qism
Shifrlash algoritmlarining tasniflanishida atroflicha yoritilgan. Unda
kalitlardan foydalanish qoidasiga ko‘ra shifrlar simmetrik va nosimmetrik sinflarga
bo‘linishi ta’kidlanib, agar shifrlash va deshifrlash jarayonlari mos ravishda maxfiy
ma’lumotni jo‘natuvchi va qabul qilib oluvchi tomonidan bitta kalit bilan amalga
oshirilsa, bunday algoritm simmetrik shifrlash sinfiga kirishi ta’riflangan. Agar
shifrlash jarayonida biror akslantirish orqali ochiq ma’lumot alifbosi belgilari
shifrma’lumot alifbosi belgilariga almashtirilsa, bunday akslantirishga asoslangan
shifrlash algoritmi o‘rniga qo‘yishga asoslangan shifrlash sinfiga kiradi. Agar
shifrlash jarayonida biror akslantirish orqali ochiq ma’lumot alifbosi belgilarining
o‘rinlari almashtirilsa, bunday shifrlash algoritmi o‘rin almashtirishga asoslangan
shifrlash sinfiga kiradi. O‘rin almashtirishga asoslangan shifrlash algoritmlarida
ochiq ma’lumotni tashkil etuvchi alifbo belgilarining ma’nosi shifrma’lumotda
ham o‘zgarmasdan qoladi. O‘rniga qo‘yishga asoslangan shifrlash algoritmlarida
shifrma’lumotni tashkil etuvchi alifbo belgilari ma’nosi ochiq ma’lumotni tashkil
etuvchi alifbo belgilarining ma’nosi bilan bir xil bo‘lmaydi. Shifrlash jarayonida
o‘rniga qo‘yish va o‘rin almashtirish akslantirishlarining kombinasiyalaridan
birgalikda foydalanilsa, bunday shifrlash algoritmi kompozision shifrlash sinfiga
kiradi. Umuman olganda, o‘rniga qo‘yishga asoslangan shifrlash algoritmlari
akslantirishlarining matematik modellari ko‘p qiymatli funksiyalar bilan
ifodalansada, amalda bir qiymatli (teskarisi mavjud bo‘lgan, qaytar) funksiyalar
bilan ifodalanuvchi akslantirishlarni qo‘llash qulaylik tug’diradi. Umumiy holda,
o‘rniga qo‘yishga asoslangan shifrlash algoritmlari bir qiymatli va ko‘p qiymatli
shifrlash sinfiga bo‘linadi. Bir qiymatli shifrlash algoritmlarida ochiq ma’lumot
alifbosi belgilarining har biriga shifrma’lumot alifbosining bitta belgisi mos
qo‘yiladi. Ko‘p qiymatli shifrlash algoritmlarida ochiq ma’lumot alifbosi
belgilarining har biriga shifrma’lumot alifbosining ikkita yoki undan ortiq chekli
sondagi belgilari mos qo‘yiladi, ya’ni ochiq ma’lumot alifbosining biror x i
belgisiga shifrma’lumot alifbosining chekli y i1 , y i 2 ,..., yit to‘plamdan olingan biror
yij , 1 j t
belgisi mos qo‘yiladi.
Shifrlash jarayonida ochiq ma’lumot alifbosining biror alohida olingan a i
belgisi har doim shifrma’lumot alifbosining biror fiksirlangan
bj
belgisiga
almashtirilsa, bunday shifrlash algoritmi bir alifboli shifrlash sinfiga kiradi. Agar
shifrlash jarayonining har xil bosqichlarida ochiq ma’lumot alifbosining biror
alohida olingan a i belgisi shifrma’lumot alifbosining har xil b j , bl , ..., bt
belgilariga almashtirilsa, bunday shifrlash algoritmi ko‘p alifboli shifrlash sinfiga
kiradi.
O‘rniga qo‘yishga asoslangan shifrlash algoritmlari, ularning asosini tashkil
etuvchi akslantirishning bir qiymatli yoki ko‘p qiymatligiga ko‘ra, bir qiymatli va
ko‘p qiymatli sinflarga bo‘linadi.
Agar o‘rniga qo‘yishga asoslangan shifrlash algoritmida ochiq ma’lumot
alifbosi belgilarining har biriga
shifrma’lumot alifbosining bitta belgisi mos
qo‘yilsa, bunday algoritm bir qiymatli o‘rniga qo‘yishga asoslangan shifrlash
algoritmi sinfiga kiradi.
Ko‘p qiymatli shifrlash algoritmlarida ochiq ma’lumot alifbosi belgilarining
har biriga shifrma’lumot alifbosining ikki yoki undan ortiq chekli sondagi belgilari
mos qo‘yiladi, ya’ni ochiq ma’lumot alifbosining biror x i belgisiga shifrma’lumot
alifbosining chekli yi1 , yi 2 ,..., yit { y1 , y 2 ,..., y M } to‘plamidan olingan biror yij ,
1 j t , belgisi mos qo‘yiladi
Ko‘p qiymatli shifrlash algoritmlarining apparat-texnik va apparat-dasturiy
ta’minotlari nisbatan samarasiz bo‘lganligi sababli amalda kam qo‘llaniladi.
O‘rniga qo‘yishga asoslangan shifrlash algoritmlari, ularning asosidagi
akslantirishni shifrlash jarayonida bosqichma-bosqich o‘zgarib turishiga ko‘ra bir
alifboli va ko‘p alifboli shifrlash sinflariga bo‘linadi.
Odatda kriptografiyada ma’lumotlarni shifrlashda (deshifrlashda) quydagi
ikki turdagi akslantirishlardan foydaniladi.
Ulardan biri o’rniga qo’yish (substitution) akslantirish bo’lsa, ikkinchisi
o’rin almashish (permutation) akslantirishdir.
O‘rin almashtirish shifrlariga Sezar usuli, Affin tizimidagi Sezar usuli va
Polibiya kvadrati usullarini olish mumkin. Quyida Affin tizimidagi Sezar usuli
haqida to‘liq to‘xtalib o‘tilgan.
Affin kriptotizimlari. Affin kripototizimlari keng tarqalmagan o’rniga
qo’yish usullari sanalib, bir alifboli shifrlash usullariga kiradi. Bu tizimlarga affin
tizimidagi Sezar usuli, ROT13 va Atbash usullari kiradi.
Affin tizimidagi Sezar usulida har bir harfga almashtiriluvchi harflar maxsus
formula bo’yicha aniqlanadi: E(x)=ax+b (modm), bu erda a, b - butun sonlar
bo’lib, kalitlar hisoblanadi, 0≤a, b<m. m – alifbo uzunligi.
Deshifrlash jarayoni quyidagi formula asosida amalga oshiriladi:
D(E(x)) = a-1 (E(x) − b)modm. Bu erda a-1 modm bo’yicha a ga teskari
bo’lgan son.
Lotin alifbosi foydalanilganda u quyidagicha raqamlanadi:
A B C D E F G H I J K L M N O P Q R
0 1 2 3 4 5 6 7 8 9
S
T U V W X Y Z
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
Shifrlash. Ushbu usulda ma’lumotlarni shifrlash uchun “ATTACK AT
DAWN” ochiq matni olinib, kalit sifatida a=3 va b=4 olindi. Alifbo uzunligi
m=26 ga teng. Bu holda shifrlash funksifsining umumiy ko’rinishi quyidagicha
bo’ladi: y = E(x) = (3x + 4)mod26. Yuqoridagi jadvalga asoslanib quyidagini olish
mumkin:
Xabar
A
T
T
A C
0
19
19 0
2
K
A T
10 0
19
D A
W
3
22 13
Shifrlashning umumiy ko’rinishi esa quyidagicha bo’ladi:
0
N
Xabar
A T
T
A C
K
A T
D
A W N
X
0
19 19 0 2
10 0 19 3
0 22 13
3x+4
4
61 61 4 10 34 4 61 13 4 70 43
(3x+4)mod26
Shifr matn
4
9
9
4 10 8
4 9
13 4 18 17
E J
J
E K
E J
N
I
Deshifrlash formulasi D(y)
= a –1(y − b)NodN ga teng
E J J E K
bo’lib, a –1 = 9 , b=4 va
m=26 ga teng bo’ladi.Shifr
matn
I E J
E S
R
N E S
R
4 9 9 4 10 8 4 9 13 4 18
17
Deshifrlashning umumiy ko’rinishi esa :
Shifrmatn
E J
J
E K
Y
4
9
4
9(y-4)
0 45 45 0
54 36 0 45 81 0 126 117
9(y-4)mod26
0 19 19 0
2
Xabar
A T
9
T
I
E J
N
E S
R
10 8
4 9
13 4 18
17
A C
10 0 19 3
0 22
13
K
A W
N
A T
D
Olingan alifbodagi barcha belgilarni shifrlash natijasi quyidagiga teng
bo’ladi.
Xabar
A B C D E F G H I J K L M N O P Q R S T U V WX Y Z
1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2
X
0 1 2 3 4 5 6 7 8 9
(3x+4)
mod26
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
1 1 1 1 2 2
4 7
0 3 6 9 2 5
1 1 1 2 2
2 5 8
1 4 7 0 3
1 1 1 2 2
0 3 6 9
2 5 8 1 4
1
Shifr
matn
E H K N Q T W Z C F I
L O R U X A D G J
M P S V Y B
Amaliy qism
Affin shifrlash algoritmining dasturiy ta’minotini ishlab chiqishda Eclipse
IDE for Java Developers - 2020-03 va jdk-14.0.1 obe’ktga mo‘ljallangan
dasturlash tilidan foydalanilgan.
Jdk-14.0.1 ishga tushirish uchun cmd buyrugidan foydalaniladi (pusk va R
teng bosiladi):
2.1-rasm. Cmd buyrug’ini ishga tushirilad
Dastur kodi saqlovchi notepad++, Текстовый документ (.txt) ni joylashgan
joyiga murojat qilinadi. Cmd oynasidagi joriy papkasidan chiqish va yuqoridagi
dastur kodini ishga tushurishimiz uchun cd.. buyrug’i orqali amalga oshiramiz.
2.2-rasm. Cmd oynasi
Keyingi qadamda dastur kodi mavjud bo’lgan papkani aniq manzili kiritiladi
va dir buyrug’i orqali papka tarkibini ko’rish mumkin bo’ladi.
2.3-rasm. dastur kodi mavjud bo’lgan papkani manzili
Dasturni ishga tushirish uchun javac affin.java buyrug’i orqali xatoliklar
mavjudliligi aniqlanadi. Agar xatolik bo’lmasa java affin buyrug’i bilan dasturni
ishga tushuramiz
2.4-rasm. dastur kodini ishga tushirish
Yuqorida ko’rib chiqqan misolni “ATTACK AT DAWN” so’zini shifrlab
ko’ramiz va o’z navbatida a=3, b=4 qiymatlarni insalizatsiya qilib qo’yamiz
2.5-rasm. Shifr ma’lumot
Eclipse IDE for Java Developers - 2020-03 muhitida Affin shifrlash
algoritmi yuqorida ko’rib chiqqan misolni “ATTACK AT DAWN” shifrlab
ko’ramiz va o’z navbatida a=3, b=4 qiymatlarni insalizatsiya qilib qo’yamiz:
2.5-rasm. Dastur kodi
2.6-rasm. Shifrlash va deshifrlash
Ishni bajarilish tartibi va qo’yilgan vazifa
Affin shifrlash algoritmi yordamida kalit sifatida talabaning o‘z ismi
olinib, ochiq matn sifatida esa familya va otasining ismidan foydalangan holda
shifrlansin va qadamma – qadam izohlansin. Shuningdek Delpi, Java, C++ va
C# dasturlash tizimlaridan birida dasturiy ta’minot yaratilsin.
Nazorat savollari
1. O’rin almashtirish shifrlarining umumiy mohiyati keltiring.
2. O’rniga qo’yish shifrlarining umumiy mohiyati keltiring.
3. Bir alfavitli va ko‘p alfavitli shifrlash algoritmlarining farqi nimadan
iborat?
0
You can add this document to your study collection(s)
Sign in Available only to authorized usersYou can add this document to your saved list
Sign in Available only to authorized users(For complaints, use another form )