RSA
RSA (Rivest-Shamir-Adleman)
Büyük asal sayıların çarpanlarına ayrılmasının matematiksel zorluğuna dayanan, gizli bir anahtar paylaşmadan güvenli anahtar değişimi, dijital imzalar ve şifreli iletişim sağlayan yaygın kullanılan bir asimetrik şifreleme algoritmasıdır.
Teknik Detay
RSA bir anahtar çifti oluşturur: şifreleme için açık anahtar (n, e) ve şifre çözme için özel anahtar (n, d), burada n iki büyük asal sayının çarpımıdır. Şifreleme c = m^e mod n hesaplar, şifre çözme m = c^d mod n hesaplar. 2.048 bit anahtar boyutları güncel minimum önerilerdir; 4.096 bit daha geniş güvenlik marjı sağlar. RSA simetrik algoritmalardan yavaştır, bu nedenle pratikte toplu veri yerine rastgele bir AES oturum anahtarını şifreler (hibrit şifreleme). RSA-OAEP (Optimal Asymmetric Encryption Padding), seçilmiş-şifreli-metin saldırılarını önler. RSA-PSS önerilen imza şemasıdır.
Ornek
```javascript
// AES-256-GCM encryption (Web Crypto API)
const key = await crypto.subtle.generateKey(
{ name: 'AES-GCM', length: 256 }, true, ['encrypt', 'decrypt']
);
const iv = crypto.getRandomValues(new Uint8Array(12));
const ciphertext = await crypto.subtle.encrypt(
{ name: 'AES-GCM', iv },
key,
new TextEncoder().encode('secret message')
);
```