System.Security.Cryptography.RSAParameters yapısı

Bu makale, bu API'nin başvuru belgelerine ek açıklamalar sağlar.

Yapısı, RSAParameters RSA algoritması için standart parametreleri temsil eder.

sınıfı, RSA ham RSA anahtarını bir ExportParameters yapı biçiminde almanıza olanak tanıyan bir RSAParameters yöntemi kullanıma sunar.

Bu yapının içeriğini anlamak için algoritmanın RSA nasıl çalıştığı hakkında bilgi sahibi olmanıza yardımcı olur. Sonraki bölümde algoritma kısaca ele alınmaktadır.

RSA algoritması

Anahtar çifti oluşturmak için p ve q adlı iki büyük asal sayı oluşturarak işe başlarsınız. Bu sayılar çarpılır ve sonuç n olarak adlandırılır. p ve q asal sayılar olduğundan, n'nin tek faktörü 1, p, q ve n'dir.

Yalnızca n'den küçük sayıları dikkate alırsak, görece asal olan sayıların sayısı n, eşittir (p - 1)(q - 1) ile ortak bir faktöre sahip değildir.

Şimdi, hesapladığınız değere göre daha asal olan bir e sayısı seçersiniz. Ortak anahtar artık {e, n} olarak temsil edilir.

Özel anahtarı oluşturmak için, (d)(e) mod (p - 1)(q - 1) = 1 gibi bir sayı olan d değerini hesaplamanız gerekir. Öklid algoritmasına uygun olarak özel anahtar artık {d, n} olur.

Düz metin m ile şifreleme c = (m ^ e) mod n olarak tanımlanır. Daha sonra şifre çözme m = (c ^ d) mod n olarak tanımlanabilir.

Alanların özeti

PKCS #1: RSA Şifreleme Standardı'nın A.1.2 bölümü, RSA özel anahtarları için bir biçim tanımlar.

Aşağıdaki tabloda, yapının alanları özetlemektedir RSAParameters . Üçüncü sütun, PKCS #1: RSA Şifreleme Standardı'nın A.1.2 bölümünde karşılık gelen alanı sağlar.

RSAParameters Alan Contains İlgili PKCS #1 alanı
D d, özel üs privateExponent
DP d mod (p - 1) exponent1
DQ d mod (q - 1) exponent2
Exponent e, genel üs publicExponent
InverseQ (TersQ) (q) = 1 mod p Katsayısı
Modulus n mod
P ös prime1
Q q prime2

RSA'nın güvenliği, { e, n } ortak anahtarı verildiğinde, doğrudan veya p ve q'ya n hesaba katarak d hesaplamanın işlem açısından mümkün olmamasından kaynaklanır. Bu nedenle anahtarın d, p veya q ile ilgili herhangi bir bölümü gizli tutulmalıdır. Yalnızca ortak anahtar bilgilerini arar ExportParameters ve sorarsanız, bu nedenle yalnızca Exponent ve Modulusalırsınız. Diğer alanlar yalnızca özel anahtara erişiminiz varsa ve bunu istediğinizde kullanılabilir.

RSAParameters herhangi bir şekilde şifrelenmediğinden, özel anahtar bilgileriyle kullanırken dikkatli olmanız gerekir. tüm üyeleri RSAParameters serileştirilir. Herhangi biri özel anahtar parametrelerini türetebilir veya araya girebilirse, anahtar ve şifrelenen veya onunla imzalanan tüm bilgiler tehlikeye girer.