RSA — böyük ədədlərin faktorizasiyasının hesablama mürəkkəbliyinə əsaslanan, şifrələmə və rəqəmsal imzanı təmin edən açıq açarlı kriptosistemdir. NIST Special Publication 800-56B Rev. 2 (2023) məlumatlarına görə, 2048 bit açar uzunluğuna malik RSA dövlət və kommersiya sistemləri üçün təhlükəsizlik standartı olaraq qalır. Alqoritm TLS protokollarında, rəqəmsal imzalarda və mobil tətbiqlərdə məlumatların şifrələnməsində geniş istifadə olunur.
Əsas məqamlar
RSA — 1977-ci ildə Ronald Rivest, Adi Şamir və Leonard Adleman tərəfindən hazırlanmış açıq açarlı kriptoqrafik alqoritmdir. Ad müəlliflərin soyadlarının ilk hərflərindən formalaşıb. Alqoritm şifrələmə və deşifrələmə açarlarının fərqləndiyi ilk praktik tətbiq olunan asimmetrik kriptosistem oldu.
RSA alqoritmi 1977-ci ildə Scientific American jurnalında dərc edilmiş və Whitfield Diffi və Martin Hellmanın açıq açarlı kriptoqrafiya üzrə əvvəlki işlərinə əsaslanmışdır. Massachusetts Texnologiya İnstitutu 1983-cü ildə RSA-ya patent aldı və bu patent 2000-ci ilə qədər qüvvədə idi. RSA Laboratories (2023) hesabatına görə, alqoritm dünyada ən geniş yayılmış kriptoqrafik standartlardan biri olaraq qalır — hər gün milyardlarla cihazda istifadə olunur.
Eyni açarın həm şifrələmə, həm də deşifrələmə üçün istifadə edildiyi simmetrik şifrlərdən fərqli olaraq, RSA riyazi olaraq əlaqəli açar cütü ilə işləyir. Açıq açar sistemin kompromatasiya olunma riski olmadan hər kəs üçün dərc edilə bilər. Gizli açar yalnız sahibinə məlumdur və heç vaxt şəbəkə üzərindən ötürülmür. IBM Security X-Force Threat Intelligence Index (2024) araşdırmasına görə, asimmetrik şifrələmə müasir təhlükəsiz məlumat ötürümə protokollarının 96%-də istifadə olunur.
RSA-nın təhlükəsizliyi faktorizasiya məsələsinə — iki böyük sadə ədədin hasilinin vuruqlara ayrılmasına əsaslanır. Hər biri 1024 bit uzunluğunda p və q sadə ədədləri seçilərsə, onların hasili n 2048 bit olacaq. Yalnız n-i bilərək p və q-nu müasir üsullarla hesablamaq praktiki olaraq mümkünsüzdür: CNRS (2024) ekspert qiymətləndirməsinə görə, RSA-2048-i qırmaq klassik kompüterdə 300 milyard ildən çox hesablama tələb edər.
RSA-nın açar yaranmasından mesajın şifrələnməsi və deşifrələnməsinə qədər tam iş dövranını nəzərdən keçirək. Bu mərhələləri başa düşmək alqoritmin mobil tətbiqlərdə düzgün tətbiqi üçün zəruridir.
Proses iki böyük sadə ədədin p və q seçilməsi ilə başlayır. Açar uzunluğunu müyyən edən n = p x q modulu hesablanır. Sonra Eyler funksiyası phi(n) = (p-1)(q-1) hesablanır. phi(n) ilə qarşılıqlı sadə olan açıq eksponent e seçilir. Gizli eksponent d, e-nin phi(n) moduluna görə multiplikativ tərsi kimi hesablanır. NIST SP 800-56B Rev. 2-yə görə, münasib müdafiəni təmin etmək üçün n-in minimal uzunluğu 2048 bit olmalıdır.
import java.security.KeyPairGenerator;
import java.security.KeyPair;
import java.security.SecureRandom;
public class RSAKeyGenerator {
public static KeyPair generateKeyPair() throws Exception {
KeyPairGenerator generator = KeyPairGenerator.getInstance("RSA");
generator.initialize(2048, new SecureRandom());
return generator.generateKeyPair();
}
}
m mesajını şifrələmək üçün göndərən onu n-dən kiçik tam ədədə çevirir və c = m^e mod n şifrə mətnini hesablayır. Alan tərəf orijinal mesajı bərpa etmək üçün gizli açar d-dən istifadə edir: m = c^d mod n. Qeyd etmək vacibdir ki, RSA aşağı məhsuldarlıq səbəbindən böyük həcmli məlumatların şifrələnməsi üçün nəzərdə tutulmayıb — maksimum mesaj ölçüsü açar uzunluğu minus xidmət baytlarına bərabərdir (OAEP ilə RSA-2048 üçün təxminən 190 bayt).
import javax.crypto.Cipher;
import java.security.PublicKey;
import java.util.Base64;
public class RSAEncryptor {
public static String encrypt(String data, PublicKey publicKey) throws Exception {
Cipher cipher = Cipher.getInstance("RSA/ECB/OAEPWithSHA-256AndMGF1Padding");
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
byte[] encrypted = cipher.doFinal(data.getBytes());
return Base64.getEncoder().encodeToString(encrypted);
}
}
RSA həmçinin rəqəmsal imzaların yaradılması üçün istifadə olunur — məlumatların həqiqiliyini və bütövlüyünü yoxlama mexanizmi. Sahib mesajın heşini öz gizli açarı ilə imzalayır və hər kəs açıq açarla imzanı yoxlaya bilər. Sectigo Certificate Transparency (2025) hesabatına görə, internetdəki TLS sertifikatlarının 85%-dən çoxu rəqəmsal imza üçün RSA-dan istifadə edir və bu alqoritmi veb kommunikasiya etibarının əsasına çevirir.
import java.security.Signature
fun signData(data: ByteArray, privateKey: java.security.PrivateKey): ByteArray {
val signature = Signature.getInstance("SHA256withRSA")
signature.initSign(privateKey)
signature.update(data)
return signature.sign()
}
fun verifySignature(
data: ByteArray, signedData: ByteArray, publicKey: java.security.PublicKey
): Boolean {
val signature = Signature.getInstance("SHA256withRSA")
signature.initVerify(publicKey)
signature.update(data)
return signature.verify(signedData)
}
Açar uzunluğu RSA-nın kripto davamlılığına birbaşa təsir edir. Hesablama gücünün artması ilə minimal icazə verilən açar ölçüsü beynəlxalq standartlaşdırma təşkilatları tərəfindən müzəmən yenidən nəzərdən keçirilir. NIST və digər tənzimləyicilərin cari tövsiyələrinə baxaq.
| Açar uzunluğu | Simmetrik ekvivalent | Status |
|---|---|---|
| 1024 bit | 80 bit | 2023-cü ildən qadağan |
| 2048 bit | 112 bit | Minimal standart |
| 3072 bit | 128 bit | Yeni sistemlər üçün tövsiyə olunur |
| 4096 bit | 256 bit | Məxfi məlumatlar üçün |
RSA açar uzunluğunun artırılması əməliyyatların yerinə yetirilmə müddətinə əhəmiyyətli dərəcədə təsir edir. 4096 bit uzunluğunda açarın yaranması 2048 bitdən təxminən 10 dəfə çox vaxt aparır. Uzun açarla şifrələmə və deşifrələmə əməliyyatları daha çox hesablama resursları tələb edir ki, bu da məhdud enerji istehlakı olan mobil cihazlar üçün kritikdir.
Kvant hesablamalarının inkişafı ilə RSA Şor alqoritmi vasitəsilə çoxhədli vaxtda qırıla bilər. 1994-cü ildə Peter Şor tərəfindən təklif edilmiş bu alqoritm böyük ədədləri O((log n)^3) əməliyyat zamanında faktorizasiya etməyə imkan verir. IBM Quantum Roadmap (2025)-a görə, RSA-2048-in praktik qırılması 2035-ci ildən tez gözlənmir, lakin NIST artıq CRYSTALS-Kyber və CRYSTALS-Dilithium postkvant alqoritmlərinə tədricən keçidi tövsiyə edir.
RSA mobil tətbiqlərdə təhlükəsiz məlumat ötürüməsini təmin etmək, serverlərin həqiqiliyini yoxlamaq və rəqəmsal əməliyyatları qorumaq üçün fəal istifadə olunur. İnteqrasiya hər iki əsas platformanın standart kriptoqrafik API-ləri vasitəsilə həyata keçirilir.
Android platforması Android Keystore — Trusted Execution Environment səviyyəsində qorunan sistem kriptoqrafik açar anbarını təqdim edir. KeyStore-da yaradılan RSA açarları tətbiq kompromatasiya olunsa belə cihazdan çıxarıla bilməz. Bu, root girişi olan malware daxil olmaqla geniş hücum sinifindən qoruma təmin edir.
import android.security.keystore.KeyGenParameterSpec
import android.security.keystore.KeyProperties
import java.security.KeyPairGenerator
fun generateKeyInAndroidKeystore() {
val generator = KeyPairGenerator.getInstance(
KeyProperties.KEY_ALGORITHM_RSA,
"AndroidKeyStore"
)
val spec = KeyGenParameterSpec.Builder(
"rsa_key_pair",
KeyProperties.PURPOSE_ENCRYPT or KeyProperties.PURPOSE_DECRYPT
)
.setKeySize(2048)
.setBlockModes(KeyProperties.BLOCK_MODE_ECB)
.setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_RSA_OAEP)
.build()
generator.initialize(spec)
val keyPair = generator.generateKeyPair()
}
iOS-də RSA ilə iş üçün A7 çipi və daha yeni cihazlarda Secure Enclave-ə çıxışı olan Security Framework istifadə olunur. Secure Enclave — əsas prosessordan təcrid olunmuş xüsusi kprosessor olub, kriptoqrafik əməliyyatları yerinə yetirir və açarları aparat konklavında saxlayır. RSA açarları həm Secure Enclave daxilində, həm də müxtəlif giriş səviyyələri ilə proqram Keychain-də yaradıla bilər.
Real mobil tətbiqlərdə RSA nadirən böyük məlumatların birbaşa şifrələnməsi üçün istifadə olunur. Standart təcrübə hibrid sxemdir: tətbiq AES sessiya açarı yaradır, onu serverin RSA açıq açarı ilə şifrələyir və serverə göndərir. Bütün sonrakı trafik AES ilə şifrələnir ki, bu da RSA vasitƄsilə birbaşa məlumat ötürülməsindən 100–1000 dəfə sürətli olur.
Hər bir kriptoqrafik alqoritm kimi RSA-nın da təhlükəsiz sistemlərin layihələndirilməsində nəzərə alınmalı olan güclü və zəif tərəfləri var. Obyektiv qiymətləndirmə konkret tapşırıq üçün düzgün alət seçməyə kömək edir.
RSA-nın əsas üstünlüyü açarların paylanmasının fundamental probleminin həllidir — açıq açar bütün sistemi kompromatasiya etmə riski olmadan sərbəst dərc edilə bilər. Alqoritmin universallığı həm şifrələmənin, həm də eyni açar cütü ilə rəqəmsal imzanın dəstəklənməsində özünü göstərir. Bundan əlavə, RSA geniş dəstək ekosisteminə malikdir: kitabxanalar bütün dillər və platformalar üçün mövcuddur.
RSA-nın əsas çatışmazlığı simmetrik alqoritmlərlə müqayisədə aşağı məhsuldarlıqdır. Müasir mobil prosessorda RSA-2048-in deşifrələnməsi təxminən 5–15 millisaniyə çəkir, halbuki AES-256 eyni vaxtda giqabayt məlumatı emal edir. Həmçinin RSA Şor alqoritmi vasitəsilə kvant hücumlarına qarşı həssasdır ki, bu da onun uzunmüddətli məlumat qorunması olan sistemlərdə tətbiqini məhdudlaşdırır.
Mobil layihələr üçün NIST ekspertləri tövsiyə edir: RSA-nı yalnız açarların şifrələnməsi və rəqəmsal imzalar üçün istifadə edin, yeni layihələr üçün 3072 bitdən az olmayan açar uzunluğu seçin, hibrid sxemdə RSA-nı AES ilə birləşdirin və uzunmüddətli perspektivdə planlı miqrasiya üçün postkvant standartlarının inkişafını izləyin.
Tez-tez verilən suallar
RSA — açar cütü ilə asimmetrik alqoritm, kiçik həcmli məlumatların şifrələnməsi və rəqəmsal imzalar üçün istifadə olunur. AES — bir ortaq açarla simmetrik alqoritm, RSA-dan 100–1000 dəfə sürətli işləyir. Müasir sistemlərdə onlar birləşdirilir: RSA AES sessiya açarının ötürülməsini qoruyur, AES isə əsas trafiki şifrələyir.
2023-cü ildən etibarən minimal təhlükəsiz ölçü NIST SP 800-131A Rev. 2-yə əsasən RSA-2048-dir. 1024 bit açarlar ABŞ dövlət sistemləri üçün rəsmi qadağan edilib. Yeni layihələr üçün 3072 bit tövsiyə olunur ki, bu da təhlükəsizlik ehtiyatı və 128-bit simmetrik şifrələməyə ekvivalent davamlılıq təmin edir.
Bəli, RSA mobil tətbiqlərdə geniş istifadə olunur. Android RSA açarlarının aparat yaranması və təhlükəsiz saxlanması üçün Android KeyStore təqdim edir. iOS — Secure Enclave dəstəyi ilə Security Framework. Böyük məlumatların şifrələnməsi üçün RSA + AES hibrid sxemi tövsiyə olunur, burada RSA yalnız sessiya açarını şifrələyir.
Klassik kompüterlərdə RSA-2048 qırmaq praktiki olaraq qeyri-mümkündür — müasir hesablamalara görə bunun üçün 300 milyard ildən çox fasiləsiz hesablama tələb olunardı. Lakin kifayət qədər kubiti olan kvant kompüteri Şor alqoritmi ilə RSA-2048-i bir neçə dəqiqəyə qıra biləcək. IBM-in qiymətləndirməsinə görə, belə bir kompüter 2035-ci ildən tez görünməyəcək.
Asimmetrik alqoritmlər arasında ECC (Elliptic Curve Cryptography) məşhurdur, daha kiçik açar uzunluğunda ekvivalent təhlükəsizlik təmin edir — 256-bit ECC RSA-3072-yə ekvivalentdir. Postkvant dövrü üçün NIST 2024-cü ildə şifrələmə üçün CRYSTALS-Kyber və rəqəmsal imzalar üçün CRYSTALS-Dilithium seçdi.
Nəticə
Açar təslim mobil tətbiq hazırlayacağıq
IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.
Həm də oxuyun