Uploaded by axrorbekotaqoziyev777

Klassik shifrlash algoritmlari

advertisement
Atbash shifrlash
Atbash shifrlash dastlab ibroniy alifbosi uchun ishlatiladigan mono-alfavit
almashtirish shifridir. Bu eng qadimgi ma'lum bo'lgan almashtirish shifrlaridan biri
va juda oddiy. Biroq, uning soddaligi ham uning eng katta xatosidir, chunki u
kalitdan foydalanmaydi. Shuning uchun, Atbash shifrlash bilan shifrlangan ochiq
matnning har bir qismi bir xil shifrlangan matn alifbosidan foydalanadi va shuning
uchun shifrlash algoritmi hammaga ma'lum bo'lganligi sababli osongina buzish
mumkin.
Atbash shifrlash shifrlangan matn alifbosini yaratish uchun oddiy matn
alifbosini o'zgartiradi. Ya'ni, alifboning birinchi harfi alifboning oxirgi harfiga,
ikkinchi harfi oxirgi harfga va hokazo shifrlangan. Asl ibroniy tilida bu "alef" "tav"
va "bet" "shin" deb kodlanganligini anglatadi. Bu erda biz "atbash" shifrini olamiz.
Ibroniy alifbosi uchun biz quyidagi konvertatsiya jadvalini olamiz.
Ibroniy alifbosidagi Atbash shifrlash uchun shifrlangan matn alifbosi
26 harfli lotin alifbosi uchun bizda quyidagi jadvalda keltirilgan shifrlangan
matn alifbosi mavjud.
Atbash shifrlash uchun shifrlangan matn alifbosi
Shifrlash
Har qanday mono-alfavit almashtirish shifrlari singari, agar shifrlangan matn
alifbosi allaqachon yaratilgan bo'lsa, Atbash shifridan foydalangan holda shifrlash
juda oddiy. Biz shunchaki har bir ochiq matn harfining har bir hodisasini jadvalda
ko'rsatilgan tegishli shifrlangan matn harfi bilan almashtiramiz . Demak, “atbash”
ning ochiq matnini olsak, “a” “Z”da, “t” “G”da shifrlangan va hokazo. Shu tarzda
davom etsak, oxirgi shifrlangan matn “ZGYZHS” ekanligini ko'ramiz.
Shifrni ochish
Ushbu shifrning simmetrik tabiati tufayli shifrni ochish jarayoni shifrlash
jarayoni bilan bir xil. Shunday qilib, qabul qiluvchi shifrlangan matnni dekodlashi
uchun birinchi navbatda xabarni shifrlash uchun ishlatilgan bir xil shifrlangan matn
alifbosi yaratilishi kerak. Bunday holda, shifrlangan matn alifbosi faqat
ishlatiladigan alifboga tayanadi va shuning uchun yuqoridagi jadval xabarning
shifrini ochish uchun ham ishlatiladi. Shunday qilib, "XRKSVI" shifrlangan matnni
bilgan holda va foydalaniladigan alifboni standart 26 harfli lotin alifbosi deb
hisoblasak, biz ochiq matnli "shifr" ni olishimiz mumkin.
Muhokama
Atbash shifrlash juda zaif almashtirish shifridir, chunki shifrlashni amalga
oshirish uchun shifrlangan matn alifbosini yaratish uchun maxfiy kalit yo'q.
Shunday qilib, Atbash shifridan foydalangan holda shifrlanganligi ma'lum bo'lgan
shifrlangan matnni hisobga olsak, xabarni ushlab olgan har bir kishi uni osongina
shifrini
ochishi
va
yashirilishi
kerak
bo'lgan
narsani
olishi
mumkin.
Shunga qaramay, u kuzatuvchidan xabarlarni yashirishning juda tez va oddiy usulini
ta'minlaydi va ahamiyatsiz xabarlarni shifrlash uchun muvaffaqiyatli ishlatilishi
mumkin.
Atbash shifrida mavjud bo'lgan yagona xavfsizlik chorasi turli xil ochiq matn
alifbolaridan foydalanishdir. Masalan, oxirida o'nta raqamdan iborat ochiq matn
alifbosidan (ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789) yoki eng
keng tarqalgan tinish belgilariga ega alifbodan foydalaning. Bu ikkala alifbo ham
shifrga biroz ko'proq xavfsizlik qo'shadi, lekin biz ko'rib turganimizdek, bu
usullardan har qanday shifr uchun foydalanish mumkin.
Tinish belgilari, bo'sh joy va 0-9 raqamlarini o'z ichiga olgan alifbo uchun
shifrlangan matn alifbosi.
Pigpen shifrlash
Pigpen shifrlash almashtirish shifrining yana bir namunasidir, lekin har bir
harfni boshqa harf bilan almashtirish o'rniga, harflar belgilar bilan almashtiriladi.
Shifrning qiziqarli tarixi bor: uning asl kelib chiqishi noma'lum bo'lsa-da, u ko'plab
guruhlar tomonidan qo'llanilgan. Eng mashhuri shundaki, bu shifr 18-asrning
maxfiy jamiyati masonlar tomonidan ishlatilgan. Darhaqiqat, ular buni juda tez-tez
ishlatganlar, ko'pincha uni masonik shifr deb atashadi. Biroq, u faqat ular tomonidan
qo'llanilmagan: Konfederatsiya lagerlaridagi ittifoq mahbuslari Amerika fuqarolik
urushi paytida muloqot qilish uchun foydalanganlar.
Shifrlash
Shifrlash jarayoni juda oddiy: har bir harf tegishli belgi bilan almashtiriladi.
Belgilar harflarga quyida ko'rsatilgan tugma yordamida tayinlanadi, bu erda
ko'rsatilgan harf o'rniga tasvirning bir qismi bo'ladi.
Pigpen shifrining kaliti bu oson eslab
qoladigan panjaradir. Harflar ular joylashgan panjara
qismi bilan ifodalanadi.
Shifrni ochish
Shifrni ochish jarayoni shifrlash jarayonining teskarisidir. Xuddi shu kalitdan
(yuqoridagi panjara) foydalanib, siz shifrlangan matnda tasvirlangan tasvirni topasiz
va uni panjaraning ushbu qismi tomonidan berilgan harf bilan almashtirasiz.
Muhokama
Pigpen shifridan masonlar o'z hayotlarining ko'p jabhalarida foydalanganlar
va bugungi kunda ham ko'rilgan eng keng tarqalgan shifrlardan biri qabr toshlarida
uchraydi. Quyida "Pigpen" shifrini aniq ishlatadigan qabr toshining tasviri
keltirilgan.
Chap
tomonda
qabrning
yaqindan tasviri bor, unda ramzlardan
foydalanish aniq ko'rsatilgan.
E'tibor bering, qabr toshining
tepasida masonlar ramzlaridan biri
bo'lgan
kompas
belgisi
mavjud.
Yozuvda shunday o'qiydi: "Tomas
Brierli
1785
yil
16
iyulda
mamlakatga kirdi", bu uning o'sha
kuni
masonlarga
anglatadi.
Pigpen shifrlash belgilari bilan
mozor.
qo'shilganligini
Pigpen shifrining ko'plab variantlari mavjud (hatto yuqoridagi misolda ham
"s" belgisi standart emas). Eng keng tarqalgan o'zgarishlar qatorni panjara, panjara,
X, X dan to'rga, X, panjara, X ga (quyida ko'rsatilganidek) o'zgartirish yoki hatto
harflarni katakchalarga navbatma-navbat joylashtirishni (Assasin's Creed II da
qo'llanganidek) o'z ichiga oladi. .
U
s
h
Ushbu parametr harflarni joylashtirish
b
uchun Grid, X, Grid, X maketlaridan
u
foydalanadi.
o
z
Pigpen shifrini biroz o'zgartirishning yakuniy usuli uchta to'rdan foydalanish
g
va oxirgi o'rinni egallash uchun nuqta yoki bo'sh joydan foydalanishdir. Bunga misol
a
quyida keltirilgan.
r
i
s
h
d
a
h
a
r
f
Yana bir variant, bu safar uchta panjara yordamida. Bo'shliqlar yoki nuqtalar
uchun ishlatilishi mumkin bo'lgan yakuniy belgi mavjud.
Savollar
Ushbu matematik so'zlarning shifrini ochish uchun standart Pigpen shifridan
foydalaning.
Affin shifri - bu monoalfavit almashtirish shifrining yana bir namunasidir. Bu
erda uchraydigan boshqa misollardan biroz farq qiladi, chunki shifrlash jarayoni
sezilarli darajada matematik. Butun jarayon ish moduliga m (ishlatiladigan alifbo
uzunligi) tayanadi . To'g'ri matnli harflar bo'yicha hisob-kitoblarni amalga oshirib,
biz ochiq matnni shifrlaymiz.
Shifrlash jarayoni
Shifrlash jarayonidagi birinchi qadam ochiq matn alifbosidagi har bir harfni
0 dan m -1 oralig'idagi mos keladigan butun songa aylantirishdir . Bu amalga
oshirilganda, har bir harf uchun shifrlash jarayoni tomonidan beriladi
E( x ) = ( ax + b ) mod m
bu erda a va b shifr uchun kalit. Bu shuni anglatadiki, biz ochiq matn harfi
uchun butun son qiymatini a ga ko'paytiramiz va natijaga b qo'shamiz . Nihoyat, biz
ushbu modul m ni olamiz (ya'ni, eritma m ga bo'linganda qoldiqni olamiz yoki biz
bu uzunlikdan kichikroq raqamni olmaguncha alifbo uzunligini olib tashlaymiz).
Misol tariqasida, a = 5, b = 8 kalitlari yordamida ochiq matnli "affin shifr" ni
shifrlaymiz. Birinchidan, biz ochiq matn alifbosidagi har bir harfning butun son
q
i
y
m
26 harfdan iborat alifbo uchun standart qiymatlar. E'tibor bering, biz 1 emas,
a0 dan boshlaymiz.
t
To'g'ri matnli harflarning butun qiymatlari topilganda, keyingi qadam ushbu
i
qiymatlar bo'yicha hisob-kitoblarni amalga oshirishdir. Bunday holda, hisoblash
n
kerak (5x+8). Va nihoyat, barcha javoblarimiz 26-modda hisoblanganligiga ishonch
i
h
o
t
s
o
i
p
l
i
s
q
a = 5, b = 8 bo'lgan affin shifr. Biz harflarning qiymatlarini ishlab chiqamiz,
keyin raqamlarni harflarga qaytarishdan oldin hisob-kitoblarni qilamiz.
Shunday qilib, ishlab chiqarilgan shifrlangan matn "IHHWVC SWFRCP" dir.
Shifrni ochish
Shifrlangan matnni ochishda biz ochiq matnni olish uchun shifrlangan matnda
qarama-qarshi (yoki teskari) funktsiyalarni bajarishimiz kerak. Yana bir bor, birinchi
qadam shifrlangan matn harflarining har birini butun son qiymatlariga aylantirishdir.
Endi har bir butun son bo'yicha quyidagi hisob-kitobni bajarishimiz kerak
D( x ) = c ( x - b ) mod m
Bu erda c - a ning modulli multiplikativ teskarisi . Ya'ni, a x c = 1 mod m ( c
- shunday raqamki, a ni unga ko'paytirsangiz va alifbo uzunligini olib tashlasangiz,
1 ga erishasiz).
Misolimizni davom ettirib, biz a = 5, b = 8 kaliti yordamida "IHHWVC
SWFRCP" shifrlangan matnning shifrini hal qilamiz . 105 = 1 mod 26, 26 x 4 = 104
va 105 - 104 = 1). Endi biz shifrlangan matnning butun qiymatlari bo'yicha teskari
hisoblarni bajarishimiz kerak. Bu holda 21( y - 8) da hisoblash . Yana bir bor, biz
ushbu modul 26 javoblarini olishimiz va nihoyat butun sonlarni ochiq matnli
h
a
r
f
l
a
r
g
a
a = 5, b = 8 kaliti uchun shifrni ochish jarayoni. Biz birinchisining teskarisini
topishimiz kerak edi, bu 21.
Biz "affin shifr" ning ochiq matnini olamiz.
Muhokama
Shifrlash va shifrni ochishning, ayniqsa katta hajmdagi xabarlar uchun, ehtimol
oddiyroq usuli, ochiq matn alifbosining har bir harfida shifrlash jarayonidan
foydalangan holda shifrlangan matn alifbosini yaratishdir. Keyinchalik bu ochiq
m
a
t
n
n
i
n
a = 5, b = 8 kalitli Affin shifri uchun shifrlangan matn alifbosi.
Affin shifri-ning o'ziga xos xususiyatlaridan biri shundaki, barcha kalitlar
ishlamaydi
g
a = 4 va b = 5 kalitini ishlatishda qanday muammo bor?
h
Bu kalit bitta shifrlangan matn harfiga bir nechta ochiq matnli harflar
a
shifrlangan vaziyatni yaratadi (masalan, ikkala “e” va “r” shifrlashdan “V” ga
r
yuqorida). Bu shuni anglatadiki, shifrni ochish haqida gap ketganda, qabul qiluvchi
ochiq matn harflaridan qaysi biri ishlatilganligini bila olmaydi. Shubhasiz, bu Affin
b
shifri-dan foydalanishda katta muammo va kalitni ehtiyotkorlik bilan tanlash juda
i
muhimdir.
r
Xuddi shu muammoga ega bo'lgan boshqa kalitlarni topa olasizmi?
a
Bu muammo a ning multiplikativ teskari moduli mavjud emasligi sababli
yuzaga
keladi m . Ya'ni, 1 modul 26 ni olish uchun 4 ga ko'paytirilishi mumkin
l
bo'lgan
bir nechta raqam mavjud.
o
h
Berilgan m va a uchun teskari mavjudligini tekshirishning tezkor usuli mavjud
i(guruh nazariyasi deb ataladigan ilg'or matematika mavzusiga tayangan holda).
d
a
Modulning teskarisi m ning teskarisi a va m ko‘paytma bo‘lgan taqdirdagina mavjud
bo‘ladi (ya’ni ularning 1 dan boshqa umumiy omili yo‘q). Demak, a = 4 m = 26
bo'lganda ishlamaydi , chunki ularning umumiy koeffitsienti 2 ga teng (2 ta 4, ham
26 ga kiradi), lekin a = 5 ishlaydi, chunki 5 va 26 ko'paytiriladi.
Shuningdek, biz Affin shifri uchun barcha mumkin bo'lgan kalitlarni
hisoblashimiz mumkin. Standart alifboda 26 dan kichik 12 ta raqam mavjud bo'lib,
ular 26 ga ko'paytiriladi va ularning har biri uchun b qiymati uchun 26 ta imkoniyat
mavjud bo'lganligi sababli, bizda Affine uchun jami 12 x 26 = 312 ta mumkin bo'lgan
kalit mavjud. Shifr. Mumkin bo'lgan kalitlarning nisbatan kam soni tufayli (buni
keyinroq xavfsizroq shifrlar bilan solishtiramiz), Affin shifri, ayniqsa, kompyuterlar
asrida, yana qo'pol kuchlar hujumiga moyil bo'lib qoladi va shuning uchun ayniqsa
xavfsiz shifr emas.
Shuni inobatga olgan holda, biz elementlarning tub soniga ega alifboni tanlash
orqali shifrni biroz xavfsizroq qilishimiz mumkin (bundan buyon bizning tub
raqamlarimizdan kichik bo'lgan barcha raqamlar, ta'rifga ko'ra, unga mos keladi).
Shunday qilib, 31 ta elementdan iborat alifbomiz (26 harf, bo'sh joy va 4 tinish
belgisi) bilan biz a uchun 30 ta mumkin bo'lgan qiymatga ega bo'lamiz va har safar
b uchun 26 ta qiymatga egamiz va shuning uchun buning uchun 30 x 26 = 780 ta
mumkin bo'lgan kalit mavjud. alifbo. Garchi bu standart alifboga qaraganda ancha
xavfsiz kalitlar bo'lsa-da, hisoblash quvvati bilan biz bir necha daqiqa ichida qo'pol
kuch hujumini (har qanday kalitni sinab ko'rish) amalga oshirishimiz mumkin.
Affin shifrini moslashtirishning yana bir usuli - bu harflarning raqamlanishini
o'zgartirish. Buni amalga oshirishning eng oddiy usuli (va ehtimol undan ham
kutilgan usul) quyidagi jadvaldagi kabi “a”ni 1, “b”ni 2 va hokazolarni belgilashdir.
Alifbodagi harflarga qiymatlarni belgilashning boshqa usuli. Bu ko'proq
intuitiv bo'lsa-da, boshqa versiyadagi matematika osonroq va juda ko'p afzalliklarga
ega.
Bundan foydalanish harflarga qiymatlarni belgilashning odatiy usuli bilan
solishtirganda aniq boshqacha natijalar beradi, ammo jarayon bir xil.
Aralash alifbo shifrlash
Aralash alifbo shifrlash monoalfavit almashtirish shifrining yana bir misolidir
va uning ishlash printsipi allaqachon duch kelganlar bilan bir xil, faqat bitta usuldan
tashqari. Farqi, yana shifrlangan matn alifbosini qanday yaratishimiz. Biz
hozirgacha koʻrgan barcha boshqa shifrlardan (Atbash, Pigpen, Morse, Shift va
Affine) farqli oʻlaroq, aralash alifbo shifrida kalit sifatida raqam ishlatilmaydi, balki
kalit soʻz yoki parol iborasi ishlatiladi.
Shifrlash
Ushbu shifr yordamida har bir harfning qiymatlari bo'yicha matematik
operatsiyani bajarish yoki oddiygina alifboni almashtirish o'rniga, biz shifrlangan
matn alifbosi uchun tasodifiy tartibni yaratamiz. Quyidagi jadvalda shunday
tasodifiy shifrlangan matn alifbolari ko'rsatilgan.
Shifrlangan matn harflarining tartibi tasodifiy bo'lgan aralash shifrlangan matn
alifbosi.
Shubhasiz, har bir harf shifrlangan matn alifbosida bir marta va faqat bir marta
paydo bo'lishini ta'minlash juda muhim, shuning uchun bitta shifrlangan matn
harfiga ikkita ochiq matnli harf shifrlanmaydi.
Shifrlangan matn alifbosini yaratishda shifrlash jarayoni monoalfavit
almashtirish shifrining boshqa shakllaridan foydalanish bilan bir xil bo'ladi. Ya'ni,
ochiq matnli harfning har bir hodisasi o'sha ochiq matnli harfga tayinlangan
shifrlangan matn harfi bilan almashtiriladi.
Yuqoridagi jadvalda ko'rsatilganidek, shifrlangan matn alifbosi harflarining
mutlaqo tasodifiy tartibini yaratish mumkin bo'lsa-da, bu jo'natuvchidan ham, qabul
qiluvchidan ham 26 ta harfdan iborat tasodifiy qatorni eslab qolishlarini talab qiladi:
oson ish emas! Shu sababli, ko'pgina shifrlarda bo'lgani kabi, ko'pincha kalit so'z
ishlatiladi. Ushbu kalit so'zdan foydalanib, shifrlangan matn alifbosi quyidagicha
hosil bo'ladi: birinchi navbatda kalit so'z har qanday takroriy harflarga e'tibor
bermasdan yoziladi, so'ngra alifboning qolgan harflari alifbo tartibida yoziladi.
Masalan, "mono-alfavit" kalit so'zini oladigan bo'lsak, biz quyidagi jadvalda
ko'rsatilgan alifbolarni olamiz.
"Monoalfavit" kalit so'zi yordamida yaratilgan shifrlangan matn alifbosi. E'tibor
bering, ikkinchi "o" harfi o'tkazib yuborilgan, chunki u allaqachon shifrlangan matn
alifbosida mavjud.
Ushbu misol takroriy harflarga e'tibor bermaslikni ko'rsatadi ("MONO" da
ikkinchi "O" tushirilgan) va quyidagicha, hali paydo bo'lmagan alifboning qolgan
qismi. Bu ham darhol tizimning zaifligini ko'rsatadi: bu misolda "u" "U" ga, "v" "V"
ga shifrlangan va "z" ga qadar. Agar kalit so'zda ochiq matn alifbosi oxiridagi harflar
bo'lmasa, bu muammo yuzaga keladi. Ushbu muammoni hal qilish uchun biz alifbo
oxiridagi harf bilan kalit so'zni tanlashimiz mumkin.
Yuqorida biz shifrlangan matn alifbosini yaratish uchun kalit so'z haqida
gapirgan bo'lsak-da, foydalanilayotgan alifboda ko'rinmaydigan har qanday
belgilarni (masalan, bo'shliqlar yoki tinish belgilarini) olib tashlagan holda kalit so'z
iborasi yoki hatto jumladan ham foydalanishimiz mumkin.
Dekodlash
Ushbu turdagi boshqa shifrlarda bo'lgani kabi, shifrni ochish jarayoni
shifrlash jarayoniga o'xshaydi. Birinchi qadam shifrlash jarayonidagi kabi
shifrlangan matn alifbosini yaratishdir. Keyin biz teskarisini qilamiz: shifrlangan
matn alifbosida shifrlangan matn harfini topamiz va uni mos keladigan ochiq matn
harfi bilan almashtiramiz.
Munozara
Bu erda e'tiborga olish kerak bo'lgan birinchi narsa shundaki, harflardan
foydalangan holda har bir monoalfavit almashtirish shifrlari aralash alifbo shifrining
alohida holatidir. Atbash, siljish va affin shifrlari bu ancha kengroq shifrlar sinfining
holatlaridir. Ularning har biri kalit so'z bo'yicha emas, balki ma'lum bir qoida
bo'yicha shifrlangan matn alifbosini qayta tartiblash usulidir.
Muhokama uchun navbatdagi masala - standart 26 harfli alifbodan
foydalangan holda aralash alifbo shifrining mumkin bo'lgan kalitlari soni. Ba'zi
oddiy matematika buni tushunishga yordam beradi.
Biz birinchi navbatda shifrlangan matn alifbosining birinchi harfini tanlash
uchun 26 ta variant mavjudligini tushunamiz. Endi ikkinchi harf uchun biz birinchi
pozitsiya uchun tanlagan harfdan boshqa har qanday harfdan foydalanishimiz
mumkin, shuning uchun ikkinchi pozitsiya uchun 25 ta variant mavjud. Uchinchi
pozitsiya uchun biz birinchi yoki ikkinchi pozitsiyadagi harfdan tashqari har qanday
harfni tanlashimiz mumkin va shuning uchun bu erda 24 ta variant mavjud. Shunday
qilib, dastlabki uchta o'rin uchun 26 x 25 x 24 ta variant mavjud.
Shu tarzda davom ettirsak, biz tezda ularning 26 tasi borligini aniqlaymiz!
(26-faktorial, bu erda faktorial 26 dan kichik barcha butun sonlarni ko'paytirishni
anglatadi) bu shifr uchun mumkin bo'lgan kalitlar. Bu tashqi ko'rinishi uchun
aldamchi darajada yuqori raqam. Aslida:
26! = 403 291 461 126 605 635 584 000 000
Bu absurd darajada katta raqam. Agar er yuzidagi har bir odam (aytaylik, 8
milliard) soniyada bitta kalitni sinab ko'rsa, har bir mumkin bo'lgan kombinatsiyani
sinab ko'rish uchun hali ham 1,598,536,043 (ya'ni bir yarim milliard) yil kerak
bo'ladi.
Shubhasiz, bunday shifrga qo'pol kuch bilan hujum qilish mumkin emas va
shuning uchun aralash alifbo shifrini juda kuchli shifr deb taxmin qilish mumkin.
Biroq, biz ko'rib turganimizdek, tarix davomida shifr yaratilganda, uni buzishga
harakat qiladigan odamlar bor va har qanday monoalfavit almashtirish shifrini hech
qanday qiyinchiliksiz buzish usuli mavjud.
Download