Bagikan melalui


Struktur Parameter RSA dalam System.Security.Cryptography

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.