RSAParameters RSAParameters RSAParameters RSAParameters Struct

Definición

Representa los parámetros estándar del algoritmo 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
Herencia
RSAParametersRSAParametersRSAParametersRSAParameters
Atributos

Comentarios

La RSA clase expone un ExportParameters método que permite recuperar la clave RSA sin formato RSAParameters en forma de estructura.The RSA class exposes an ExportParameters method that enables you to retrieve the raw RSA key in the form of an RSAParameters structure. Para comprender el contenido de esta estructura es necesario estar familiarizado RSA con el funcionamiento del algoritmo.Understanding the contents of this structure requires familiarity with how the RSA algorithm works. En la sección siguiente se describe brevemente el algoritmo.The next section discusses the algorithm briefly.

Algoritmo RSARSA Algorithm

Para generar un par de claves, empiece por crear dos números primos grandes denominados p y q.To generate a key pair, you start by creating two large prime numbers named p and q. Estos números se multiplican y el resultado se denomina n.These numbers are multiplied and the result is called n. Como p y q son números primos, los únicos factores de n son 1, p, q y n.Because p and q are both prime numbers, the only factors of n are 1, p, q, and n.

Si consideramos solo números que son menores que n, el recuento de números que son relativamente primos a n, es decir, no tienen ningún factor en común con n, es igual a (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).

Ahora elige un número e, que es relativamente primo al valor calculado.Now you choose a number e, which is relatively prime to the value you calculated. La clave pública se representa ahora como {e, n}.The public key is now represented as {e, n}.

Para crear la clave privada, debe calcular d, que es un número tal 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. De acuerdo con el algoritmo euclidiana, la clave privada es ahora {d, n}.In accordance with the Euclidean algorithm, the private key is now {d, n}.

El cifrado de texto sin formato m en texto cifrado c se define como c = (m ^ e) mod n.Encryption of plaintext m to ciphertext c is defined as c = (m ^ e) mod n. El descifrado se definiría como m = (c ^ d) mod n.Decryption would then be defined as m = (c ^ d) mod n.

Resumen de camposSummary of Fields

Sección A. 1.2 del #1 PKCS: RSA Cryptography Standard en el sitio web de RSA Laboratories define un formato para las claves privadas 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.

En la tabla siguiente se resumen los campos de RSAParameters la estructura.The following table summarizes the fields of the RSAParameters structure. La tercera columna proporciona el campo correspondiente en la sección 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.

Campo deRSAParametersRSAParameters field ContieneContains Campo de #1 PKCS correspondienteCorresponding PKCS #1 field
D d, el exponente privadod, 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, el exponente públicoe, the public exponent publicExponentpublicExponent
InverseQ (InverseQ) (q) = 1 mod p(InverseQ)(q) = 1 mod p coeficientecoefficient
Modulus nn modulusmodulus
P pp prime1prime1
Q qq prime2prime2

La seguridad de RSA se deriva del hecho de que, dada la clave pública {e, n}, es computacionalmente inviable calcular d, ya sea directamente o mediante la factorización n en p y 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. Por lo tanto, cualquier parte de la clave relacionada con d, p o q debe mantenerse en secreto.Therefore, any part of the key related to d, p, or q must be kept secret. Si llama aIf you call

ExportParametersy solicite únicamente la información de la clave pública, por lo que solo Exponent recibirá y. ModulusExportParameters and ask for only the public key information, this is why you will receive only Exponent and Modulus. Los demás campos solo están disponibles si tiene acceso a la clave privada y lo solicita.The other fields are available only if you have access to the private key, and you request it.

RSAParametersno se cifra de ningún modo, por lo que debe tener cuidado al usarlo con la información de clave privada.RSAParameters is not encrypted in any way, so you must be careful when you use it with the private key information. De hecho, no se puede serializar ninguno de los campos que contienen información de clave privada.In fact, none of the fields that contain private key information can be serialized. Si intenta serializar una RSAParameters estructura con una llamada remota o mediante uno de los serializadores, solo recibirá información de clave pública.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 desea pasar información de clave privada, tendrá que enviar manualmente los datos.If you want to pass private key information, you will have to manually send that data. En todos los casos, si cualquiera puede derivar los parámetros, la clave transmitida se vuelve inútil.In all cases, if anyone can derive the parameters, the key that you transmit becomes useless.

.Net Core 2.1.0 y versiones posteriores: Se han quitado las restricciones de serialización y se RSAParameters serializan todos los miembros de..NET Core 2.1.0 and later: The serialization restrictions have been removed and all members of RSAParameters are serialized. La atención debe ser excercised al escribir o actualizar código en .NET Core 2.1.0 o posterior, porque si cualquiera puede derivar o interceptar los parámetros de clave privada, la clave y toda la información cifrada o firmada con ella se ven comprometidas.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.

Campos

D D D D

Representa el parámetro D para el algoritmo RSA.Represents the D parameter for the RSA algorithm.

DP DP DP DP

Representa el parámetro DP para el algoritmo RSA.Represents the DP parameter for the RSA algorithm.

DQ DQ DQ DQ

Representa el parámetro DQ para el algoritmo RSA.Represents the DQ parameter for the RSA algorithm.

Exponent Exponent Exponent Exponent

Representa el parámetro Exponent para el algoritmo RSA.Represents the Exponent parameter for the RSA algorithm.

InverseQ InverseQ InverseQ InverseQ

Representa el parámetro InverseQ para el algoritmo RSA.Represents the InverseQ parameter for the RSA algorithm.

Modulus Modulus Modulus Modulus

Representa el parámetro Modulus para el algoritmo RSA.Represents the Modulus parameter for the RSA algorithm.

P P P P

Representa el parámetro P para el algoritmo RSA.Represents the P parameter for the RSA algorithm.

Q Q Q Q

Representa el parámetro Q para el algoritmo RSA.Represents the Q parameter for the RSA algorithm.

Se aplica a

Consulte también: