Uploaded by Mohirbek Mahmudov

Openssl kutubxonasidan foydalangan holda rsa algoritmi asosida e

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