RSAParameters RSAParameters RSAParameters RSAParameters Struct

Definizione

Rappresenta i parametri standard per l'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
Ereditarietà
RSAParametersRSAParametersRSAParametersRSAParameters
Attributi

Commenti

Il RSA classe espone un ExportParameters metodo che consente di recuperare la chiave RSA non elaborata sotto forma di un RSAParameters struttura.The RSA class exposes an ExportParameters method that enables you to retrieve the raw RSA key in the form of an RSAParameters structure. Per comprendere il contenuto di questa struttura è necessario avere dimestichezza con la modalità di RSA funzionamento dell'algoritmo.Understanding the contents of this structure requires familiarity with how the RSA algorithm works. La sezione successiva illustra brevemente l'algoritmo.The next section discusses the algorithm briefly.

Algoritmo RSARSA Algorithm

Per generare una coppia di chiavi, è innanzitutto necessario creare due numeri primi grandi denominata p e q.To generate a key pair, you start by creating two large prime numbers named p and q. Questi numeri vengono moltiplicati e il risultato è chiamato n.These numbers are multiplied and the result is called n. Poiché p e q vengono entrambi i numeri primi, gli unici fattori di n sono 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 si considerano solo i numeri minori di n, il conteggio dei numeri primi relativamente a n, vale a dire, non dispongono di fattori in comune con n, uguale 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).

A questo punto si sceglie un numero e, che è relativamente primo valore che è calcolato.Now you choose a number e, which is relatively prime to the value you calculated. La chiave pubblica è ora rappresentata come n {e}.The public key is now represented as {e, n}.

Per creare la chiave privata, è necessario calcolare d, ovvero un numero in modo che (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. In base all'algoritmo di Euclide, la chiave privata è a questo punto {d, n}.In accordance with the Euclidean algorithm, the private key is now {d, n}.

Crittografia di m plaintext a c testo crittografato viene definita come c = (m ^ e) mod n.Encryption of plaintext m to ciphertext c is defined as c = (m ^ e) mod n. La decrittografia verrà quindi definita come m = (c ^ 1!d) mod n.Decryption would then be defined as m = (c ^ d) mod n.

Riepilogo di campiSummary of Fields

Sezione 1.2 del PKCS #1: Standard di crittografia RSA sul Web di RSA Laboratories sito definisce un formato per le chiavi private 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.

La tabella seguente riepiloga i campi del RSAParameters struttura.The following table summarizes the fields of the RSAParameters structure. La terza colonna fornisce il campo corrispondente nella sezione 1.2 di PKCS #1: Standard di crittografia RSA.The third column provides the corresponding field in section A.1.2 of PKCS #1: RSA Cryptography Standard.

Campo diRSAParameters RSAParameters field ContieneContains Campo PKCS#1 corrispondenteCorresponding PKCS #1 field
D 1!d, esponente privatad, the private exponent privateExponentprivateExponent
DP d mod (p - 1)d mod (p - 1) exponent1exponent1
DQ mod d (d - 1)d mod (q - 1) exponent2exponent2
Exponent e, esponente pubblicoe, the public exponent publicExponentpublicExponent
InverseQ (InverseQ) (d) = p mod 1(InverseQ)(q) = 1 mod p coefficientecoefficient
Modulus nn modulomodulus
P pp prime1prime1
Q qq prime2prime2

La sicurezza di RSA deriva dal fatto che, data la chiave pubblica {e, n}, è impossibile da calcolare d, direttamente o eseguendo il factoring n in 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. Pertanto, qualsiasi parte della chiave correlata a d, p o q deve essere mantenuta segreta.Therefore, any part of the key related to d, p, or q must be kept secret. Se si chiamaIf you call

ExportParameters e richiedere solo le informazioni sulla chiave pubbliche, questo è il motivo per cui si riceverà solo Exponent e Modulus.ExportParameters and ask for only the public key information, this is why you will receive only Exponent and Modulus. Gli altri campi sono disponibili solo se si ha accesso alla chiave privata e viene effettuata la richiesta.The other fields are available only if you have access to the private key, and you request it.

RSAParameters non vengono crittografati in alcun modo, pertanto è necessario prestare attenzione quando viene usato con le informazioni sulla chiave private.RSAParameters is not encrypted in any way, so you must be careful when you use it with the private key information. Infatti, nessuno dei campi che contengono informazioni sulla chiave private può essere serializzato.In fact, none of the fields that contain private key information can be serialized. Se si prova a serializzare un RSAParameters struttura con comunicazione remota di una chiamata o usando uno dei serializzatori, si riceveranno solo le informazioni sulla chiave pubbliche.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 si desidera passare informazioni sulla chiave private, si dovrà inviare manualmente i dati.If you want to pass private key information, you will have to manually send that data. In tutti i casi, se tutti gli utenti possono derivare i parametri, la chiave che trasmesse diventa inutilizzabile.In all cases, if anyone can derive the parameters, the key that you transmit becomes useless.

.NET core 2.1.0 e versioni successive: La serializzazione limitazioni sono state rimosse e tutti i membri di RSAParameters vengono serializzati..NET Core 2.1.0 and later: The serialization restrictions have been removed and all members of RSAParameters are serialized. Attenzione deve essere excercised durante la scrittura o l'aggiornamento di codice rispetto a .NET Core 2.1.0 o in un secondo momento, perché se tutti gli utenti possono derivare o di intercettare i parametri di chiave privati della chiave e tutte le informazioni crittografati o firmati con vengano compromessi.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.

Campi

D D D D

Rappresenta il parametro D per l'algoritmo RSA.Represents the D parameter for the RSA algorithm.

DP DP DP DP

Rappresenta il parametro DP per l'algoritmo RSA.Represents the DP parameter for the RSA algorithm.

DQ DQ DQ DQ

Rappresenta il parametro DQ per l'algoritmo RSA.Represents the DQ parameter for the RSA algorithm.

Exponent Exponent Exponent Exponent

Rappresenta il parametro Exponent per l'algoritmo RSA.Represents the Exponent parameter for the RSA algorithm.

InverseQ InverseQ InverseQ InverseQ

Rappresenta il parametro InverseQ per l'algoritmo RSA.Represents the InverseQ parameter for the RSA algorithm.

Modulus Modulus Modulus Modulus

Rappresenta il parametro Modulus per l'algoritmo RSA.Represents the Modulus parameter for the RSA algorithm.

P P P P

Rappresenta il parametro P per l'algoritmo RSA.Represents the P parameter for the RSA algorithm.

Q Q Q Q

Rappresenta il parametro Q per l'algoritmo RSA.Represents the Q parameter for the RSA algorithm.

Si applica a

Vedi anche