Compartir a través de


Estructura System.Security.Cryptography.RSAParameters

En este artículo se proporcionan comentarios adicionales a la documentación de referencia de esta API.

La RSAParameters estructura representa los parámetros estándar para el algoritmo RSA.

La RSA clase expone un ExportParameters método que permite recuperar la clave RSA sin procesar en forma de estructura RSAParameters .

Para comprender el contenido de esta estructura, ayuda a familiarizarse con el funcionamiento del RSA algoritmo. En la sección siguiente se describe brevemente el algoritmo.

Algoritmo RSA

Para generar un par de claves, empiece por crear dos números primos grandes denominados p y q. Estos números se multiplican y el resultado se denomina n. Dado que p y q son números primos, los únicos factores de n son 1, p, q y n.

Si solo consideramos números que son menores que n, el recuento de números que son relativamente primos a n, es decir, no tienen factores comunes con n, iguales (p - 1)(q - 1).

Ahora elige un número e, que es relativamente primo para el valor calculado. La clave pública ahora se representa como {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. De acuerdo con el algoritmo euclidano, la clave privada ahora es {d, n}.

El cifrado de texto no cifrado m al texto cifrado c se define como c = (m ^ e) mod n. A continuación, el descifrado se definiría como m = (c ^ d) mod n.

Resumen de campos

Sección A.1.2 del PKCS #1: RSA Cryptography Standard define un formato para las claves privadas RSA.

En la tabla siguiente se resumen los campos de la RSAParameters estructura. La tercera columna proporciona el campo correspondiente en la sección A.1.2 de PKCS #1: RSA Cryptography Standard.

Campo deRSAParameters Contiene Campo PKCS #1 correspondiente
D d, el exponente privado privateExponent
DP d mod (p - 1) exponent1
DQ d mod (q - 1) exponent2
Exponent e, el exponente público publicExponent
InverseQ (InverseQ) (q) = 1 mod p Coeficiente
Modulus n modulus
P p prime1
Q q prime2

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 de n en p y q. Por lo tanto, cualquier parte de la clave relacionada con d, p o q debe mantenerse en secreto. Si llama ExportParameters a y solicita solo la información de clave pública, este es el motivo por el que solo Exponent recibirá y Modulus. Los demás campos solo están disponibles si tiene acceso a la clave privada y lo solicita.

RSAParameters no se cifra de ninguna manera, por lo que debe tener cuidado al usarlo con la información de clave privada. Todos los miembros de RSAParameters se serializan. Si alguien puede derivar o interceptar los parámetros de clave privada, la clave y toda la información cifrada o firmada con ella están en peligro.