RSAParameters Estrutura
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Representa os parâmetros padrão para o RSA algoritmo.
public value class RSAParameters
public struct RSAParameters
[System.Serializable]
public struct RSAParameters
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public struct RSAParameters
type RSAParameters = struct
[<System.Serializable>]
type RSAParameters = struct
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type RSAParameters = struct
Public Structure RSAParameters
- Herança
- Atributos
Observações
A RSAParameters estrutura representa os parâmetros padrão para o algoritmo RSA.
A RSA classe expõe um ExportParameters método que permite recuperar a chave RSA bruta na forma de uma RSAParameters estrutura.
Para entender o conteúdo dessa estrutura, é útil estar familiarizado com o funcionamento do RSA algoritmo. A próxima seção discute o algoritmo brevemente.
Algoritmo RSA
Para gerar um par de chaves, comece criando dois grandes números primos chamados p e q. Esses números são multiplicados e o resultado é chamado de n. Como p e q são ambos números primos, os únicos fatores de n são 1, p, q e n.
Se considerarmos apenas números que são 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, é igual (p - 1)(q - 1).
Agora você escolhe um número e, que é relativamente primo para o valor que você calculou. A chave pública agora é representada como {e, n}.
Para criar a chave privada, você deve calcular d, que é um número tal que (d)(e) mod (p - 1)(q - 1) = 1. De acordo com o algoritmo euclidiano, a chave privada é agora {d, n}.
A encriptação de texto simples m para texto cifrado c é definida como c = (m ^ e) mod n. A desencriptação seria então definida como m = (c ^ d) mod n.
Resumo dos campos
Seção A.1.2 do PKCS #1: RSA Cryptography Standard define um formato para chaves privadas RSA.
A tabela a seguir resume os RSAParameters campos da estrutura. A terceira coluna fornece o campo correspondente na seção A.1.2 do PKCS #1: RSA Cryptography Standard.
| RSAParameters campo | Contém | Campo PKCS #1 correspondente |
|---|---|---|
| D | d, o expoente privado | privateExponent |
| DP | D mod (p - 1) | expoente 1 |
| DQ | D Mod (Q - 1) | expoente2 |
| Exponent | e, o expoente público | publicExpoente |
| InverseQ | (InversoQ)(q) = 1 mod p | coeficiente |
| Modulus | n | módulo |
| P | p | Primo1 |
| Q | q | Prime2 |
A segurança da RSA deriva do fato de que, dada a chave pública { e, n }, é computacionalmente inviável calcular d, diretamente ou fatorando n em p e q. Portanto, qualquer parte da chave relacionada a d, p ou q deve ser mantida em segredo. Se ligar para ExportParameters e pedir apenas a informação da chave pública, receberá apenas Exponent e Modulus. Os outros campos só estão disponíveis se tiver acesso à chave privada e a solicitar.
RSAParameters não é criptografado de forma alguma, então você deve ter cuidado ao usá-lo com as informações da chave privada. Todos os membros do RSAParameters são serializados. Se alguém puder derivar ou intercetar os parâmetros da chave privada, a chave e todas as informações criptografadas ou assinadas com ela serão comprometidas.
Campos
| Name | Descrição |
|---|---|
| D |
Representa o |
| DP |
Representa o |
| DQ |
Representa o |
| Exponent |
Representa o |
| InverseQ |
Representa o |
| Modulus |
Representa o |
| P |
Representa o |
| Q |
Representa o |