RSAParameters RSAParameters RSAParameters RSAParameters Struct

Definição

Representa os parâmetros padrão do 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
Herança
RSAParametersRSAParametersRSAParametersRSAParameters
Atributos

Comentários

A RSA classe expõe um ExportParameters método que permite que você recupere a chave RSA bruta na forma de uma RSAParameters estrutura.The RSA class exposes an ExportParameters method that enables you to retrieve the raw RSA key in the form of an RSAParameters structure. Entender o conteúdo dessa estrutura requer familiaridade com o funcionamento do RSA algoritmo.Understanding the contents of this structure requires familiarity with how the RSA algorithm works. A próxima seção aborda brevemente o algoritmo.The next section discusses the algorithm briefly.

Algoritmo RSARSA Algorithm

Para gerar um par de chaves, comece criando dois números primos grandes chamados p e q.To generate a key pair, you start by creating two large prime numbers named p and q. Esses números são multiplicados e o resultado é chamado n.These numbers are multiplied and the result is called n. Como p e q são números primos, os únicos fatores de n são 1, p, q e n.Because p and q are both prime numbers, the only factors of n are 1, p, q, and n.

Se considerarmos apenas números menores que n, a contagem de números que são relativamente primos para n, ou seja, não têm fatores em comum com 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).

Agora você escolhe um número e, que é relativamente primo para o valor calculado.Now you choose a number e, which is relatively prime to the value you calculated. A chave pública agora é representada como {e, n}.The public key is now represented as {e, n}.

Para criar a chave privada, você deve calcular d, que é um número 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 acordo com o algoritmo euclidiana, a chave privada agora é {d, n}.In accordance with the Euclidean algorithm, the private key is now {d, n}.

A criptografia de texto não criptografado m para texto cifrado c é definida como c = (m ^ e) mod n.Encryption of plaintext m to ciphertext c is defined as c = (m ^ e) mod n. A descriptografia seria definida como m = (c ^ d) mod n.Decryption would then be defined as m = (c ^ d) mod n.

Resumo de camposSummary of Fields

Seção a. 1.2 do #1 PKCS: O padrão de criptografia RSA no site RSA Laboratories define um formato para as chaves privadas da 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.

A tabela a seguir resume os campos da RSAParameters estrutura.The following table summarizes the fields of the RSAParameters structure. A terceira coluna fornece o campo correspondente na seção A. 1.2 do #1 PKCS: Padrãode criptografia RSA.The third column provides the corresponding field in section A.1.2 of PKCS #1: RSA Cryptography Standard.

Campo do RSAParametersRSAParameters field ContémContains Campo de #1 PKCS correspondenteCorresponding PKCS #1 field
D d, o expoente 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, o expoente públicoe, the public exponent publicExponentpublicExponent
InverseQ (InverseQ) (q) = 1 mod p(InverseQ)(q) = 1 mod p cujocoefficient
Modulus nn módulomodulus
P pp prime1prime1
Q qq prime2prime2

A segurança da RSA deriva do fato de que, dada a chave pública {e, n}, é impraticável, de modo computacional, calcular d, diretamente ou por meio da fator n em p e 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. Portanto, qualquer parte da chave relacionada a d, p ou q deve ser mantida em segredo.Therefore, any part of the key related to d, p, or q must be kept secret. Se você chamarIf you call

ExportParameterse solicitar apenas as informações de chave pública, é por isso que você receberá Exponent apenas Moduluse.ExportParameters and ask for only the public key information, this is why you will receive only Exponent and Modulus. Os outros campos estarão disponíveis somente se você tiver acesso à chave privada e solicitá-la.The other fields are available only if you have access to the private key, and you request it.

RSAParametersNão é criptografado de nenhuma forma, portanto, você deve ter cuidado ao usá-lo com as informações de chave privada.RSAParameters is not encrypted in any way, so you must be careful when you use it with the private key information. Na verdade, nenhum dos campos que contêm informações de chave privada pode ser serializado.In fact, none of the fields that contain private key information can be serialized. Se você tentar serializar uma RSAParameters estrutura com uma chamada de comunicação remota ou usando um dos serializadores, receberá apenas informações de chave 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. Se você quiser passar informações de chave privada, precisará enviar esses dados manualmente.If you want to pass private key information, you will have to manually send that data. Em todos os casos, se alguém puder derivar os parâmetros, a chave que você transmitir torna-se inútil.In all cases, if anyone can derive the parameters, the key that you transmit becomes useless.

.NET Core 2.1.0 e posterior: As restrições de serialização foram removidas e todos RSAParameters os membros de são serializados..NET Core 2.1.0 and later: The serialization restrictions have been removed and all members of RSAParameters are serialized. O cuidado deve ser excercised ao escrever ou atualizar o código no .NET Core 2.1.0 ou posterior, pois se alguém puder derivar ou interceptar os parâmetros da chave privada, a chave e todas as informações criptografadas ou assinadas com ela serão 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 o parâmetro D do algoritmo RSA.Represents the D parameter for the RSA algorithm.

DP DP DP DP

Representa o parâmetro DP do algoritmo RSA.Represents the DP parameter for the RSA algorithm.

DQ DQ DQ DQ

Representa o parâmetro DQ do algoritmo RSA.Represents the DQ parameter for the RSA algorithm.

Exponent Exponent Exponent Exponent

Representa o parâmetro Exponent do algoritmo RSA.Represents the Exponent parameter for the RSA algorithm.

InverseQ InverseQ InverseQ InverseQ

Representa o parâmetro InverseQ do algoritmo RSA.Represents the InverseQ parameter for the RSA algorithm.

Modulus Modulus Modulus Modulus

Representa o parâmetro Modulus do algoritmo RSA.Represents the Modulus parameter for the RSA algorithm.

P P P P

Representa o parâmetro P do algoritmo RSA.Represents the P parameter for the RSA algorithm.

Q Q Q Q

Representa o parâmetro Q do algoritmo RSA.Represents the Q parameter for the RSA algorithm.

Aplica-se a

Veja também