MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
MUSTAQIL ISH
Bajardi: 32-guruh talabasi
Radjabbayev Sanjarbek
TOSHKENT – 2024
Mavzu:Simmetrik kriptografik algoritmlar.
Reja:
Simmetrik kriptografik algoritmlar
Ma’lumot butunligini tekshirish simmetrik shifrlashda
Simmetrik kriptotizimlardagi muammolar.
Xulosa
Foydalanilgan adabiyotlar
Simmetrik kriptografik algoritmlar
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, 𝑚𝑚 = 𝑚𝑚𝑚𝑚𝑚𝑚(𝑥𝑥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
𝑋𝑋 𝑣𝑣𝑣𝑣 𝑌𝑌 r
egistrlar siljishini ko‘rsatadi. Shuning uchun,
𝑡𝑡 = 𝑥𝑥13⨁𝑥𝑥16⨁𝑥𝑥17⨁𝑥𝑥18 = 0⨁1⨁1⨁1 = 1
𝑖𝑖 = 18,17,16, … ,1 𝑢𝑢𝑢𝑢ℎ𝑢𝑢𝑢𝑢 𝑥𝑥𝑖𝑖 = 𝑥𝑥𝑖𝑖−1 𝑥𝑥0 = 1
Shunga o‘xshash, 𝑌𝑌 registr uchun ham quyidagilarni yozish mumkin:
𝑡𝑡 = 𝑦𝑦20⨁𝑦𝑦21 = 0⨁0 = 0 𝑖𝑖 = 21,20,19, … ,1
𝑢𝑢𝑢𝑢ℎ𝑢𝑢𝑢𝑢
𝑦𝑦𝑖𝑖 = 𝑦𝑦𝑖𝑖−1 𝑦𝑦0 = 0
𝑋𝑋 𝑣𝑣𝑣𝑣 𝑌𝑌 registrlarsiljiganidan 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. Quyida qoldiq arifmetikasiga oid bir qancha misollar keltirilgan:
− 7𝑚𝑚𝑚𝑚𝑚𝑚3 ≡ (3 ∗ 2)𝑚𝑚𝑚𝑚𝑚𝑚3 + 1𝑚𝑚𝑚𝑚𝑚𝑚3 ≡ 0 + 1 ≡ 1; − 14𝑚𝑚𝑚𝑚𝑚𝑚3 ≡ (3 ∗ 4)𝑚𝑚𝑚𝑚𝑚𝑚3 + 2𝑚𝑚𝑚𝑚𝑚𝑚3 ≡ 0 + 2 ≡ 2; − 2𝑚𝑚𝑚𝑚𝑚𝑚3 ≡ (0 ∗ 3)𝑚𝑚𝑚𝑚𝑚𝑚3 + 2𝑚𝑚𝑚𝑚𝑚𝑚3 ≡ 2; − 5𝑚𝑚𝑚𝑚𝑚𝑚7 ≡ 5; − −2𝑚𝑚𝑚𝑚𝑚𝑚5 ≡ (−2 + 5)𝑚𝑚𝑚𝑚𝑚𝑚5 ≡ 3𝑚𝑚𝑚𝑚𝑚𝑚5 ≡ 3; − −7𝑚𝑚𝑚𝑚𝑚𝑚3 ≡ (−7 + 3)𝑚𝑚𝑚𝑚𝑚𝑚3 ≡ −4𝑚𝑚𝑚𝑚𝑚𝑚3 ≡ (−4 + 3)𝑚𝑚𝑚𝑚𝑚𝑚3 ≡ −1𝑚𝑚𝑚𝑚𝑚𝑚3 ≡ (−1 + 3)𝑚𝑚𝑚𝑚𝑚𝑚3 ≡ 2.
Bundan tashqari ochiq kalitli kriptografiyada sonning modul bo‘yicha teskarisini hisoblash muhim hisoblanadi. Masalan, odatiy matematikada 𝑎𝑎 sonining teskarisi 1 𝑎𝑎 ga teng bo‘lsa, modul arifmetikasida esa 𝑎𝑎 sonining 𝑛𝑛 modul bo‘yicha teskarisi 𝑎𝑎−1𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚 ko‘rinishida belgilanadi. Odatiy matematikada sonni uning teskarisiga ko‘paytmasi birga teng bo‘lgani kabi, modul arifmetikasida ham soning uning teskarisiga moduldagi ko‘paytmasi birga teng bo‘ladi.
Ya’ni, 𝑎𝑎−1𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚 ≡ 𝑏𝑏 bo‘lsa, u holda (𝑎𝑎 ∗ 𝑏𝑏)𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚 ≡ 1 tenglik o‘rinli bo‘ladi.
Izoh. Kriptografiyada modul sifatida (ya’ni, bo‘luvchi) faqat tub sonlardan foydalanish talab etiladi. Ya’ni, amodn tenglikdagi n har doim tub bo‘lishi lozim. 65 Aytaylik, 3 sonining 7 moduldagi teskarisini topish talab etilsin. Ya’ni, 𝑥𝑥 ni topish talab etilsin: 3−1𝑚𝑚𝑚𝑚𝑚𝑚7 ≡ 𝑥𝑥. Yuqoridagi tenglik (3 ∗ 𝑥𝑥)𝑚𝑚𝑚𝑚𝑚𝑚7 ≡ 1 dan foydalanib, 𝑥𝑥 ning o‘rniga son qo‘yib natijani hisoblash mumkin. Lekin ushbu jarayon ko‘p vaqt talab etadi (ayniqsa katta sonlarda).
RSA algoritmi.
RSA nomi algoritmni yaratuvchilari familiyalarining birinchi harflaridan olingan (Rivest, Shamir va Adleman).
RSA algoritmi modul arifmetikasining darajaga ko‘tarish amalidan foydalanishga asoslangan.
RSA algoritmida ochiq va shaxsiy kalitlar juftini generatsiyalash uchun ikkita katta uzunlikdagi 𝑝𝑝 va 𝑞𝑞 sonlari tanlanadi va ularning ko‘paytmasi hisoblanadi: 𝑁𝑁 = 𝑝𝑝 ∗ 𝑞𝑞.
Shundan so‘ng
𝜑𝜑(𝑁𝑁) = (𝑝𝑝 − 1) ∗ (𝑞𝑞 − 1)
bilan o‘zaro tub bo‘lgan, 𝑒𝑒 soni tanlanadi (𝜑𝜑(𝑁𝑁) funksiya ma’nosi quyida keltirilgan). Shundan so‘ng 𝜑𝜑(𝑁𝑁) modulda 𝑒𝑒 sonining teskarisi hisoblanadi va u 𝑑𝑑 ga teng bo‘ladi.
Shundan so‘ng, ikkita tub sonning (𝑝𝑝 𝑣𝑣𝑣𝑣 𝑞𝑞) ko‘paytmasi 𝑁𝑁 va 𝑒𝑒𝑒𝑒 = 1 𝑚𝑚𝑚𝑚𝑚𝑚 𝜑𝜑(𝑁𝑁) shartni qanoatlantiruvchi 𝑒𝑒 va 𝑑𝑑 sonlari mavjud. Shundan so‘ng, 𝑝𝑝 𝑣𝑣𝑣𝑣 𝑞𝑞 lar esdan chiqariladi (o‘chirib tashlanadi). Bu yerda, 𝑁𝑁 modul hisoblanib, (𝑁𝑁, 𝑒𝑒) ochiq kalit juftini va 𝑑𝑑 maxfiy kalitni tashkil etadi. RSA algoritmida shifrlash va rasshifrovkalash modul bo‘yicha darajaga oshirish asosida bajariladi.
RSA algoritmida shifrlash uchun 𝑀𝑀 xabarni son ko‘rinishida ifodalash talab etiladi va 𝑁𝑁 modul bo‘yicha 𝑒𝑒 darajaga ko‘tariladi, ya’ni 𝐶𝐶 = 𝑀𝑀𝑒𝑒 𝑚𝑚𝑚𝑚𝑚𝑚 𝑁𝑁. 𝐶𝐶 ni rasshifrovkalash uchun uni 𝑁𝑁 modul bo‘yicha shaxsiy kalit 𝑑𝑑 darajaga ko‘tarish talab etiladi: 𝑀𝑀 = 𝐶𝐶𝑑𝑑 𝑚𝑚𝑚𝑚𝑚𝑚 𝑁𝑁. Boshqacha aytganda, RSA algoritmida xabar ochiq kalit bilan shifrlansa va shaxsiy kalit bilan rasshifrovkalansa, 𝑀𝑀 = 𝐶𝐶𝑑𝑑 𝑚𝑚𝑚𝑚𝑚𝑚 𝑁𝑁 = 𝑀𝑀𝑒𝑒𝑒𝑒 𝑚𝑚𝑚𝑚𝑚𝑚 𝑁𝑁 tenglikning to‘g‘riligini isbotlash zarur. Aytaylik,
RSA algoritmida ma’lumotni shifrlash va rasshifrovkalash amallarini tanlab olingan (𝑝𝑝 = 11 𝑣𝑣𝑣𝑣 𝑞𝑞 = 3) “katta” sonlar ustida amalga oshirish talab qilinsin. Mazkur holda modul 𝑁𝑁 = 𝑝𝑝 ∗ 𝑞𝑞 = 33 ga teng bo‘ladi va 𝜑𝜑(𝑁𝑁) = (𝑝𝑝 − 1)(𝑞𝑞 − 1) = 20 ga 66 teng bo‘ladi. U holda shifrlash uchun zarur bo‘lgan daraja e ni (3) ga teng deb olish mumkin. Sababi, 3 soni 𝜑𝜑(𝑁𝑁) = 20 bilan o‘zaro tubdir. Shundan so‘ng, Evklidning kengaytirilgan algoritmi asosida rasshifrovkalash kaliti 𝑑𝑑 = 7 aniqlanadi.
Ya’ni, 𝑒𝑒𝑒𝑒 = 3 ∗ 7 = 1 𝑚𝑚𝑚𝑚𝑚𝑚 20. U holda A tomonning ochiq kalit jufti 𝑁𝑁, 𝑒𝑒 = 33, 3 va shaxsiy kaliti 𝑑𝑑 esa 7 ga teng bo‘ladi. Shundan so‘ng, A tomon o‘zining ochiq kalitini barchaga uzatadi. Biroq, shaxsiy kalitini maxfiy saqlaydi. Faraz qilaylik, B tomon A tomonga 𝑀𝑀 = 15 ma’lumotni shifrlab yubormoqchi.
Buning uchun B tomon A tomonning ochiq kaliti juftini 𝑁𝑁, 𝑒𝑒 = 33,3 oladi va shifrmatnni quyidagicha hisoblaydi: 𝐶𝐶 = 𝑀𝑀𝑒𝑒 𝑚𝑚𝑚𝑚𝑚𝑚 𝑁𝑁 = 153 = 3375 = 9 𝑚𝑚𝑚𝑚𝑚𝑚 33 va uni A tomonga yuboradi. A tomon 𝐶𝐶 = 9 shifrmatnni rasshifrovkalash uchun shaxsiy kalit 𝑑𝑑 = 7 dan foydalanadi:
𝑀𝑀 = 𝐶𝐶𝑑𝑑 𝑚𝑚𝑚𝑚𝑚𝑚 𝑁𝑁 = 97 = 4782969 = 144938 ∗ 33 + 15 = 15 𝑚𝑚𝑚𝑚𝑚𝑚 33 Agar RSA algoritmida kichik tub sonlardan (𝑝𝑝 𝑣𝑣𝑣𝑣 𝑞𝑞 𝑢𝑢𝑢𝑢ℎ𝑢𝑢𝑢𝑢) foydalanilgan taqdirda, hujumchi ochik bo‘lgan 𝑁𝑁 ni osonlik bilan ikkita tub sonning ko‘paytmasi ko‘rinishida yozishi mumkin. Shundan so‘ng, ochiq kalitning ikkinchi qism 𝑒𝑒 dan foydalangan holda, shaxsiy kalit 𝑑𝑑 ni hisoblay oladi.
Shuning uchun RSA algoritmidan amalda foydalanish uchun tanlanuvchi tub sonlar uzunligi kamida 2048 bit bo‘lishi talab etiladi. Bundan tashqari, RSA algoritmini buzish faqat faktorlash muammosiga bog‘liqligi isbotlanmagan. Ochiq kalitli kriptotizimlardan foydalanish. Ochiq kalitli kriptografik tizimlardan foydalanish masalasini ko‘rib chiqishda quyidagi belgilashlar kiritiladi: 𝐴𝐴 tomonning ochiq kaliti bilan xabar 𝑀𝑀 ni shifrlash: 𝐶𝐶 = {𝑀𝑀}𝐴𝐴. 𝐴𝐴 tomonning shaxsiy kaliti bilan shifrmatnni rasshifrovkalash: 𝑀𝑀 = [𝐶𝐶]𝐴𝐴.
Bundan quyidagi tenglikni osongina yozish mumkin: [{𝑀𝑀}𝐴𝐴]𝐴𝐴 = 𝑀𝑀. Boshqacha aytganda, 𝑀𝑀 xabarni 𝐴𝐴 tomonning ochiq kaliti bilan shifrlab, keyin aynan shu tomonning shaxsiy kaliti bilan rasshifrovkalash amalga oshirilsa, yana dastlabki xabar hosil bo‘ladi. 67 Simmetrik shifrlar bilan bajarilgan ixtiyoriy amalni, ochiq kalitli shifrlash algoritmlari bilan ham amalga oshirish mumkin. Masalan, tarmoqda ma’lumotlarni uzatishda va xavfsiz bo‘lmagan muhitda axborot konfidensialligini ta’minlashda simmetrik shifrlash algoritmlarining o‘rniga ochiq kalitli kriptografik tizimlardan foydalanish mumkin. Biroq, jarayon ko‘proq vaqt talab etadi. Bundan tashqari, simmetrik kriptotizimlar kabi ochiq kalitli kriptotizimlardan ham ma’lumotlarning yaxlitligini ta’minlashda foydalanish mumkin. Ochiq kalitli kriptotizimlar simmetrik kriptotizimlarda mavjud kalitni taqsimlash muammosini o‘zida bartaraf etgan. O‘z o‘rnida simmetrik kriptotizimlar ochiq kalitli kriptotizimlarga qaraganda samaradorligi bilan ajralib turadi. Boshqacha aytganda, shifrlash va rasshifrovkalash amallari simmetrik kriptotizimlarda, ochiq kalitli shifrlash algoritmlariga nisbatan, tezroq amalga oshiriladi.
Har ikkala kriptotizimning afzalliklarini birlashtirish imkoniyati mavjudmi?
Ya’ni, ma’lumotni shifrlashda yuqori samaradorlikka ega va kalitlarni taqsimlash muammosi bo‘lmagan kriptotizimni yaratish mumkinmi? Albatta, buning imkoniyati mavjud va bunday tizimlar gibrid kriptotizimlar deb ataladi. Gibrid kriptotizimlarda simmetrik shifrlash algoritmining kaliti ochiq kalitni shifrlash orqali yetkazilsa, ma’lumotlarning o‘zi esa simmetrik shifrlash orqali himoyalanadi. Gibrid kriptotizim sxemasi
Amalda kriptografik tizimlarning kalit uzunligiga qat’iy talablar qo‘yiladi. Ushbu talablar vaqt o‘tishi bilan hisoblash qurilmalari imkoniyatining o‘zgarishiga bog‘liq holda o‘zgarib boradi. Kriptotizimlarda foydalanilgan kalitni joriy vaqtdagi hisoblash qurilmalari orqali hisoblab topishning imkoniyati bo‘lmasligi zarur. Bu yerda kalitni topish deganda biror uzunlikdagi kalitni bo‘lishi mumkin bo‘lgan barcha variantlarini hisoblab chiqish nazarda tutiladi.
Masalan, kalit uzunligi 4 bitga teng bo‘lsa, u holda bo‘lishi mumkin bo‘lgan variantlar soni 24 = 16 ga teng bo‘ladi yoki, umumiy qilib aytganda, 𝑛𝑛 bitli kalitlarni bo‘lishi mumkin bo‘lgan variantlari 2𝑛𝑛 ga teng bo‘ladi. Hozirgi kunda simmetrik kriptotizimlarda foydalaniluvchi kalitlarning uzunligi kamida 128 bitli bo‘lishi zarur. 3.3-jadvalda turli uzunlikdagi kalitlarning bo‘lishi mumkin bo‘lgan barcha variantlarini 63 hisoblash uchun turli qiymatli qurilmalardan foydalanilganida sarflanadigan vaqt ko‘rsatilgan. Ko‘rsatilgan natijalar 2005 yildagi narx asosida keltirilgan.
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.
Elektron xujjatlarni uzatishning konfidentsialligini simmetrik kriptotizim yordamida ta’minlash masalasi shifrlash kaliti konfidentsialligini ta’minlashga keltiriladi. Odatda, shifrlash kaliti ma’lumotlar fayli va massividan iborat bo’ladi va shaxsiy kalit eltuvchisidan masalan, disketda yoki smart-kartada saqlanadi. SHaxsiy kalit eltuvchisi egasidan boshqa odamlarning foydalanishiga qarshi choralar ko’rilishi shart.
Simmetrik shifrlash axborotni "o’zi uchun", masalan, egasi yo’qligida undan ruxsatsiz foydalanishni oldini olish maqsadida, shifrlashda juda qulay xisoblanadi. Bu tanlangan fayllarni arxivli shifrlash va butun bir mantiqiy yoki fizik disklarni shaffof(avtomatik) shifrlash bo’lishi mumkin.
Simmetrik shifrlashning noqulayligi - axborot almashinuvi boshlanmasdan oldin barcha adresatlar bilan maxfiy kalitlar bilan ayirboshlash zaruriyatidir. Simmetrik kriptotizimda maxfiy kalitni aloqaning umumfoydalanuvchi kanallari orqali uzatish mumkin emas. Maxfiy kalit jo’natuvchiga va qabul qiluvchiga kalitlar tarqatiluvchi himoyalangan kanallar orqali uzatilishi kerak.
Mavjud barcha kriptografik usullar quyidagi sinflarga ajratiladi:
Mono- va ko’p alifboli o’rniga qo’yishlar (podstanovkalar).
Bir xil alifbodan foydalangan holda ochiq matnni boshqa matnga murakkab yoki qiyin qoida bo’yicha almashtirish o’rniga qo’yish hisoblanadi. Yuqori kriptobardoshlilikni ta’minlash uchun katta kalitlardan foydalanishga to’g’ri keladi.
O’rin almashtirishlar (perestanovkalar)
Bu ham uncha murakkab bo’lmagan kriptografik akslantirish hisoblanadi, odatda boshqa usullar bilan birgalikda foydalaniladi.
Gamma qo’shish (Gammalash)
Bu usulda kalit asosida generatsiya qilinadigan psevdotasodifiy sonlar ketma-ketligi ochiq matn ustiga qo’yiladi.
Blokli shifrlar shifrlanadigan matn blokiga qo’llaniladigan asosiy akslantirish usullarini (mumkin bo’lgan takrorlashlar va navbatlar bilan) tasvirlaydi. Blokli shifrlar yuqori kriptobardoshlilikka ega ekanligidan amalda u yoki bu sinf akslantirishidan ko’proq uchraydi. Amerika va Rossiyaning shifrlash standartlari aynan shu sinf shifrlariga asoslangan.
Axborotni nosimmetrik algoritmlar asosida kriptografik ximoyalash tamoyillari
Asimmetrik kriptotizimlarda axborotni shifrlashda va rasshifrovka qilishda turli kalitlardan foydalaniladi:
- ochiq kalit K axborotni shifrlashda ishlatiladi, maxfiy kalit k dan hisoblab chiqariladi;
- maxfiy kalit k , uning jufti bo’lgan ochiq kalit yordamida shifrlangan axborotni rasshifrovka qilishda ishlatiladi.
Maxfiy va ochiq kalitlar juft-juft generatsiyalanadi. Maxfiy kalit egasida qolishi va uni ruxsatsiz foydalanishdan ishonchli ximoyalash zarur (simmetrik algoritmdagi shifrlash kalitiga o’xshab). Ochiq kalitning nusxalari maxfiy kalit egasi axborot almashinadigan kriptografik tarmoq abonentlarining har birida bo’lishi shart.
Asimmetrik kriptotizimda shifrlangan axborotni uzatish quyidagicha amalga oshiriladi:
1. Tayyorgarlik bosqichi:
- abonent V juft kalitni generatsiyalaydi: maxfiy kalit kV va ochiq kalit KV;
- ochiq kalit KV abonent A ga va qolgan abonentlarga jo’natiladi.
2. A va V abonentlar o’rtasida axborot almashish:
- abonent A abonent Vning ochiq kaliti KV yordamida axborotni shifrlaydi va shifrmatnni abonent Vga jo’natadi;
- abonent V o’zining maxfiy kaliti kV yordamida axborotni rasshifrovka qiladi. Hech kim (shu jumladan abonent A ham) ushbu axborotni rasshifrovka qilaolmaydi, chunki abonent Vning mahfiy kaliti unda yo’q.
Asimmetrik kriptotizimda axborotni ximoyalash axborot qabul qiluvchi kaliti kV ning mahfiyligiga asoslangan.
Asimmetrik kriptotizimlarning asosiy hususiyatlari quyidagilar:
1. Ochiq kalitni va shifr matnni himoyalangan kanal orqali jo’natish mumkin, ya’ni niyati buzuq odamga ular ma’lum bo’lishi mumkin.
2. SHifrlash YeV :
M ► C va rasshifrovka qilish DB:
S ► M algoritmlari ochiq.
Shifrlash standartlari. Kriptografik kalitlarni boshqarish. Xeshlash funktsiyasi
O’zbekistonning axborotni shifrlash standarti. Ushbu "Ma’lumotlarni shifrlash algoritmi" standarti O’zbekiston aloqa va axborotlashtirish agentligining ilmiy-texnik va marketing tadqiqotlari markazi tomonidan ishlab chiqilgan va unda O’zbekiston Respublikasining "Elektron raqamli imzo xususida"gi va "Elektron xujjat almashinuvi xususida"gi qonunlarining me’yorlari amalga oshirilgan.
Ushbu standart — kriptografik algoritm, elektron ma’lumotlarni himoyalashga mo’ljallangan. Ma’lumotlarni shifrlash algoritmi simmetrik blokli shifr bo’lib, axborotni shifrlash va rasshifrovka qilish uchun ishlatiladi. Algoritm 128 yoki 256 bit uzunligidagi ma’lumotlarni shifrlashda va rasshifrovka qilishda 128, 256, 512 bitli kalitlardan foydalanishi mumkin.
Rossiyaning axborotni shifrlash standarti. Rosssiya Federatsiyasida hisoblash mashinalari, komplekslari va tarmoqlarida axborotni kriptografik o’zgartirish algoritmlariga davlat standarti (GOST 2814-89) joriy etilgan. Bu algoritmlar maxfiylik darajasi ixtiyoriy bo’lgan axborotni hech qanday cheklovsiz shifrlash imkonini beradi. Algoritmlar apparat va dasturiy usullarida amalga oshirilishi mumkin.
Standartda axborotni kriptografik o’zgartirishning quyidagi algoritmlari mavjud:
- oddiy almashtirish;
- gammalash;
- teskari bog’lanishli gammalash;
- imitovstavka.
AQSHning axborotni shifrlash standarti. AQSHda davlat standarti sifatida DES(Data Encryption Standart) standarti ishlatilgan. Bu standart asosini tashkil etuvchi shifrlash algoritmi IBM firmasi tomonidan ishlab chiqilgan bo’lib, AQSH Milliy Xavfsizlik Agentligining mutaxasislari tomonidan tekshirilgandan so’ng davlat standarti maqomini olgan. DES standartidan nafaqat federal departamentlar, balki nodavlat tashkilotlar, nafaqat AQSHda, balki butun dunyoda foydalanib kelingan.
Kriptografik kalitlarni boshqarish
Har qanday kriptografik tizim krpitografik kalitlardan foydalanishga asoslangan. Kalit axboroti deganda axborot tarmoqlari va tizimlarida ishlatiluvchi barcha kalitlar majmui tushuniladi. Agar kalit axborotlarining yetarlicha ishonchli boshqarilishi ta’minlanmasa, niyati buzuq odam unga ega bo’lib olib tarmoq va tizimdagi barcha axborotdan hohlaganicha foydalanishi mumkin. Kalitlarni boshqarish kalitlarni generatsiyalash, saqlash va taqsimlash kabi vazifalarni bajaradi. Kalitlarni taqsimlash kalitlarni boshqarish jarayonidagi eng ma’suliyatli jarayon hisoblanadi.
Simmetrik kriptotizimdan foydalanilganda axborot almashinuvida ishtirok etuvchi ikkala tomon avval maxfiy sessiya kaliti, ya’ni almashinuv jarayonida uzatiladigan barcha xabarlarni shifrlash kaliti bo’yicha kelishishlari lozim. Bu kalitni boshqa barcha bilmasligi va uni vaqti-vaqti bilan jo’natuvchi va qabul qiluvchida bir vaqtda almashtirib turish lozim. Sessiya kaliti bo’yicha kelishish jarayonini kalitlarni almashtirish yoki taqsimlash deb ham yuritiladi.
Asimmetrik kriptotizimda ikkita kalit-ochiq va yopiq (maxfiy) kalit ishlatiladi. Ochiq kalitni oshkor etish mumkin, yopiq kalitni yashi-rish lozim. Xabar almashinuvida faqat ochiq kalitni uning haqiqiyligini ta’minlagan holda jo’natish lozim.
Kalitlarni taqsimlashga quyidagi talablar qo’yiladi:
• taqsimlashning operativligi va aniqligi;
• taqsimlanuvchi kalitlarning konfidentsialligi va yaxlitligi.
Kompyuter tarmoqlaridan foydalanuvchilar o’rtasida kalitlarni taqsimlashning quyidagi asosiy usullaridan foydalaniladi.
1. Kalitlarni taqsimlovchi bitta yoki bir nechta markazlardan foydalanish.
2. Tarmoq foydalanuvchilari o’rtasida kalitlarni to’g’ridan-to’g’ri almashish.
Birinchi usulning muammosi shundaki, kalitlarni taqsimlash markaziga kimga, qaysi kalitlar taqsimlanganligi ma’lum. Bu esa tarmoq bo’yicha uzatilayotgan barcha xabarlarni o’qishga imkon beradi. Bo’lishi mumkin bo’lgan suiiste’mollar tarmoq xavfsizligining jiddiy buzilishiga olib kelishi mumkin.
Xulosa
Men bu mustaqil ishda simmetrik shifrlash algoritmi Simmetrik shifrlash axborotni "o’zi uchun", masalan, egasi yo’qligida undan ruxsatsiz foydalanishni oldini olish maqsadida, shifrlashda juda qulay xisoblanadi. Bu tanlangan fayllarni arxivli shifrlash va butun bir mantiqiy yoki fizik disklarni shaffof(avtomatik) shifrlash bo’lishi mumkin.
Simmetrik shifrlashning noqulayligi - axborot almashinuvi boshlanmasdan oldin barcha adresatlar bilan maxfiy kalitlar bilan ayirboshlash zaruriyatidir. Simmetrik kriptotizimda maxfiy kalitni aloqaning umumfoydalanuvchi kanallari orqali uzatish mumkin emas. Maxfiy kalit jo’natuvchiga va qabul qiluvchiga kalitlar tarqatiluvchi himoyalangan kanallar orqali uzatilishi kerak.
|