8- amaliy ish OpenSSL kutubxonasidan foydalangan holda RSA algoritmi asosida ERI hosil qilish. Ishdan maqsad: RSA, DSA, ECDSA algoritmlar asosida ERI hosil qilish bo’yicha bilim ko‘nikmalarga ega bo‘lish. Nazariy qism RSA algoritmiga asoslangan ERI algoritmini ortiqcha qiyinchiliksiz amalga oshirsa bo‘ladi. Buning uchun shifrlash va deshirflash uchun foydalanilgan kalitlardan teskarisiga va ma'lumotning o‘rnida uning xesh qiymatdan Foydalanishnimng o’zi yetarli (8.1 - rasm). ERI ni shakllantirish 𝐻(𝑀)𝑑 𝑚𝑜𝑑𝑛 = 𝑃 Bu yerda : H(M) – ma’lumotlarning xesh qiymati; ERI ni tekshirish 𝑃𝑒 𝑚𝑜𝑑𝑛 = 𝐻`(𝑀) H`(M) ≡ H(M) Haqiqiy { H`(M) ≢ H(M) Haqiqiy emas d – imzo qo’yish kaliti (yopiq kalit); n,e – ochiq kalit; P – imzo. 8.1– rasm. RSA asosida ERI algoritmi RSA algoritmi yordamida shifrlashda qo‘llaniladigan kalitlar teskarisi tarzda foydalaniladi. Ya'ni, 𝑑 – imzo qo‘yish (shifrlash) va e – imzoni tekshirish (deshirflash) uchun foydalaniladi. Isboti. RSA algoritmida quyidagi tenglik bajarilganida uning haqiqiyligi isbotlanadi: 𝑃𝑒 = (𝑥 𝑑 )𝑒 = 𝑥 𝑑𝑒 ≡ 𝑥 𝑚𝑜𝑑 𝑛. Chunki, ochiq va yopiq kalitlar o‘rtasida quyidagi tenglik o‘rinli: 𝑑 𝑒 ≡ 1 𝑚𝑜𝑑𝜑(𝑛). 𝑥 ∈ 𝑍𝑛 butun son va hisoblashdan keyin ham butun son bo‘ladi. RSA algoritmi ochiq kalitli bo‘lganligi bois, qabul qiluvchi yopiq kalit orqali shifrlangan ma'lumotni deshifrlaydi. Elektron raqamli imzoda esa, imzo egasi yopiq kalit asosida x xabarni imzolaydi. Misol. Bob 𝑥 = 4 xabarni shifrlaydi va Alisaga tasdiqlash uchun jo‘natadi. Uning sxemasi quyida keltirilgan: Alisa Bob p=3 va q=11 sonlari tanlanadi 𝑛 = 𝑝 · 𝑞 = 33 hisoblanadi 𝜑(𝑛) = (3 − 1)(11 − 1) = 20 𝑒 = 3 tanlanadi 𝑑 ≡ 𝑒 −1 ≡ 7 𝑚𝑜𝑑 20 (𝑛, 𝑒) = (33,3) 𝑥 = 4 xabarni imzolash 𝑠 = 𝑥 𝑑 ≡ 47 ≡ 16 𝑚𝑜𝑑 33 (𝑥, 𝑠) = (4,16) Tasdiqlash: 𝑥 ` = 𝑠 𝑒 ≡ 163 ≡ 4 𝑚𝑜𝑑 33 ` 𝑥 ≡ 𝑥 𝑚𝑜𝑑 33 Demak imzo haqiqiy DSA ERI algoritmi. 1991 yilda NIST (National Institute of Standard and Technology) tomonidan DSA (Digital Signature Algorithm) algoritmiga asoslangan DSS (Digital Signature Standard) ERI standarti yaratildi. Ushbu algoritm chekli maydonda diskret logarifmlash muammosiga asoslangan. Xesh funksiya sifatida SHA1 standartidan foydalanilgan. Ochiq va yopiq kalitlar 1. Mahfiy kalit Imzoni shakllantirish: 1. Imzolanuvchi M ma'lumotni imzolashda quyidagi ketma – ketliklar bajariladi: a. p – tub son tanlanadi (21023< p <21024 va bit uzunligi 64 ga karrali); b. q – tub son tanlanadi (2159< q <2160 va p-1 ning bo’luvchisi); c. 0 < h < p va h(p-1)/q mod p >1 shartlarni qanoatlantiruvchi h kattalik asosida g = h(p-1)/q mod p butun son hisoblanadi; d. x – maxfiy kalit orqali, y = qx mod p ochiq kalit hisoblanadi (bu yerda: 0<x<q); 2. Ma’lumot jo’natuvchisi tasodifiy k sonini tanlaydi (0<k<q shart bilan). Ushbu kattalik imzo shakllantirilgandan so’ng o’chirib tashlanadi. 3. M ma'lumotni imzolari quyidagilarga teng bo‘ladi: r = gk mod p mod q, s = k-1(xr + H(M)) mod q. Hosil qilingan kattaliklar (r, s) ma’lumot M ga qo’shib imzoni tekshiruvchi tomonga yuboriladi. Imzoni tekshirish jarayoni: Qabul qilingan M’ ma’lumot va unga qo’yilgan imzo (r’, s’) asosida imzoni tekshirish jarayoni amalga oshiriladi. Bu ikki bosqichdan iborat. Agar imzo birinchi bosqichdagi tekshiruvdan o‘ta olmasa, unda ikkinchi bosqichga o‘tmaydi. Qabul qilingan imzolar uchun 0 < s’ < q yoki 0 < r’ < q shart tekshiriladi. Bu shart bajarilsa ikkinchi bosqichga o‘tiladi. 1. Ikkinchi bosqich quyidagilardan iborat: a. v = (s’)-1(mod q) hisoblanadi. b. z1 = H(M’) v mod q, z2 = r’ v mod q qiymatlar hisoblanadi. c. Shundan so’ng u = g 1 y 2 mod p mod q qiymat hisoblanadi. d. Agar r’ = u tenglik bajarilsa, u holda qo’yilgan elektron raqamli imzo z z haqiqiy (M = M’) bo’ladi. Aks holda imzo qalbaki deb topiladi. Parametrlarni generatsiyalash − 𝐻 = 910 = 10012 ; − Xesh qiymat uzunligi 4 ga tengligi uchun 𝑞 = 1110 = 10112 tanlash mumkin. − Shuningdek, p = 23 ni tanlash mumkin, ya’ni 23 − 1 = 22 = 𝑞 ∗ 2; − Bundan tashqari, 𝑔 = 22 = 4. Kalitlarni hosil qilish − Shaxsiy kalit uchun: 𝑥 = 7; − U holda ochiq kalit quyidagiga teng bo’ldi: 𝑦 = 𝑔 𝑥 𝑚𝑜𝑑𝑝 = 47 𝑚𝑜𝑑23 = 16384𝑚𝑜𝑑23 = 8. Xabarni imzolash − 𝑘 = 3 deb tanlaylik; − U holda 𝑟 = (𝑔𝑘 𝑚𝑜𝑑𝑝)𝑚𝑜𝑑𝑞 = (43 𝑚𝑜𝑑23)𝑚𝑜𝑑11 = 7; − 𝑟 ≠ 0 bo’lganligi bois, keying qadamga o’tamiz; − 𝑠 = 𝑘 −1 (𝐻(𝑚) + 𝑥 ∗ 𝑟)𝑚𝑜𝑑𝑞 = 4(9 + 7 ∗ 7)𝑚𝑜𝑑11 = 1, ya'ni 3−1 𝑚𝑜𝑑11 = 4. − 𝑠 ≠ 0 bo’lganligi bois, keyingi qadamga o’tamiz: − Imzo jufti (𝑟, 𝑠) = (7,1) ga teng. Imzoni tekshirish − 𝑤 = 𝑠 −1 𝑚𝑜𝑑𝑞 = 1−1 𝑚𝑜𝑑11 = 1; − 𝑢1 = 𝐻(𝑚) ∗ 𝑤 𝑚𝑜𝑑 𝑞 = 9 ∗ 1 𝑚𝑜𝑑 11 = 9; − 𝑢2 = 𝑟 ∗ 𝑤 𝑚𝑜𝑑 𝑞 = 7 ∗ 1 𝑚𝑜𝑑 11 = 7; − 𝑣 = (𝑔𝑢1 ∗ 𝑦 𝑢2 𝑚𝑜𝑑 𝑝)𝑚𝑜𝑑 𝑞 = (49 ∗ 87 𝑚𝑜𝑑 23)𝑚𝑜𝑑 11 = 7; − 𝑣 = 𝑟 bo’lganligi bois, imzo to’g’ri. EC DSA raqamli imzo algoritmi. Imzoni generatsiya kilish algoritmi. Boshlang'ich ma'lumotlar: М - imzo lanishi kerak bo'lgan ma'lumot, berilgan parametrlar va imzo kaliti. Natija: imzo (r , s ) . 1) 1 k n 1 intervaldan tasodifiy k soni tanlanmoqda, bu erda G nuqta tartibi n max 2160 ,4 p shartni qanoatlantiruvchi tub son bo‘lishi kerak. 2) ( x1 , y1 ) : [k ]G hisoblanadi. 3) r : x1 mod n hisoblanadi. 4) Agar r 0 bo’lsa, u holda 1-qadamga boriladi, aks holda keyingi qadamga o‘tiladi. 5) z : k 1 mod n hisoblanadi. 6) e : h( М ) hisoblanadi. 7) s : z (e dr ) mod n hisoblanadi. 8) Agar s 0 bo’lsa, u holda 1-qadamga boriladi. 9) М - ma'lumot imzosi - (r , s ) juftligidan iborat. Imzoni tekshirish. Boshlang‘ich ma'lumotlar M ma'lumot, berilgan (elliptik chiziqqa aloqador) parametrlar, imzoni tekshirish kaliti va M ma'lumot imzoni -(r,s). Natija: imzo haqiqiyligi yoki qalbakiligi haqidagi tasdiq. Imzoni tekshirish qadamlari: 1. Agar 1 r, s n-1 bajarilmasa, u holda imzo qalbaki va tekshirishni shu yerda to‘xtatish mumkin. 2. e= H(M) hisoblansin. 3. w= H(M) (n-2)mod n hisoblansin. 4. u1 = s w mod q hisoblansin. 5. u2 = (n-r) w mod n hisoblansin. 6. X=[ u1] G+[ u2] Q=(x1,y1) hisoblansin. 7. Agar x1 mod n = r bo‘lsa, imzo haqiqiy, aks holda imzo qalbaki va algoritm to‘xtatiladi. Amaliy qism Openssl yordamida ERI ni hosil qilish 8.1- rasm. Yopiq kalit hosil qilish 8.2- rasm. Yopiq kalitning ko‘rinishi 8.3-rasm. Yaratilgan yopiq kalitning fayl ko‘rinishi 8.4-rasm. Yopiq kalitdan ochiq kalitni hosil qilish 8.5-rasm. Ochiq kalitning fayl ko‘rinishi 8.5-rasm. Ochiq kalitning qiymati 8.6-rasm. Qabul qiliuvchi uchun yopiq kalit hosil qilish 8.6-rasm. Qabul qiliuvchi uchun ochiq kalit hosil qilish 8.7-rasm. Qabul qiluvchi uchun hosil qilingan ochiq va yopiq kalitning fayl ko‘rinishi 8.8-rasm. Ochiq matnning fayl ko‘rinishi 8.9-rasm. Elektron raqamli imzo hosil qilish 8.10-rasm. Hosil qilingan elektron raqamli imzoning fayl ko‘rinishi 8.11-rasm. Ochiq matn faylini shifrlash 8.12-rasm. Shifrlangan ma’lumotning fayl ko‘rinishi 8.13-rasm. Shifrlangan faylni ochish 8.14-rasm. Elektron raqamli imzoni tekshirish RSA ni python muhitida dasturini ko’rib chiqamiz import os # C:\OpenSSL-Win64\bin\openssl.exe SSLManzili = input("Iltimos Open-SSL manzilini kiriting-->") print("\t!!!RSA ga shifrlash algoritmiga!!!\n\t\t\t Xush kelibsiz") def DES3_Shifr(): ShifrMatn = input("Shifrlamoqchi bo'lgan matn (txt) nomini kiriting-->") KalitHajmi = input("Kalit (son) kiriting-->") print(os.system(f"{SSLManzili} genrsa -out \"{ShifrMatn}\" {KalitHajmi}")) while True: x = int(input("1)RSA shifrlash\n2)Exit\nTanlang-->")) if x == 1: DES3_Shifr() else: break Topshiriq OpenSSL kutubxonasidan foydalanib RSA, DSA, ECDSA algoritmlari asosida ERI hosil qilinsin. Nazorat savollari 1. Imzoni tekshirish jarayoni qanday amalga oshiriladi 2. ECDSA qanday algoritm hisoblanadi. 3. Imzoni tekshirishning qanday qadamlari mavjud. 9- amaliy ish OpenSSL kutubxonasidan foydalangan holda X.509 sertifikatini hosil qilish. Ishdan maqsad: X.509 sertifikatini hosil qilish va sertifikat bo’yicha bilim ko’nikmaga ega bo’lish. Nazariy qism X.509 sertifikati. Kriptografiyada X.509 standarti ochiq kalitli infratuzilmalar (public key infrastructure (PKI)) va imtiyozga asoslangan boshqarish infratuzilmalari (Privilege Management Infrastructure (PMI)) uchun mo‘ljallangan. Ushbu protokol ko‘plab Internet protokollari, xususan, HTTPS uchun asos bo‘lgan SSL/TLS protokolida veb brauzerda xavfsiz kanalni qurishda foydalaniladi. Bundan tashqari u offlayn ilovalarda, masalan, elektron raqamli imzoda foydalaniladi. Ushbu sertifikat ochiq kalit, identifikatorlar (uzel nomi, organizasiya yoki tashkilot nomi), sertifikat bergan tashkilot nomi va imzosi yoki o‘zi imzolaganligini tasdiqlovchi ma'lumotlardan iborat. Ushbu sertifikat ishonchli tashkilot tomonidan imzolanganda yoki boshqa vositalar orqali tasdiqlanganda, ushbu sertifikatni olgan odam undagi ochiq kalit bilan ikkinchi tomon bilan aloqa o‘rnatishi mumkin yoki shaxsiy kalit bilan imzolangan imzoni ushbu ochiq kalit bilan tekshirish mumkin bo‘ladi. X.509 standarti asosidagi sertifikatlar odatda tijoriy tashkilotlar yoki ularning offislari va ochiq holda generatsiya qilinishi mumkin. Bundan tashqari ushbu sertifikatda, sertifikatni amal qilish muddati va unda qanday algoritmlardan foydalanilganligi qayd etiladi. X.509 sertifikati International Telecommunications Union standartlash bo‘limi tomonidan aniqlangan va ASN.1 (Abstract Syntax Notation One) interfeysni ifodalash tiliga asoslangan. Ushbu sertifikat 1988 yil 3 iyulda yaratilgan va X.500 standarti to‘plamiga kiritilgan. Sertifikatni olish uchun tashkilot quyidagi ketma-ketlikdagi amallarni bajaradi. Talabgor o‘ziga tegishli bo‘lgan raqamli sertifikatni olishi uchun CSR (certificate signing request) so‘rovini sertifikatni berish markaziga (certificate authority) yuboradi. CSR ni generatsiya qilishdan oldin talabgor dastlab kalit juftlarini generatsiya qiladi va maxfiy kalitni sir saqlaydi. CSR so‘rovi talabgorning ochiq kalit ma'lumoti, identifikator ma'lumotlari (masalan, domen nomi) va butunlik himoyasi (masalan, raqamli imzo) dan iborat bo‘ladi. CSR uchun eng ko‘p foydalanilgan format bu - PKCS #10 va ba'zi veb brauzerlar tomonidan generatsiya qilinadigan SPKAC (Signed Public Key and Challenge) formatlaridir. Talabgor CSR so‘rovini imzolovchi tashkilot ham dastlab kalit juftlarini generatsiya qiladi va CSRni imzolashda foydalaniladigan maxfiy kalitni sir tutadi. CSR so‘rovi imzolovchi tashkilot tomonidan imzolangandan so‘ng, imzo, imzo algoritmi va o‘zi haqidagi ma'lumotlarni qo‘shib X.509 sertifikatini hosil qiladi. Imzolovchi tashkilotlarning ishonchli root sertifikatlari barcha ishchi tizimlarda (masalan, brauzerlarda) uzatiladi. Brauzerlarda, masalan, Internet Explorer, Firefox, Opera, Safari va Chromeda ushbu root sertifikatlar oldindan o‘rnatilgan bo‘ladi. X.509 v3 sertifikatining tuzulishi quyidagicha: Certificate Version (versiya) Serial Number (serial raqami) Algorithm ID (algoritm ID si) Issuer (sertifikat beruvchi tashkilot, emitent) Validity (amal qilsih muddati) Not Before Not After Subject (sertifikat oluvchi tashkilot, istemolchi) Subject Public Key Info (istemolchi ochiq kalit ma’lumoti) Public Key Algorithm (ochiq kalit algoritmi) Subject Public Key (ochiq kalit) Issuer Unique Identifier (optional) (emitetning takrorlanmas identifikatori) Subject Unique Identifier (optional) (istemolchining takrorlanmas identifikatori) Extensions (optional) (kengaytirilgan imkoniyatlar) Certificate Signature Algorithm (sertifikatda fopydalanilgan ERI algoritmi) Certificate Signature (sertifikat qo’yilgan imzo) Amaliy qism 9.1-rasm. RSA algoritmi yordamida ochiq yopiq kalit va Sertifikat hosil qilish 9.2-rasm. pem farmatli kalitni pfx farmatga o’zgartirish 9.3- rasm. pfx farmatdan pem farmatga o’zgartirish 9.4- rasm. pfx farmatdan pem farmatga o’zgartirilgan holati Topshiriq OpenSSL kutubxonasidan foydalangan holda X.509 sertifikati hosil qilinsin Nazorat savollari 1. X.509 sertifikati vazifasi nimdan iborat. 2. X.509 sertifikati qanday hosil qilinadi. 3. Talabgor o‘ziga tegishli bo‘lgan raqamli sertifikatni olishi uchun qayerga murojat qiladi.