Freigeben über


System.Security.Cryptography.RSAParameters-Struktur

Dieser Artikel enthält ergänzende Hinweise zur Referenzdokumentation für diese API.

Die RSAParameters Struktur stellt die Standardparameter für den RSA-Algorithmus dar.

Die RSA Klasse macht eine ExportParameters Methode verfügbar, mit der Sie den unformatierten RSA-Schlüssel in Form einer RSAParameters Struktur abrufen können.

Um den Inhalt dieser Struktur zu verstehen, hilft es ihnen, mit der Funktionsweise des RSA Algorithmus vertraut zu sein. Im nächsten Abschnitt wird der Algorithmus kurz erläutert.

RSA-Algorithmus

Um ein Schlüsselpaar zu generieren, erstellen Sie zunächst zwei große Primzahlen mit dem Namen "p" und "q". Diese Zahlen werden multipliziert, und das Ergebnis wird n genannt. Da p und q beide Primzahlen sind, sind die einzigen Faktoren von n 1, p, q und n.

Wenn wir nur Zahlen berücksichtigen, die kleiner als n sind, haben die Anzahl der Zahlen, die relativ primiert zu n sind, d. h. keine Faktoren gemeinsam mit n, gleich (p - 1)(q - 1).

Jetzt wählen Sie eine Zahl e aus, die relativ prim für den von Ihnen berechneten Wert ist. Der öffentliche Schlüssel wird jetzt als {e, n} dargestellt.

Um den privaten Schlüssel zu erstellen, müssen Sie d berechnen. Dabei handelt es sich um eine Zahl, die (d)(e) mod (p - 1)(q - 1) = 1 ist. Gemäß dem Euklidischen Algorithmus ist der private Schlüssel jetzt {d, n}.

Die Verschlüsselung von Nurtext m zu Chiffretext c wird als c = (m ^ e) mod n definiert. Entschlüsselung würde dann als m = (c ^ d) mod n definiert.

Zusammenfassung von Feldern

Abschnitt A.1.2 des PKCS #1: RSA Cryptography Standard definiert ein Format für private RSA-Schlüssel.

In der folgenden Tabelle sind die Felder der RSAParameters Struktur zusammengefasst. Die dritte Spalte enthält das entsprechende Feld im Abschnitt A.1.2 von PKCS #1: RSA Cryptography Standard.

RSAParameters -Feld Contains Entsprechendes PKCS #1-Feld
D d, der private Exponent privateExponent
DP d mod (p - 1) exponent1
DQ d mod (q - 1) exponent2
Exponent e, der öffentliche Exponent publicExponent
InverseQ (UmgekehrterQ) (q) = 1 mod p Koeffizient
Modulus n Modulo
P p prime1
Q q Prime2

Die Sicherheit von RSA leitet sich von der Tatsache ab, dass aufgrund des öffentlichen Schlüssels { e, n } die Berechnung von d entweder direkt oder durch Faktor n in p und q nicht möglich ist. Daher muss jeder Teil des Schlüssels, der sich auf d, p oder q bezieht, geheim gehalten werden. Wenn Sie nur die Informationen zu öffentlichen Schlüsseln anrufen ExportParameters und fragen, erhalten Sie daher nur Exponent und Modulus. Die anderen Felder sind nur verfügbar, wenn Sie Zugriff auf den privaten Schlüssel haben und sie anfordern.

RSAParameters ist in keiner Weise verschlüsselt, daher müssen Sie vorsichtig sein, wenn Sie sie mit den privaten Schlüsselinformationen verwenden. Alle Member von RSAParameters werden serialisiert. Wenn jemand die Parameter des privaten Schlüssels ableiten oder abfangen kann, werden der Schlüssel und alle darin verschlüsselten oder signierten Informationen kompromittiert.