RSAParameters Struktur

Definition

Stellt die Standardparameter für den RSA-Algorithmus dar.Represents the standard parameters for the RSA algorithm.

public value class RSAParameters
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public struct RSAParameters
type RSAParameters = struct
Public Structure RSAParameters
Vererbung
RSAParameters
Attribute

Hinweise

Die RSA -Klasse macht ExportParameters eine-Methode verfügbar, mit der Sie den unformatierten RSA-Schlüssel RSAParameters in Form einer-Struktur abrufen können.The RSA class exposes an ExportParameters method that enables you to retrieve the raw RSA key in the form of an RSAParameters structure. Wenn Sie den Inhalt dieser Struktur verstehen, müssen Sie sich RSA mit der Funktionsweise des Algorithmus vertraut machen.Understanding the contents of this structure requires familiarity with how the RSA algorithm works. Im nächsten Abschnitt wird der Algorithmus kurz erläutert.The next section discusses the algorithm briefly.

RSA-AlgorithmusRSA Algorithm

Um ein Schlüsselpaar zu generieren, erstellen Sie zunächst zwei große Primzahlen mit den Namen "p" und "q".To generate a key pair, you start by creating two large prime numbers named p and q. Diese Zahlen werden multipliziert, und das Ergebnis wird n genannt.These numbers are multiplied and the result is called n. Da es sich bei p und q um Primzahlen handelt, sind die einzigen Faktoren von n 1, p, q und n.Because p and q are both prime numbers, the only factors of n are 1, p, q, and n.

Wenn nur Ziffern kleiner als n berücksichtigt werden, ist die Anzahl der Zahlen, die relativ Primzahlen sind, nicht mit n, d. h., es gibt keine allgemeinen Faktoren mit n, ist gleich(q-1).If we consider only numbers that are less than n, the count of numbers that are relatively prime to n, that is, have no factors in common with n, equals (p - 1)(q - 1).

Nun wählen Sie eine Zahl e aus, die für den von Ihnen berechneten Wert relativ Prim Wert ist.Now you choose a number e, which is relatively prime to the value you calculated. Der öffentliche Schlüssel wird jetzt als {e, n} dargestellt.The public key is now represented as {e, n}.

Um den privaten Schlüssel zu erstellen, müssen Sie d berechnen. Dies ist eine Zahl, die (d) (e) mod (p-1) (q-1) = 1 ist.To create the private key, you must calculate d, which is a number such that (d)(e) mod (p - 1)(q - 1) = 1. In Übereinstimmung mit dem euklidischen Algorithmus lautet der private Schlüssel jetzt {d, n}.In accordance with the Euclidean algorithm, the private key is now {d, n}.

Die Verschlüsselung von Klartext m in Chiffre Text c ist als c = (m ^ e) mod n definiert.Encryption of plaintext m to ciphertext c is defined as c = (m ^ e) mod n. Die Entschlüsselung wird dann als m = (c ^ d) mod n definiert.Decryption would then be defined as m = (c ^ d) mod n.

Zusammenfassung der FelderSummary of Fields

Abschnitt A. 1.2 der PKCS-#1: RSA Cryptography Standard auf der RSA-laborationswebsite definiert ein Format für private RSA-Schlüssel.Section A.1.2 of the PKCS #1: RSA Cryptography Standard on the RSA Laboratories Web site defines a format for RSA private keys.

In der folgenden Tabelle werden die Felder der RSAParameters -Struktur zusammengefasst.The following table summarizes the fields of the RSAParameters structure. Die dritte Spalte enthält das entsprechende Feld im Abschnitt A. 1.2 der PKCS-#1: RSA-Kryptografiestandard.The third column provides the corresponding field in section A.1.2 of PKCS #1: RSA Cryptography Standard.

RSAParameters -FeldRSAParameters field EnthältContains Entsprechendes PKCS-#1 FeldCorresponding PKCS #1 field
D d, der private Exponentd, the private exponent privateexponentprivateExponent
DP d mod (p-1)d mod (p - 1) exponent1exponent1
DQ d mod (q-1)d mod (q - 1) exponent2exponent2
Exponent e, der öffentliche Exponente, the public exponent publicexponentpublicExponent
InverseQ (Inverabq) (q) = 1 mod p(InverseQ)(q) = 1 mod p Fakcoefficient
Modulus nn modulusmodulus
P pp prime1prime1
Q qq prime2prime2

Die Sicherheit von RSA ist von der Tatsache abgeleitet, dass es angesichts des öffentlichen Schlüssels {e, n} Rechen mäßig möglich ist, d entweder direkt oder durch Factoring von n in p und q zu berechnen.The security of RSA derives from the fact that, given the public key { e, n }, it is computationally infeasible to calculate d, either directly or by factoring n into p and q. Daher muss jeder Teil des Schlüssels, der sich auf d, p oder q bezieht, geheim gehalten werden.Therefore, any part of the key related to d, p, or q must be kept secret. Wenn SieIf you call

ExportParametersWenn Sie nur die Informationen zum öffentlichen Schlüssel anfordern, erhalten Sie nur Exponent und. ModulusExportParameters and ask for only the public key information, this is why you will receive only Exponent and Modulus. Die anderen Felder sind nur verfügbar, wenn Sie Zugriff auf den privaten Schlüssel haben und ihn anfordern.The other fields are available only if you have access to the private key, and you request it.

RSAParameterswird in keiner Weise verschlüsselt. Sie müssen daher bei Verwendung mit den Informationen des privaten Schlüssels vorsichtig sein.RSAParameters is not encrypted in any way, so you must be careful when you use it with the private key information. Tatsächlich können keines der Felder, die Informationen zum privaten Schlüssel enthalten, serialisiert werden.In fact, none of the fields that contain private key information can be serialized. Wenn Sie versuchen, eine RSAParameters Struktur mit einem remotingrückruf zu serialisieren oder einen der serialisierungsinitialisierer verwenden, erhalten Sie nur Informationen zum öffentlichen Schlüssel.If you try to serialize an RSAParameters structure with a remoting call or by using one of the serializers, you will receive only public key information. Wenn Sie Informationen zum privaten Schlüssel übergeben möchten, müssen Sie diese Daten manuell senden.If you want to pass private key information, you will have to manually send that data. Wenn alle Parameter von einem abgeleitet werden können, wird der von Ihnen übertragte Schlüssel unbrauchbar.In all cases, if anyone can derive the parameters, the key that you transmit becomes useless.

.Net Core 2.1.0 undhöher: Die Serialisierungseinschränkungen wurden entfernt, und alle Member RSAParameters von werden serialisiert..NET Core 2.1.0 and later: The serialization restrictions have been removed and all members of RSAParameters are serialized. Beim Schreiben oder Aktualisieren von Code für .net Core 2.1.0 oder höher müssen Sie sorgfältig vorgehen, da der Schlüssel und alle Informationen, die verschlüsselt oder signiert wurden, kompromittiert sind, wenn jemand die Parameter des privaten Schlüssels ableiten oder abfangen kann.Care must be excercised when writing or upgrading code against .NET Core 2.1.0 or later, because if anyone can derive or intercept the private key parameters the key and all the information encrypted or signed with it are compromised.

Felder

D

Stellt den D-Parameter für den RSA-Algorithmus dar.Represents the D parameter for the RSA algorithm.

DP

Stellt den DP-Parameter für den RSA-Algorithmus dar.Represents the DP parameter for the RSA algorithm.

DQ

Stellt den DQ-Parameter für den RSA-Algorithmus dar.Represents the DQ parameter for the RSA algorithm.

Exponent

Stellt den Exponent-Parameter für den RSA-Algorithmus dar.Represents the Exponent parameter for the RSA algorithm.

InverseQ

Stellt den InverseQ-Parameter für den RSA-Algorithmus dar.Represents the InverseQ parameter for the RSA algorithm.

Modulus

Stellt den Modulus-Parameter für den RSA-Algorithmus dar.Represents the Modulus parameter for the RSA algorithm.

P

Stellt den P-Parameter für den RSA-Algorithmus dar.Represents the P parameter for the RSA algorithm.

Q

Stellt den Q-Parameter für den RSA-Algorithmus dar.Represents the Q parameter for the RSA algorithm.

Gilt für:

Siehe auch