Structure System.Security.Cryptography.RSAParameters
Cet article vous offre des remarques complémentaires à la documentation de référence pour cette API.
La RSAParameters structure représente les paramètres standard de l’algorithme RSA.
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.
Pour comprendre le contenu de cette structure, il permet de connaître le fonctionnement de l’algorithme RSA . La section suivante décrit brièvement l’algorithme.
Algorithme RSA
Pour générer une paire de clés, vous commencez par créer deux grands nombres premiers nommés p et q. Ces nombres sont multipliés et le résultat est appelé n. Étant donné que p et q sont les deux nombres premiers, les seuls facteurs de n sont 1, p, q et n.
Si nous considérons uniquement les nombres inférieurs à n, le nombre de nombres relativement premiers à n, autrement dit, n’ont aucun facteur en commun avec n, égal à (p - 1)(q - 1).
Vous choisissez maintenant un nombre e, qui est relativement premier à la valeur que vous avez calculée. La clé publique est désormais représentée sous la forme {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. Conformément à l’algorithme Euclidean, la clé privée est maintenant {d, n}.
Le chiffrement de texte en clair m en texte chiffré c est défini comme c = (m ^ e) mod n. Le déchiffrement est alors défini comme m = (c ^ d) mod n.
Résumé des champs
La section A.1.2 du PKCS #1 : RSA Cryptography Standard définit un format pour les clés privées RSA.
Le tableau suivant récapitule les champs de la RSAParameters structure. La troisième colonne fournit le champ correspondant dans la section A.1.2 de PKCS #1 : RSA Cryptography Standard.
ChampRSAParameters | Contains | Champ PKCS #1 correspondant |
---|---|---|
D | d, l’exposant privé | privateExponent |
DP | d mod (p - 1) | exposant1 |
DQ | d mod (q - 1) | exposant2 |
Exponent | e, exposant public | publicExponent |
InverseQ | (InverseQ) (q) = 1 mod p | Coefficient |
Modulus | n | modulus |
P | p | prime1 |
Q | q | prime2 |
La sécurité de RSA dérive du fait que, compte tenu de la clé publique { e, n }, il est impossible de calculer d, directement ou en factorisant n en p et q. Par conséquent, toute partie de la clé liée à d, p ou q doit être conservée secrète. Si vous appelez ExportParameters et demandez uniquement les informations de clé publique, c’est pourquoi vous recevrez uniquement Exponent et Modulus. Les autres champs sont disponibles uniquement si vous avez accès à la clé privée et que vous le demandez.
RSAParameters n’est pas chiffré d’une manière quelconque. Vous devez donc être prudent lorsque vous l’utilisez avec les informations de clé privée. Tous les membres sont RSAParameters sérialisés. Si quelqu’un peut dériver ou intercepter les paramètres de clé privée, la clé et toutes les informations chiffrées ou signées avec elles sont compromises.