O’ZBEKISTON RESPUBLIKASI RAQAMLI TEXNOLOGIYALARI VA VAZIRLIGI MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALAR UNIVERSITETI Kriptografiya 1 Bajardi: Dehqonov Asilbek Tekshirdi: Daminov Akmalbek 9- amaliy ish Mavzu: OpenSSL kutubxonasidan foydalangan holda maʼlumotlarni ochiq kalitli kriptoalgoritmlar yordamida shifrlash. Ishdan maqsad: RSA shifrlash algoritmi va uning matematik asosi, tub sonlar va ularni generatsiyalash usullari haqida nazariy va amaliy ko‘nikmalarga ega bo‘lish. Nazariy qism Diffi va Xelman kriptografiya sohasida yangicha yondashishni targʼib qilib, ochiq kalitli kriptotizimlarning barcha talablariga javob beradigan kriptografik algoritm yaratish taklifi bilan chiqdi. Birinchilardan boʼlib bunga javoban 1997 yil Ron Rayvets (Ron Rivest), Adi Shamir (Adi Shamir) va Len Adlmen (Len Adlmen)lar shu vaqtgacha tan olingan va amaliy keng qoʼllanib kelingan ochiq kalitli shifrlash algoritm sxemasini taklif qildi va bu algoritm ularning nomi sharafiga RSA algoritmi deb ataldi. RSA algoritmi faktorlash murakkabligiga asoslangan shifrlash algoritmi hisoblanadi. Rayvest, Shamir va Adlmen tomonidan yaratilgan sxema daraja koʼrsatkichiga asoslangan. Ochiq matn bloklarga ajratilib shifrlanadi, har bir blok baʼzi berilgan 𝑛 sonidan kichik boʼlgan ikkilik qiymatga ega boʼladi. Bundan kelib chiqadiki blok uzunligi 𝑙𝑜𝑔2 (𝑛) dan kichik yoki teng boʼlishi kerak. Umuman olganda amaliyotda blok uzunligi 2𝑘 ga teng deb olinadi, bu yerda 2𝑘 < 𝑛 ≤ 2𝑘+1 . Ochiq matn M bloki va shifrlangan matn C bloki uchun shifrlash va deshifrlash quyidagi formula bilan hisoblash mumkin. 𝑀 = 𝑀 𝑒 𝑚𝑜𝑑𝑛, 𝑀 = 𝐶 𝑑 𝑚𝑜𝑑𝑛 = (𝑀𝑒 )𝑑 𝑚𝑜𝑑𝑛 = 𝑀𝑒𝑑 𝑚𝑜𝑑𝑛. Joʼnatuvchi ham, qabul qiluvchi ham 𝑛 ni qiymatini bilishi kerak. Joʼnatuvchi e ni qiymatini, qabul qiluvchi esa faqat d ni qiymatini bilishadi. Ushbu sxema ochiq kalitli shifrlash algoritmi hisoblanadi, KU={e,n}- ochiq kalit va KR={d,n}- maxfiy kalit hisoblanadi. Bu algoritm ochiq kalit yordamida shifrlanishi uchun, quyidagi talablar bajarilishi kerak. 1. Shunday e, d va n qiymatlar mavjud boʼlish kerakki, barcha 𝑀 < 𝑛 uchun 𝑀𝑒𝑑 = 𝑀𝑚𝑜𝑑𝑛 tenglik oʼrinli boʼlishi kerak. 2. Barchak. 𝑀 < 𝑛 uchun 𝑀𝑒 va 𝐶 𝑑 ni hisoblash oson boʼlishi kerak. 3. Amaliy jihatdan e va n ni bilmasdan turib d ni qiymatini bilish mumkin bo’lmasligi kerak. Birinchi shartga binoan quyidagi munosabatni toppish kerak 𝑀𝑒𝑑 = 𝑀𝑚𝑜𝑑𝑛. Eyler funksiyasiga asosan: har qanday ikkita p va q tub son va har qanday n va m butun sonlar uchun, n=pq va 0 < 𝑚 < 𝑛, va ixtiyoriy k butun son uchun quyidagi munosabat bajariladi. 𝑚𝑘𝜑(𝑛)+1 = 𝑚𝑘(𝑝−1)(𝑞−1)+1 ≡ 𝑚𝑚𝑜𝑑𝑛, Bu yerda 𝜑(𝑛) Eyler funksiyasi bo’lib, n dan kichik va n bilan o’zaro tub bo’lgan munosabat butun son. Eyler funksiyasi 𝜑(𝑛) bilan o’zaro tub bo’lgan e son tanlab olinadi va talab qilinayotgan munosabat quyidagi shart asosida bajariladi. 𝑒𝑑 = 𝑘𝜑(𝑛) + 1. Bu quydagi munosabat bilan ekvivalent: 𝑒𝑑 ≡ 1 𝑚𝑜𝑑𝜑(𝑛), 𝑑 ≡ 𝑒 −1 𝑚𝑜𝑑𝜑(𝑛), e va d, 𝜑(𝑛) modul bo’yicha o’zaro teskari son, ya’ni gcd(𝜑(𝑛), 𝑒) = 1. Yuqorida keltirilgan parametrlar asosida RSA sxemasini quyidagicha tasniflash mumkin: p va q – tub sonlar (maxfiy, tanlab olinadi), n=pq (ochiq, hisoblanadi), shunday e, gcd(𝜑(𝑛), 𝑒) = 1, 1 < 𝑒, 𝜑(𝑛) (ochiq, tanlab olinadi), 𝑑 ≡ 𝑒 −1 𝑚𝑜𝑑𝜑(𝑛) (maxfiy, hisoblanadi). Maxfiy kalit {d,n} dan, ochiq kalit esa {e,n} dan iborat boʼladi. Faraz qilaylik A foydalanuvchi ochiq kalitini elon qildi va B foydalanuvchi unga M xabarni joʼnatmoqchi. B foydalanuvchi 𝐶 = 𝑀𝑒 (𝑚𝑜𝑑𝑛) hisoblab C ni joʼnatadi. Shifrlangan matnni qabul qilgan A foydalanuvchi 𝑀 = 𝐶 𝑑 (𝑚𝑜𝑑𝑛) yordamida deshifrlab dastlabki ochiq matnga ega boʼladi.Misol. 1. Ikkita tub son tanlab olinadi, p=7 va q=17. 2. n=p*q=7*17 hisoblanadi. 3. Eyler funksiyasi hisoblanadi 𝜑(𝑛) = (𝑝 − 1)(𝑞 − 1) = 96. 4. Eyler funksiyasi𝜑(𝑛) = 96 bilan oʼzaro tub boʼlgan va undan kichkina boʼlgan e tanlab olinadi; bizni, misolimizda e=5. 5. de=1mod 96 va d<96 shartni qanoatlantiruvchi d soni topiladi. d=77, 77*5=385=4*96+1. Natijada ochiq kalit KU={5,119} va yopiq kalit KR={77,119}= hosil bo’ladi. Yuqoridagi misolda ochiq matn qiymati M=19 olingan. Shifrlash formulasiga ko’ra ochiq matn qiymati ochiq kalit qiymati yordamida darajaga ko’tarilib, n modul bo’yicha qiymati olinadi, ya’ni 19 soni 5 darajaga ko’tariladi. Amaliy qism Openssl kutubxonasidan foydalanish uchun cmd buyrug‘idan foydalaniladi (pusk va R teng bosiladi): 9.1- rasm. Cmd buyrug‘ini ishga tushiriladi Cmd oynasidagi joriy papkasidan chiqish uchun cd.. buyrug‘idan foydalaniladi: 9.2- rasm. cd.. buyrug‘idan foydalanish Openssl kutubxonasi uchun foydalanadigan certificate papkasiga quyidagi buyrug’ orqali ochiq ma’lumotni xosil qilib olamiz: 9.3- rasm. Sertifikat papkaga kirish 9.4- rasm. Ochiq matn faylini yaratish 9.5- rasm. Ochiq matn fayli 9.6- rasm. OpenSSLni ishga tushirish 9.7- rasm. Yopiq kalit hosil qilish 9.8- rasm. Hosil qilingan yopiq kalit 1.9- rasm. Maxfiy kalitdan foydalanib ochiq kalit hosil qilish. 9.10- rasm. Ochiq kalit 9.11- rasm. Ma’lumotni shifrlash 9.12- rasm. Shifr fayl. 10- amaliy ish Mavzu: Faylning muallifini o’zgarmasligini tekshirish uchun elektron raqamli imzoni qo’llash. Ishdan maqsad: DSA algoritmi asosida ERI hosil qilish va RSA algoritm asosida ERI hosil qilish bo’yicha bilim va ko’nikmalarga erishish. Nazariy qism 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, 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. OpenSSL dan foydalanib ishni bajarish: dsaparam ya'ni 10.1- rasm. Yopiq kalit hosil qilish 10.2- rasm. Yopiq kalit yordamida ochiq kalit hosil qilish 10.3- rasm. Yopiq kalit asosida sertifikikat 10.4- rasm. DSA algoritmi yordamida ERI hosil qilish ge 10.5- rasm. ERI ni tekshirish 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). 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 Openssl yordamida ERI ni hosil qilish 10.7- rasm. Yopiq kalit hosil qilish 10.8- rasm. Yopiq kalitning ko‘rinishi 10.9-rasm. Yaratilgan yopiq kalitning fayl ko‘rinishi 10.10-rasm. Yopiq kalitdan ochiq kalitni hosil qilish 10.11-rasm. Ochiq kalitning fayl ko‘rinishi 10.12-rasm. Ochiq kalitning qiymati 10.13-rasm. Qabul qiliuvchi uchun yopiq kalit hosil qilish 10.14-rasm. Qabul qiliuvchi uchun ochiq kalit hosil qilish 10.15-rasm. Qabul qiluvchi uchun hosil qilingan ochiq va yopiq kalitning fayl ko‘rinishi 10.16-rasm. Ochiq matnning fayl ko‘rinishi 10.17-rasm. Elektron raqamli imzo hosil qilish 10.18-rasm. Hosil qilingan elektron raqamli imzoning fayl ko‘rinishi 10.19-rasm. Ochiq matn faylini shifrlash 10.20-rasm. Shifrlangan ma’lumotning fayl ko‘rinishi 10.21-rasm. Shifrlangan faylni ochish 10.22-rasm. Elektron raqamli imzoni tekshirish 10.23-rasm.Ochiq matn 10.24-rasm.Shifr matn