Bitiruv malakaviy ish oldi amaliyoti xisoboti
Bitiruv ishining obyekti va predmeti
Download 312.24 Kb.
|
hisobot 4-kurs
- Bu sahifa navigatsiya:
- I-BOB. Kriptografik kalitlarning turlari va tasnifi
Bitiruv ishining obyekti va predmeti. Ushbu bitiruv malakaviy ishining obyekti sifatida dasturlash tillarida yaratilgan RSA shifrlash algaritmi kalitlarni taqsimlash usullari.
Maqsadi va vazifasi. Kriptografik kalitlarni taqsimlash usullarini o‘rganish va samarali yoki kuchli parollarni yartish. Bu porollar va loginlarni RSA oraqali shifrlash va deshifrlash web sahifasini yaratish shu orqali foydalanuvchi shaxsiy ma’lumotlarini xavfsizligini ta’minlashdan iborat. I-BOB. Kriptografik kalitlarning turlari va tasnifi 1.1. Simmetrik kriptografik kalitlar Simmetrik kriptografik algoritmlar Quyida simmetrik kriptotizimlar, shuningdek ularning ikki turi: oqimli va blokli simmetrik shifrlash algoritmlariga to‘xtalib o‘tiladi. Simmetrik shifrlash algoritmlarida ma’lumotlarni shifrlash va rasshifrovkalashda yagona kalitdan foydalaniladi. Ma’lumotlarni shifrlash va rasshifrovkalash jarayonlarini amalga oshirish tartibi foydalanilayotgan tizim xususiyatiga asosan tanlanadi. Simmetrik kriptotizimlarning ishlashi bilan tanishishda quyidagi belgilashlar kiritiladi: − ochiq matn 𝑃𝑃 ni simmetrik kalit 𝐾𝐾 bilan shifrlash: 𝐶𝐶 = (𝑃𝑃,𝐾𝐾); − shifrmatn 𝐶𝐶 ni simmetrik kalit 𝐾𝐾 bilan rasshifrovkalash: 𝑀𝑀 = 𝐷𝐷(𝐶𝐶,𝐾𝐾). Bu yerda, () va 𝐷𝐷() lar mos ravishda simmetrik kriptotizimdagi shifrlash va rasshifrovkalash funksiyalari. Oqimli simmetrik shifrlash algoritmlari. Oqimli simmetrik shifrlash algoritmlari bir martali bloknotga asoslangan, farqli jihati – bardoshligi yetarlicha pastligi va boshqariladigan kalitning mavjudligi. Ya’ni, kichik uzunlikdagi kalitdan ochiq matn uzunligiga teng bo‘lgan 57 ketma-ketlik hosil qilinadi va undan bir martali bloknot sifatida foydalaniladi. Oqimli shifr 𝑛𝑛 bitli kalit 𝐾𝐾 ni qabul qiladi va uni ochiq matnni uzunligiga teng bo‘lgan ketma-ketlik 𝑆𝑆 ga uzaytiradi. Shifrmatn 𝐶𝐶 ketma – ketlik 𝑆𝑆 ochiq matn 𝑃𝑃 bilan 𝑋𝑋𝑋𝑋𝑋𝑋 amali yordamida hosil qilinadi. Bunda ketma-ketlikni qo‘shish bir martali bloknotni qo‘shish kabi amalga oshiriladi. Oqimli shifrni quyidagicha sodda ko‘rinishda yozish mumkin: (𝐾𝐾) = 𝑆𝑆: Bu yerda 𝐾𝐾 kalit, 𝑆𝑆 esa natijaviy ketma-ketlik. Esda saqlash lozimki, bu yerdagi ketma-ketlik shifrmatn emas, balki bir martali bloknotga o‘xshash oddiy qator. Agar berilgan ketma-ketlik 𝑆𝑆 = 𝑠𝑠0, 𝑠𝑠1, 𝑠𝑠2, …, va ochiq matn 𝑃𝑃 = 𝑝𝑝0, 𝑝𝑝1, 𝑝𝑝2, …, berilgan bo‘lsa, XOR amali yordamida shifrmatnning mos bitlari 𝐶𝐶 = 𝑐𝑐0, 𝑐𝑐1, 𝑐𝑐2, …, ni quyidagicha hosil qilish mumkin. 𝑐𝑐0 = 𝑝𝑝0⨁𝑠𝑠0, 𝑐𝑐1 = 𝑝𝑝1⨁𝑠𝑠1, 𝑐𝑐2 = 𝑝𝑝2⨁𝑠𝑠2 , … Shifrmatn 𝐶𝐶 ni rasshifrovkalash uchun, yana ketma-ketlik 𝐶𝐶 dan foydalaniladi: 𝑝𝑝0 = 𝑐𝑐0⨁𝑠𝑠0, 𝑝𝑝1 = 𝑐𝑐1⨁𝑠𝑠1, 𝑝𝑝2 = 𝑐𝑐2⨁𝑠𝑠2 , … Jo‘natuvchi va qabul qiluvchini bir xil oqimli shifrlash algoritmi va kalit 𝐾𝐾 bilan ta’minlash orqali, ikkala tomonda bir xil ketma-ketliklarni hosil qilish mumkin. Biroq, natijaviy shifr kafolatli xavfsizlikka ega bo‘lmaydi va asosiy e’tibor amaliy jihatdan qo‘llashga qaratiladi. A5/1 oqimli shifrlash algoritmi. Ushbu oqimli shifrlash algoritmidan GSM mobil aloqa tizimlarida ma’lumotlarni konfidensialligini ta’minlashda foydalaniladi. Mazkur algoritm algebraik tuzilishga ega bo‘lsada, uni sodda diagramma ko‘rinishda ham tasvirlash imkoniyati mavjud. A5/1 shifrlash algoritmi uchta chiziqli siljitish registrlaridan iborat, ular mos holda 𝑋𝑋, 𝑌𝑌 va 𝑍𝑍 kabi belgilanadi. 𝑋𝑋 registr o‘zida 19 bit (𝑥𝑥0, 𝑥𝑥1, … , 𝑥𝑥18), 𝑌𝑌 registr 22 bit (𝑦𝑦0, 𝑦𝑦1, … , 𝑦𝑦21) va 𝑍𝑍 registr 23 bit (𝑧𝑧0, 𝑧𝑧1, … , 𝑧𝑧22) ma’lumotni saqlaydi. Uchta registrning bunday 58 o‘lchamdagi bitlarni saqlashi bejiz emas. Sababi, chiziqli siljitish registrlari o‘zida jami bo‘lib 64 bitni saqlaydi. A5/1 shifrlash algoritmida foydalaniluvchi kalit 𝐾𝐾 ning uzunligi 64 bitga teng va ushbu kalitdan registrlarni dastlabki to‘ldirish uchun foydalaniladi. So‘ngra oqimli shifrlash algoritmi asosida talab etilgan uzunlikdagi (ochiq matn uzunligiga teng bo‘lgan) ketma-ketliklar generasiyalanadi. Ketmaketliklarni generatsiyalash tartibini o‘rganishdan oldin, registrlar xususidagi ba’zi ma’lumotlar quyida keltirilgan. 𝑋𝑋 siljitish registrida quyidagi amallar ketma-ketligi bajariladi: 𝑡𝑡 = 𝑥𝑥13⨁𝑥𝑥16⨁𝑥𝑥17⨁𝑥𝑥18 𝑖𝑖 = 18,17,16, … ,1 𝑢𝑢𝑢𝑢ℎ𝑢𝑢𝑢𝑢 𝑥𝑥𝑖𝑖 = 𝑥𝑥𝑖𝑖−1 𝑥𝑥0 = 𝑡𝑡 Shunga o‘xshash, 𝑌𝑌 𝑣𝑣𝑣𝑣 𝑍𝑍 registrlar uchun ham quyidagilarni yozish mumkin: 𝑡𝑡 = 𝑦𝑦20⨁𝑦𝑦21 𝑖𝑖 = 21,20,19, … ,1 𝑦𝑦𝑖𝑖 = 𝑦𝑦𝑖𝑖−1 𝑦𝑦0 = 𝑡𝑡 va 𝑡𝑡 = 𝑧𝑧7⨁𝑧𝑧20⨁𝑧𝑧21⨁𝑧𝑧22 𝑖𝑖 = 22,21,20, … ,1 𝑧𝑧𝑖𝑖 = 𝑧𝑧𝑖𝑖−1 𝑧𝑧0 = 𝑡𝑡 Berilgan uchta bit 𝑥𝑥, 𝑦𝑦 va 𝑧𝑧 uchun 𝑚𝑚𝑚𝑚(𝑥𝑥, 𝑦𝑦, 𝑧𝑧) funksiya qiymati eng ko‘p bitga teng bo‘ladi. Masalan, agar 𝑥𝑥, 𝑦𝑦 𝑣𝑣𝑣𝑣 𝑧𝑧 bitlar 0 ga teng bo‘lsa, u holda funksiyaning qiymati 0 ga teng bo‘ladi. Funksiyaga kiruvchi bitlar toq bo‘lgani uchun, funksiya har doim 0 ni yoki 1 ni qaytaradi. Boshqa holatlar bo‘lmaydi. A5/1 shifrida, ketma-ketlikning har bir bitini generatsiyalash uchun quyidagilar bajariladi. Dastlab, fn = (𝑥𝑥8, 𝑦𝑦10, 𝑧𝑧10) funksiya qiymati hisoblanadi. So‘ngra 𝑋𝑋, 𝑌𝑌 va 𝑍𝑍 registrlar quyidagicha sijitiladi (yoki siljitilmaydi): − agar 𝑥𝑥8 = 𝑚𝑚 ga teng bo‘lsa, 𝑋𝑋 siljitiladi; − agar 𝑦𝑦10 = 𝑚𝑚 ga teng bo‘lsa, 𝑌𝑌 siljitiladi; − agar 𝑧𝑧10 = 𝑚𝑚 ga teng bo‘lsa, 𝑍𝑍 siljitiladi. 59 Ketma-ketlikning bir biti 𝑠𝑠 quyidagicha generatsiyalanadi: 𝑠𝑠 = 𝑥𝑥18⨁𝑦𝑦21⨁𝑧𝑧22 Yuqorida keltirilgan ketma-ketlik amallari talab etilguncha takrorlanadi (ochiq matn yoki shifrmatn uzunligiga teng). Agar biror registr siljitilsa, uning to‘liq holati o‘zgaradi. Ketmaketlikning bir bitini hosil qilishda uchta registrdan kamida ikkitasi siljiydi va shuning uchun yuqoridagi ketma-ketlikni davom ettirgan holda yangi bitlar ketma-ketligini hosil qilish mumkin. A5/1 oqimli shifrlash algoritmi murakkab ko‘rinsada, qurilmada amalga oshirilganida yuqori tezlik qayd etiladi. Umumiy holda A5/1 oqimli shifrni rasmdagi kabi ifodalash mumkin. Mazkur holda (𝑥𝑥8, 𝑦𝑦10, 𝑧𝑧10) = (1,1,0) = 1 va bu holatda 𝑋𝑋 * 𝑌𝑌 r egistrlar siljishini ko‘rsatadi. Shuning uchun, 𝑡𝑡 = 𝑥𝑥13⨁𝑥𝑥16⨁𝑥𝑥17⨁𝑥𝑥18 = 0⨁1⨁1⨁1 = 1 𝑖𝑖 = 18,17,16, … ,1 𝑢chun 𝑥𝑥𝑖𝑖 = 𝑥𝑥𝑖𝑖−1 𝑥𝑥0 = 1 Shunga o‘xshash, 𝑌𝑌 registr uchun ham quyidagilarni yozish mumkin: 𝑡𝑡 = 𝑦𝑦20⨁𝑦𝑦21 = 0⨁0 = 0 𝑖𝑖 = 21,20,19, … ,1 𝑢cℎun 𝑦𝑦𝑖𝑖 = 𝑦𝑦𝑖𝑖−1 𝑦𝑦0 = 0 𝑋𝑋 𝑣𝑣𝑣𝑣 𝑌𝑌 registrlar siljiganidan keyingi holat quyidagicha 𝑋𝑋, 𝑌𝑌 va 𝑍𝑍 registrlarining siljiganidan keyingi holati Siljigan holatdan so‘nggi registrlar holatidan generatsiyalangan bir bit 𝑠𝑠 = 𝑥𝑥18⨁𝑦𝑦21⨁𝑧𝑧22 = 1 ⨁ 0 ⨁0 = 1. Shu tartibda talab etilgan bitlar ketma-ketligi generatsiyalanadi. Hisoblash qurilmalari hozirgi kundagi kabi rivojlanmagan vaqtlarda oqimli shifrlash algoritmlari juda ham mashhur bo‘lgan, hozirgi kunda esa ularning o‘rnini simmetrik blokli shifrlar egallamoqda. Biroq, shunday holatlar mavjudki, oqimli shifrlar shubhasiz zarur bo‘ladi. Masalan, real vaqt tizimlaridan biri GSM tarmog‘ida ma’lumotlarni shifrlashda blokli simmetrik shifrlarni qo‘llashning imkoni yo‘q. Sababi, shifrlash uchun zarur bo‘lgan bir blokni (blok uzunligi kamida 64 bit bo‘ladi) ma’lum vaqtda to‘plash talab etiladi. Bu esa so‘zlashuvda to‘xtalishlarga olib keladi. Bundan tashqari, ma’lumotni shifrlab uzatish jarayonida 61 shifrmatnda bo‘lgan o‘zgarishga (tashqi ta’sirlar natijasida) simmetrik oqimli shifrlash bardoshli sanaladi. Masalan, oqimli shifrlashda shifrmatndagi bir bitning o‘zgarishi ochiq matnning ham bir bitining o‘zgarishiga olib keladi. Simmetrik blokli shifrlarda esa bir bitning o‘zgarishi bir blokning (masalan, 64 bit) o‘zgarishiga olib keladi. Bundan tashqari, simmetrik oqimli shifrlash, blokli shifrlarga qaraganda, kichik qurilmalarda amalga oshirilishi mumkin. Blokli simmetrik shifrlash algoritmlari. Takroriy amalga oshiriluvchi blokli shifrlash ochiq matnni cheklangan uzunlikdagi bloklarga ajratadi. Aksariyat blokli simmetrik shifrlarda, shifrmatn ochiq matnni funksiya 𝐹𝐹 ning biror miqdordagi raundlar soni davomida takroran bajarilishi natijasida olinadi. Oldingi raunddan chiqqan natija va kalit 𝐾𝐾 ga asoslangan 𝐹𝐹 funksiya – raund funksiyasi deb nomlanadi. Bunday nomlanishiga asosiy sabab, uni ko‘plab raundlar davomida bajarilishidir. Blokli simmetrik shifrlarni yaratishdan asosiy maqsad – xavfsizlik va samaradorlikga erishish. Xavfsiz yoki samarali bo‘lgan blokli shifrlarni yaratish murakkab muammo emas. Biroq, ham xavfsiz ham samarali bo‘lgan simmetrik blokli shifrlarni yaratish – san’at. Simmetrik blokli shifrlarni yaratishda ko‘plab tarmoqlardan foydalaniladi. Quyidagi tarmoqlar amalda keng qo‘llaniladi: 1. Feystel tarmog‘i. 2. SP (Substitution – Permutation network) tarmoq. 3. Lai-Messey tarmog‘i. Feystel tarmog‘i - aynan bir blokli shifr hisoblanmay, simmetrik blokli shifrlashning umumiy prinsipi. Feystel tarmog‘iga ko‘ra ochiq matn bloki 𝑃𝑃 ikkita teng chap va o‘ng qismlarga bo‘linadi: 𝑃𝑃 = (𝐿𝐿0,0), va har bir raund 𝑖𝑖 = 1,2, … , 𝑛𝑛, uchun yangi chap va o‘ng tomonlar quyidagi qoidaga ko‘ra hisoblanadi: 𝐿𝐿𝑖𝑖 = 𝑅𝑅𝑖𝑖−1 𝑅𝑅𝑖𝑖 = 𝐿𝐿𝑖𝑖−1⨁(𝑅𝑅𝑖𝑖−1,𝐾𝐾𝑖𝑖) Bu yerda, 𝐾𝐾𝑖𝑖 kalit 𝑖𝑖 – raund uchun qismkalit (raund kaliti) hisoblanadi. Qismkalitlar esa o‘z navbatida kalit 𝐾𝐾 dan biror kalitni generatsiyalash algoritmi yordamida hisoblanadi. Yakuniy, shifrmatn bloki 𝐶𝐶 oxirgi raund natijasiga teng bo‘ladi, ya’ni: 62 𝐶𝐶 = (𝐿𝐿𝑛𝑛, 𝑅𝑅𝑛𝑛). Feystel tarmog‘ida rasshifrovkalash XOR amalining “sehrgarligi”ga asoslanadi. Ya’ni, 𝑖𝑖 = 𝑛𝑛, 𝑛𝑛 − 1, … ,1 lar uchun quyidagi tenglik amalga oshiriladi: 𝑅𝑅𝑖𝑖−1 = 𝐿𝐿𝑖𝑖 𝐿𝐿𝑖𝑖−1 = 𝑅𝑅𝑖𝑖⨁(𝑅𝑅𝑖𝑖−1,𝐾𝐾𝑖𝑖) Oxirgi raund natijasi, rasshifrovkalangan matnni beradi: 𝑃𝑃 = (𝐿𝐿0, 𝑅𝑅0). Feystel tarmog‘ida har bir raundda foydalaniluvchi 𝐹𝐹 funksiyasining qaytariluvchi (teskari funksiyasiga ega) bo‘lishi talab etilmaydi. Biroq, olingan har qanday 𝐹𝐹 funksiya to‘liq xavfsiz bo‘la olmaydi. Simmetrik blokli shifrlarga AES, DES, GOST R 28147-89, O‘z Dst 1105:2009, IDEA, Blowfish va h. misol bo‘la oladi. Simmetrik kriptotizimlardagi muammolar. Simmetrik shifrlash tizimlari ma’lumotni shifrlashda va rasshifrovkalashda aynan bir kalitdan foydalanadi. Bu esa tarmoq bo‘ylab shifrlangan ma’lumotni uzatishdan oldin shifrlash kalitini uzatishni taqozo etadi. Boshqacha aytganda, kalitlarni tomonlar orasida xavfsiz uzatish simmetrik kriptotizimlar oldidagi asosiy muammo sanaladi. Bundan tashqari, bir foydalanuvchining, qolganlari bilan ma’lumot almashishida, ularning har biri bilan alohida kalitlarga ega bo‘lishi talab etiladi. Bu esa foydalanuvchiga ko‘p sonli kalitlarni xavfsiz saqlash zaruriyatini keltirib chiqaradi. Simmetrik kriptotizimlarda kalit uzunligi. Ochiq kalitli kriptotizimlar Simmetrik kriptotizimlardagi mavjud muammolardan biri – maxfiy kalitni xavfsiz uzatish va saqlash. Quyida kalitlarni uzatish va xavfsiz saqlash bilan bog‘liq muammolar bartaraf etilgan, asimmetrik yoki ochiq kalitli deb ataluvchi kriptotizimlar xususida so‘z boradi. Ochiq kalitli kriptotizimlarda ma’lumotlarni shifrlash bir kalit bilan amalga oshirilsa (ochiq kalit deb ataladi), uni rasshifrovkalash boshqa bir kalit (shaxsiy kalit deb ataladi) bilan amalga oshiriladi. Shuning uchun, ochiq kalitli kriptotizimlarda simmetrik kriptotizimlarda mavjud bo‘lgan kalitlarni taqsimlash muammosi bartaraf etilgan. Biroq, ochiq kalitli kriptografik tizimlarning ham o‘ziga xos muammolari mavjud. Ochiq kalitli kriptotizimlarni yaratishda “qopqonli” bir tomonlama funksiyalarga asoslaniladi. Bu o‘rinda “bir tomonlama” iborasining ma’nosi – funksiya bir tomonlama osonlik bilan hisoblanadi. Biroq, ushbu funksiyani teskarisini hisoblash juda ham murakkab (ya’ni, hisoblash mumkin emas). Bu yerda “qopqonli” deyilishiga asosiy sabab, hujumchi ochiq axborotdan (masalan, ochiq kalit) shaxsiy axborotni (masalan, shaxsiy kalitni) tiklashda foydalana olmaydi. Mazkur bir tomonlama funksiyalarga misol sifatida faktorlash amalini ko‘rsatish mumkin. Ya’ni, tub bo‘lgan ikkita p va q sonlarni generatsiyalash va 𝑁𝑁 = 𝑝𝑝 ∗ 𝑞𝑞 ni hisoblash oson. Biroq, N soni yetarlicha katta bo‘lganida uni ikkita tub sonning ko‘paytmasi shaklida ifodalash murakkab vazifa va u yuqori hisoblash imkoniyatini talab etadi. 64 Simmetrik kalitli shifrlarda ochiq matn 𝑃𝑃 shifrlansa, shifrmatn 𝐶𝐶 hosil bo‘ladi degan shartli belgilash kiritilgan edi. Ochiq kalitli shifrlash tizimlarida esa xabar 𝑀𝑀 shifrlansa, shifrmatn 𝐶𝐶 hosil bo‘ladi deb shartli belgilash kiritiladi. Ochiq kalitli kriptografik tizimlardan foydalanish uchun, B tomon ochiq kalit va unga mos bo‘lgan shaxsiy kalit juftiga ega bo‘lishi talab etiladi. B tomonning ochiq kaliti kimga ma’lum bo‘lsa, u ma’lumotni shifrlashi mumkin. Shifrlangan xabarni ochish faqat shaxsiy kalit egasi bo‘lgan B tomonga joiz. Modul arifmetikasi. Ochiq kalitli kriptotizimlar, asosan modul arifmetikasiga asoslangani bois, dastlab unga to‘xtalib o‘tiladi. Har qanday butun sonni 𝑚𝑚∈ 𝑧𝑧 ga bo‘lsak, bu songa tayin bir qoldiq to‘g‘ri keladi. Masalan, 5 2 = 2 ∗ 2 + 1 bo‘lib, unda qoldiq 1 ga va butun qism 2 ga teng bo‘ladi. Kriptografiyada 𝑎𝑎 sonni 𝑏𝑏 songa bo‘lgandagi qoldiq 𝑟𝑟 ga teng bo‘lsa, u quyidagicha belgilanadi: 𝑎𝑎 ≡ 𝑟𝑟. Dasturlash tillarida esa 𝑎𝑎%𝑏𝑏 kabi belgilanadi. Shifrlashning simmetrik kriptotizimida shifrlash va rasshifrovka qilish uchun bitta kalitning o’zi ishlatiladi. Demak, shifrlash kalitidan foydalanish xuquqiga ega bo’lgan har qanday odam axborotni rasshifrovka qilishi mumkin. SHu sababli, simmetrik kriptotizimlar mahfiy kalitli kriptotizimlar deb yuritiladi. Ya’ni shifrlash kalitidan faqat axborot atalgan odamgina foydalana olishi mumkin: Download 312.24 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling