Bosh sahifa Wiki RSA

RSA

RSA — Rivest, Shamir va Adleman tomonidan 1977-yilda taqdim etilgan, katta butun sonlarni faktorlash qiyinligiga tayanuvchi ochiq kalitli kriptografik algoritm. RSA public-key encryption, raqamli imzo va tarixan TLS key exchange uchun ishlatilgan. Zamonaviy tizimda “xom RSA” qo‘llanmaydi; xavfsizlik uchun OAEP shifrlash paddingi yoki PSS imzo sxemasi kabi standart kodlash usullari zarur.

Kalit yaratish

Ikki katta tasodifiy tub son p va q tanlanadi, ularning ko‘paytmasi n = p × q modulusni hosil qiladi. Euler yoki Carmichael funksiyasiga nisbatan mos public exponent e tanlanadi, private exponent d esa ening modul bo‘yicha teskarisi sifatida hisoblanadi. Public key (n, e), private key esa d va ko‘pincha tez hisoblash uchun p, q hamda CRT parametrlarini o‘z ichiga oladi.

e = 65537 keng tarqalgan public exponentdir. Tub sonlar kriptografik random generator bilan mustaqil yaratiladi va yetarli farqqa ega bo‘lishi kerak. Zaif random generator turli qurilmalarda bir xil tub sonni qayta ishlatsa, modullar GCD orqali faktorlash mumkin. Private key generatsiya qilingan muhitdan himoyasiz chiqmaydi.

RSA-OAEP

RSA bir amal bilan faqat modulusdan kichik qiymatni qayta ishlaydi va katta faylni bevosita shifrlash uchun samarali emas. Hybrid encryptionda tasodifiy simmetrik data key yaratiladi, ma’lumot AES-GCM kabi AEAD bilan shifrlanadi, RSA-OAEP esa faqat data keyni o‘raydi.

OAEP hash va mask generation function orqali randomized encoding beradi. Bir xil plaintext har safar boshqa ciphertext hosil qiladi va chosen-ciphertext hujumlariga qarshi standart xavfsizlik xususiyatlarini ko‘zlaydi. Eski PKCS#1 v1.5 encryption decryption xatolari farqlansa Bleichenbacher oracle hujumlariga moyil. Yangi protokolda OAEP aniq hash parametrlari bilan qo‘llanadi.

RSA-PSS imzosi

RSA-PSS xabar hashini random salt va mask bilan kodlab, private key orqali signature yaratadi. Verifikator public key bilan signature’ni tekshiradi va xabar hashiga mosligini aniqlaydi. PSS yangi dizaynlar uchun tavsiya etiladigan RSA imzo paddingidir. Eski PKCS#1 v1.5 signature ko‘plab standartlarda mavjud, ammo implementatsiya ASN.1 va paddingni qat’iy tekshirishi kerak.

Imzo xabarni maxfiy qilmaydi. Public keyga ega istalgan tomon tekshirishi mumkin. Signature matematik jihatdan to‘g‘ri chiqsa ham, public keyning kimga tegishli ekanini PKI, sertifikat yoki ishonchli fingerprint belgilaydi.

Kalit uzunligi va samaradorlik

2048 bit RSA ko‘plab amaldagi tizimlar uchun minimal keng tarqalgan o‘lchamdir; uzoq muddat yoki siyosat talabida 3072 bit ishlatilishi mumkin. RSA bit uzunligi simmetrik key bitiga teng xavfsizlik bermaydi. 2048 bit modulus taxminan 112 bit klassik security levelga yaqin deb baholanadi.

Private key amallari public key tekshiruviga qaraganda qimmatroq. CRT private operatsiyani tezlashtiradi, ammo fault attackga qarshi natijani public exponent bilan qayta tekshirish foydali bo‘lishi mumkin. Timing va cache side-channelni kamaytirish uchun blinding va sinovdan o‘tgan kutubxona ishlatiladi.

TLS va forward secrecy

Eski TLS_RSA key exchange’da client premaster secretni server RSA public keyi bilan shifrlagan. Serverning uzoq muddatli private keyi keyinchalik o‘g‘irlansa, oldin yozib olingan sessiyalar ochilishi mumkin. Zamonaviy TLS ephemeral Diffie–Hellman ishlatib forward secrecy beradi; RSA sertifikat imzosi uchun qolishi mumkin, lekin session key exchange’ni bevosita bajarmaydi.

Katta, barqaror quantum kompyuter Shor algoritmi bilan RSA faktorlash muammosini buzishi mumkin. Post-quantum migratsiya uzoq yillar maxfiy qolishi kerak bo‘lgan data va sertifikat hayot siklini hisobga oladi. Faqat RSA keyni kattalashtirish quantum tahdidni hal qilmaydi.

Bog‘liq tushunchalar

Public-key cryptography, RSA-OAEP, RSA-PSS, Modulus, Digital signature, PKI, Hybrid encryption