RSAParameters RSAParameters RSAParameters RSAParameters Struct

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
RSAParametersRSAParametersRSAParametersRSAParameters
Attribute

Hinweise

Die RSA -Klasse macht ein ExportParameters Methode, die Sie zum Abrufen des Rohdaten in Form von RSA-Schlüssels ermöglicht eine RSAParameters Struktur.The RSA class exposes an ExportParameters method that enables you to retrieve the raw RSA key in the form of an RSAParameters structure. Grundlegendes zu den Inhalten dieser Struktur ist es erforderlich, mit der Funktionsweise des RSA -Algorithmus kann.Understanding the contents of this structure requires familiarity with how the RSA algorithm works. Im nächsten Abschnitt wird den Algorithmus kurz an.The next section discusses the algorithm briefly.

RSA-AlgorithmusRSA Algorithm

Um ein Schlüsselpaar zu generieren, zunächst erstellen Sie zwei großen Primzahlen 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 bezeichnet.These numbers are multiplied and the result is called n. Da p und Q Primzahlen, die nur Faktoren von n sind-1 "," p "," f "und" n sind.Because p and q are both prime numbers, the only factors of n are 1, p, q, and n.

Wenn wir nur Zahlen berücksichtigt, die weniger als n, die Anzahl der Zahlen, die relativ gutes bis n, d. h. keine Faktoren haben gemeinsam mit n, Equals (p - 1)(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).

Wählen Sie nun eine Reihe e, relativ gutes auf den Wert an, die, den Sie berechnet, ist.Now you choose a number e, which is relatively prime to the value you calculated. Der öffentliche Schlüssel ist jetzt als {e, n} dargestellt.The public key is now represented as {e, n}.

Um den privaten Schlüssel zu erstellen, müssen Sie berechnen, d, wenn eine Zahl ist, dass (d)(e) mod (p - 1)(q-1) = 1.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 den euklidischen Algorithmus, der private Schlüssel ist jetzt {d, n}.In accordance with the Euclidean algorithm, the private key is now {d, n}.

Verschlüsselung von nur-Text-m, um den verschlüsselten Text c ist definiert als c = (m ^ e) mod n.Encryption of plaintext m to ciphertext c is defined as c = (m ^ e) mod n. Entschlüsselung würde dann definiert werden, als m = (c ^ d) mod n.Decryption would then be defined as m = (c ^ d) mod n.

Zusammenfassung der FelderSummary of Fields

Im Abschnitt A.1.2, der die PKCS #1: RSA Cryptography Standard auf der Webseite von RSA Laboratories-Standort 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.

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

RSAParameters -FeldRSAParameters field EnthältContains Entsprechende PKCS #1-FeldCorresponding PKCS #1 field
D d, Exponent des privaten Schlüsselsd, 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, den öffentlichen Exponentene, the public exponent publicExponentpublicExponent
InverseQ (InverseQ) (Q) = 1 mod p(InverseQ)(q) = 1 mod p Koeffizientcoefficient
Modulus nn modulusmodulus
P pp prime1prime1
Q qq prime2prime2

Die Sicherheit von RSA leitet sich von der Tatsache, dass, wenn den öffentlichen Schlüssel {e, n}, es rechnerisch unmöglich, d, entweder direkt oder durch das Ausklammern 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. Aus diesem Grund muss alle Teil des Schlüssels, die im Zusammenhang mit d, p oder q geheim gehalten werden.Therefore, any part of the key related to d, p, or q must be kept secret. Wenn Sie aufrufenIf you call

ExportParameters und fordern Sie nur die öffentlichen Schlüsselinformationen aus diesem Grund erhalten Sie nur ist Exponent und Modulus.ExportParameters and ask for only the public key information, this is why you will receive only Exponent and Modulus. Die anderen Felder sind verfügbar, nur, wenn Sie Zugriff auf den privaten Schlüssel haben, und fordern sie.The other fields are available only if you have access to the private key, and you request it.

RSAParameters ist nicht auf keinerlei Weise verschlüsselt werden, damit Sie vorsichtig sein müssen, wenn Sie es mit den Informationen des private Schlüssels verwenden.RSAParameters is not encrypted in any way, so you must be careful when you use it with the private key information. In der Tat können keines der Felder, die Informationen des privaten Schlüssels enthalten serialisiert werden.In fact, none of the fields that contain private key information can be serialized. Wenn Sie versuchen, die zum Serialisieren einer RSAParameters Struktur mit einem Remote aufrufen oder mithilfe eines der Serialisierungsprogramme, erhalten Sie nur Informationen des öffentlichen Schlüssels.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 die Informationen des privaten Schlüssels übergeben möchten, müssen Sie diese Daten manuell zu senden.If you want to pass private key information, you will have to manually send that data. Wenn jemand die Parametern abgeleitet werden kann, wird der Schlüssel, mit dem Sie übertragen in allen Fällen nutzlos.In all cases, if anyone can derive the parameters, the key that you transmit becomes useless.

.NET Core 2.1.0 oder höher: Die Serialisierung Einschränkungen wurden entfernt und alle Mitglieder der RSAParameters werden serialisiert..NET Core 2.1.0 and later: The serialization restrictions have been removed and all members of RSAParameters are serialized. Sorgfalt muss Excercised beim Schreiben oder Aktualisieren von Code für .NET Core 2.1.0 oder höher, da Wenn abgeleitet werden oder die Parameter des privaten Schlüssels abfangen kann der Schlüssel und alle Informationen, die verschlüsselt oder signiert mit er kompromittiert wurden.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 D D D

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

DP DP DP DP

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

DQ DQ DQ DQ

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

Exponent Exponent Exponent Exponent

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

InverseQ InverseQ InverseQ InverseQ

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

Modulus Modulus Modulus Modulus

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

P P P P

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

Q Q Q Q

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

Gilt für:

Siehe auch