Uploaded by Asilbek Dehqonov

Asilbek crypt

advertisement
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
Download