|
Openssl kutubxonasidan foydalangan holda rsa algoritmi asosida eri hosil qilish
|
bet | 2/4 | Sana | 18.05.2024 | Hajmi | 0,92 Mb. | | #241787 |
Alisa
|
|
Bob
|
|
|
p=3 va q=11 sonlari tanlanadi
hisoblanadi
tanlanadi
|
|
|
|
|
|
xabarni imzolash
|
|
|
|
Tasdiqlash:
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
Mahfiy kalit
Imzoni shakllantirish:
1. Imzolanuvchi M ma'lumotni imzolashda quyidagi ketma – ketliklar bajariladi:
p – tub son tanlanadi (21023< p <21024 va bit uzunligi 64 ga karrali);
q – tub son tanlanadi (2159< q <2160 va p-1 ning bo’luvchisi);
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;
x – maxfiy kalit orqali, y = qx mod p ochiq kalit hisoblanadi (bu yerda: 0
Ma’lumot jo’natuvchisi tasodifiy k sonini tanlaydi (0shart bilan). Ushbu kattalik imzo shakllantirilgandan so’ng o’chirib tashlanadi.
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.
Ikkinchi bosqich quyidagilardan iborat:
v = (s’)-1(mod q) hisoblanadi.
z1 = H(M’) v mod q, z2 = r’ v mod q qiymatlar hisoblanadi.
Shundan so’ng u = mod p mod q qiymat hisoblanadi.
Agar r’ = u tenglik bajarilsa, u holda qo’yilgan elektron raqamli imzo haqiqiy (M = M’) bo’ladi. Aks holda imzo qalbaki deb topiladi.
Parametrlarni generatsiyalash
;
Xesh qiymat uzunligi 4 ga tengligi uchun tanlash mumkin.
Shuningdek, ni tanlash mumkin, ya’ni ;
Bundan tashqari, .
Shaxsiy kalit uchun:
U holda ochiq kalit quyidagiga teng bo’ldi: .
deb tanlaylik;
U holda ;
bo’lganligi bois, keying qadamga o’tamiz;
, ya'ni .
bo’lganligi bois, keyingi qadamga o’tamiz:
Imzo jufti ga teng.
;
;
;
;
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 .
1) intervaldan tasodifiy soni tanlanmoqda, bu erda nuqta tartibi shartni qanoatlantiruvchi tub son bo‘lishi kerak.
2) hisoblanadi.
3) hisoblanadi.
4) Agar bo’lsa, u holda 1-qadamga boriladi, aks holda keyingi qadamga o‘tiladi.
5) hisoblanadi.
6) hisoblanadi.
7) hisoblanadi.
8) Agar bo’lsa, u holda 1-qadamga boriladi.
9) - ma'lumot imzosi - juftligidan iborat.
Imzoni tekshirish. Boshlang‘ich ma'lumotlar ma'lumot, berilgan (elliptik chiziqqa aloqador) parametrlar, imzoni tekshirish kaliti va ma'lumot imzoni -(r,s). Natija: imzo haqiqiyligi yoki qalbakiligi haqidagi tasdiq.
Imzoni tekshirish qadamlari:
Agar 1 r, s n-1 bajarilmasa, u holda imzo qalbaki va tekshirishni shu yerda to‘xtatish mumkin.
e= H(M) hisoblansin.
w= H(M) (n-2)mod n hisoblansin.
u1 = s w mod q hisoblansin.
u2 = (n-r) w mod n hisoblansin.
X=[ u1] G+[ u2] Q=(x1,y1) hisoblansin.
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
|
| |