RSAParameters RSAParameters RSAParameters RSAParameters Struct

Définition

Représente les paramètres standard pour l'algorithme RSA.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
Héritage
RSAParametersRSAParametersRSAParametersRSAParameters
Attributs

Remarques

Le RSA classe expose un ExportParameters méthode qui vous permet de récupérer la clé RSA brute sous la forme d’un RSAParameters structure.The RSA class exposes an ExportParameters method that enables you to retrieve the raw RSA key in the form of an RSAParameters structure. Comprendre le contenu de cette structure, vous êtes familiarisé avec la façon dont le RSA fonctionne.Understanding the contents of this structure requires familiarity with how the RSA algorithm works. La section suivante présente brièvement l’algorithme.The next section discusses the algorithm briefly.

Algorithme RSARSA Algorithm

Pour générer une paire de clés, vous démarrez en créant deux grands nombres premiers nommé p et q.To generate a key pair, you start by creating two large prime numbers named p and q. Ces nombres sont multipliés et le résultat est appelé n.These numbers are multiplied and the result is called n. P et q étant les deux nombres premiers, les seuls facteurs de n 1, p, q et n.Because p and q are both prime numbers, the only factors of n are 1, p, q, and n.

Si nous estimons que seuls les nombres inférieurs à n, le nombre de nombres premiers à n, autrement dit, ont pas de facteurs en commun avec 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).

Maintenant, vous choisissez un nombre e, qui est premier à la valeur que vous avez calculé.Now you choose a number e, which is relatively prime to the value you calculated. La clé publique est maintenant représentée sous la forme {e, n}.The public key is now represented as {e, n}.

Pour créer la clé privée, vous devez calculer d, qui est un nombre tel que (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. Conformément à l’algorithme euclidien, la clé privée est désormais {d, n}.In accordance with the Euclidean algorithm, the private key is now {d, n}.

Chiffrement de m en texte brut en texte chiffré c est défini en tant que c = (m ^ e) mod n.Encryption of plaintext m to ciphertext c is defined as c = (m ^ e) mod n. Le déchiffrement est ensuite défini en tant que m = (c ^ d) mod n.Decryption would then be defined as m = (c ^ d) mod n.

Résumé des champsSummary of Fields

Section A.1.2 de la PKCS #1 : RSA Cryptography Standard sur l’Internet de RSA Laboratories site définit un format pour les clés privées RSA.Section A.1.2 of the PKCS #1: RSA Cryptography Standard on the RSA Laboratories Web site defines a format for RSA private keys.

Le tableau suivant récapitule les champs de la RSAParameters structure.The following table summarizes the fields of the RSAParameters structure. La troisième colonne fournit le champ correspondant dans la section A.1.2 de PKCS #1 : RSA Cryptography Standard.The third column provides the corresponding field in section A.1.2 of PKCS #1: RSA Cryptography Standard.

ChampRSAParameters RSAParameters field ContientContains Champ PKCS #1 correspondantCorresponding PKCS #1 field
D d, l’exposant privéd, the private exponent privateExponentprivateExponent
DP mod d (p - 1)d mod (p - 1) exponent1exponent1
DQ mod d (q - 1)d mod (q - 1) exponent2exponent2
Exponent e, l’exposant publice, the public exponent publicExponentpublicExponent
InverseQ (InverseQ) (q) = p mod 1(InverseQ)(q) = 1 mod p coefficientcoefficient
Modulus nn modulomodulus
P pp prime1prime1
Q qq prime2prime2

La sécurité de RSA dérive du fait que, étant donné la clé publique {e, n}, il est impossible de calculer d, soit directement, soit par factorisation n dans p et q.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. Par conséquent, n’importe quelle partie de la clé liée à d, p ou q doit être gardée secrète.Therefore, any part of the key related to d, p, or q must be kept secret. Si vous appelezIf you call

ExportParameters et demander uniquement les informations de clé publique, c’est pourquoi vous recevrez uniquement Exponent et Modulus.ExportParameters and ask for only the public key information, this is why you will receive only Exponent and Modulus. Les autres champs sont disponibles uniquement si vous avez accès à la clé privée, et vous le demandez.The other fields are available only if you have access to the private key, and you request it.

RSAParameters est pas chiffré, donc vous devez être prudent lorsque vous l’utilisez avec les informations de clé privées.RSAParameters is not encrypted in any way, so you must be careful when you use it with the private key information. En fait, aucun des champs qui contiennent des informations de clé privée peut être sérialisé.In fact, none of the fields that contain private key information can be serialized. Si vous essayez de sérialiser un RSAParameters appeler de structure avec une communication à distance ou en utilisant un des sérialiseurs, vous recevrez des informations de clé publique uniquement.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. Si vous souhaitez passer les informations de clé privée, vous devrez envoyer ces données manuellement.If you want to pass private key information, you will have to manually send that data. Dans tous les cas, si tout le monde peut dériver les paramètres, la clé que vous transmettez devient inutile.In all cases, if anyone can derive the parameters, the key that you transmit becomes useless.

.NET core 2.1.0 et versions ultérieures: La sérialisation des restrictions ont été supprimées et tous les membres de RSAParameters sont sérialisés..NET Core 2.1.0 and later: The serialization restrictions have been removed and all members of RSAParameters are serialized. Soins doit être excercised lorsque vous écrivez ou la mise à niveau de code par rapport à .NET Core 2.1.0 ou une version ultérieure, car si tout le monde peut dériver ou intercepter les paramètres de clé privées, la clé et toutes les informations chiffrés ou signés avec elle sont compromis.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.

Champs

D D D D

Représente le paramètre D pour l'algorithme RSA.Represents the D parameter for the RSA algorithm.

DP DP DP DP

Représente le paramètre DP pour l'algorithme RSA.Represents the DP parameter for the RSA algorithm.

DQ DQ DQ DQ

Représente le paramètre DQ pour l'algorithme RSA.Represents the DQ parameter for the RSA algorithm.

Exponent Exponent Exponent Exponent

Représente le paramètre Exponent pour l'algorithme RSA.Represents the Exponent parameter for the RSA algorithm.

InverseQ InverseQ InverseQ InverseQ

Représente le paramètre InverseQ pour l'algorithme RSA.Represents the InverseQ parameter for the RSA algorithm.

Modulus Modulus Modulus Modulus

Représente le paramètre Modulus pour l'algorithme RSA.Represents the Modulus parameter for the RSA algorithm.

P P P P

Représente le paramètre P pour l'algorithme RSA.Represents the P parameter for the RSA algorithm.

Q Q Q Q

Représente le paramètre Q pour l'algorithme RSA.Represents the Q parameter for the RSA algorithm.

S’applique à

Voir aussi