Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini menyediakan keterangan tambahan untuk dokumentasi referensi untuk API ini.
Struktur RSAParameters mewakili parameter standar untuk algoritma RSA.
Kelas RSA ini mengekspos metode ExportParameters yang memungkinkan Anda mengambil kunci RSA asli dalam struktur RSAParameters.
Untuk memahami isi struktur ini, akan membantu untuk memahami cara kerja algoritma RSA. Bagian berikutnya membahas algoritma secara singkat.
Algoritma RSA
Untuk menghasilkan pasangan kunci, Anda mulai dengan membuat dua angka utama besar bernama p dan q. Angka-angka ini dikalikan dan hasilnya disebut n. Karena p dan q keduanya adalah angka utama, satu-satunya faktor n adalah 1, p, q, dan n.
Jika kita hanya mempertimbangkan bilangan yang kurang dari n, jumlah bilangan yang relatif prima terhadap n, yaitu, tidak memiliki faktor pembagi bersama dengan n, sama dengan (p - 1)(q - 1).
Kini Anda memilih bilangan e, yang relatif prima terhadap nilai yang Anda hitung. Kunci publik sekarang direpresentasikan sebagai {e, n}.
Untuk membuat kunci privat, Anda harus menghitung d, yang merupakan angka seperti mod (d)(e) (p - 1)(q - 1) = 1. Sesuai dengan algoritma Euclidean, kunci privat sekarang adalah {d, n}.
Enkripsi teks biasa m ke ciphertext c didefinisikan sebagai c = (m ^ e) mod n. Dekripsi kemudian akan didefinisikan sebagai m = (c ^ d) mod n.
Ringkasan bidang
Bagian A.1.2 dari PKCS #1: Standar Kriptografi RSA mendefinisikan format untuk kunci privat RSA.
Tabel berikut ini meringkas bidang dari struktur RSAParameters. Kolom ketiga menyediakan bidang yang sesuai di bagian A.1.2 dari PKCS #1: Standar Kriptografi RSA.
| RSAParameters bidang | Berisi | Bidang yang berhubungan dengan PKCS #1 |
|---|---|---|
| D | d, eksponen privat | privateExponent |
| DP | d mod (p - 1) | eksponen1 |
| DQ | d mod (q - 1) | eksponen2 |
| Exponent | e, eksponen publik | publicExponent |
| InverseQ | (InverseQ)(q) = 1 mod p | koefisien |
| Modulus | n | Modulus |
| P | p | prime1 |
| Q | q | prime2 |
Keamanan RSA berasal dari fakta bahwa, mengingat kunci umum { e, n }, secara komputasi tidak layak untuk menghitung d, baik secara langsung atau dengan memperhitungkan n ke p dan q. Oleh karena itu, setiap bagian dari kunci yang terkait dengan d, p, atau q harus dirahasiakan. Jika Anda memanggil ExportParameters dan hanya meminta informasi kunci publik, inilah sebabnya Anda akan menerima hanya Exponent dan Modulus. Bidang lain hanya tersedia jika Anda memiliki akses ke kunci privat, dan Anda memintanya.
RSAParameters tidak dienkripsi dengan cara apa pun, jadi Anda harus berhati-hati saat menggunakannya dengan informasi kunci privat. Semua anggota RSAParameters dikonversi menjadi format serial. Jika ada yang dapat memperoleh atau mencegat parameter kunci privat, kunci dan semua informasi yang dienkripsi atau ditandatangani dengannya disusupi.