🍋
Menu
Security

RSA

RSA (Rivest-Shamir-Adleman)

Algoritma enkripsi asimetris yang banyak digunakan berdasarkan kesulitan matematis memfaktorkan bilangan prima besar, memungkinkan pertukaran kunci yang aman, tanda tangan digital, dan komunikasi terenkripsi tanpa berbagi kunci rahasia.

Detail Teknis

RSA menghasilkan pasangan kunci: kunci publik (n, e) untuk enkripsi dan kunci privat (n, d) untuk dekripsi, di mana n adalah produk dari dua bilangan prima besar. Enkripsi menghitung c = m^e mod n, dan dekripsi menghitung m = c^d mod n. Ukuran kunci 2.048 bit adalah rekomendasi minimum saat ini; 4.096 bit memberikan margin keamanan lebih besar. RSA lebih lambat dari algoritma simetris, sehingga dalam praktiknya RSA mengenkripsi kunci sesi AES acak daripada data massal (enkripsi hybrid). RSA-OAEP (Optimal Asymmetric Encryption Padding) mencegah serangan chosen-ciphertext. RSA-PSS adalah skema tanda tangan yang direkomendasikan.

Contoh

```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')
);
```

Alat Terkait

Istilah Terkait