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

La RSA classe expose une ExportParameters méthode qui vous permet de récupérer la clé RSA brute sous la forme d’une 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. Pour comprendre le contenu de cette structure, vous devez vous familiariser avec le fonctionnement de l' RSA algorithme.Understanding the contents of this structure requires familiarity with how the RSA algorithm works. La section suivante traite brièvement de l’algorithme.The next section discusses the algorithm briefly.

Algorithme RSARSA Algorithm

Pour générer une paire de clés, commencez par créer deux grands nombres premiers nommés 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. Comme p et q sont tous deux des nombres premiers, les seuls facteurs de n sont 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 considérons uniquement les nombres inférieurs à n, le nombre de nombres qui sont relativement premiers à n, autrement dit, n’a aucun facteur en commun avec n, égal à (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).

Vous choisissez à présent un nombre e, qui est relativement prime à la valeur que vous avez calculée.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 euclidienne, la clé privée est désormais {d, n}.In accordance with the Euclidean algorithm, the private key is now {d, n}.

Le chiffrement du texte en clair m 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 alors 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 du #1 PKCS : RSA Cryptography standard sur le site Web de RSA Laboratories 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 du #1 PKCS : Normede chiffrement RSA.The third column provides the corresponding field in section A.1.2 of PKCS #1: RSA Cryptography Standard.

ChampRSAParametersRSAParameters field ContientContains Champ #1 PKCS correspondantCorresponding PKCS #1 field
D d, exposant privéd, 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, l’exposant publice, the public exponent publicExponentpublicExponent
InverseQ (InverseQ) (q) = 1 mod p(InverseQ)(q) = 1 mod p coefficientcoefficient
Modulus nn modulomodulus
P pp prime1prime1
Q qq prime2prime2

La sécurité de RSA découle du fait que, étant donné la clé publique {e, n}, il est impossible de calculer d, soit directement, soit en factorisant n en 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, toute partie de la clé associé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

ExportParameterset demandez uniquement les informations de la clé publique. c’est pourquoi vous recevrez Exponent uniquement Moduluset.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 que vous la demandez.The other fields are available only if you have access to the private key, and you request it.

RSAParametersn’est pas chiffré de quelque façon que ce soit, vous devez donc être prudent lorsque vous l’utilisez avec les informations de clé privée.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 ne peut être sérialisé.In fact, none of the fields that contain private key information can be serialized. Si vous essayez de sérialiser une RSAParameters structure avec un appel de communication à distance ou à l’aide de l’un des sérialiseurs, vous recevrez uniquement des informations de clé publique.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 transmettre des informations de clé privée, vous devez envoyer manuellement ces données.If you want to pass private key information, you will have to manually send that data. Dans tous les cas, si quelqu’un peut dériver les paramètres, la clé que vous transmettez devient inutilisable.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: Les restrictions de sérialisation ont été supprimées et tous les RSAParameters membres de sont sérialisés..NET Core 2.1.0 and later: The serialization restrictions have been removed and all members of RSAParameters are serialized. La prudence doit être excercised lors de l’écriture ou de la mise à niveau de code sur .NET Core 2.1.0 ou version ultérieure, car si une personne peut dériver ou intercepter les paramètres de la clé privée, la clé et toutes les informations chiffrées ou signées avec elles sont compromises.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