Condividi tramite


Struttura System.Security.Cryptography.RSAParameters

Questo articolo fornisce osservazioni supplementari alla documentazione di riferimento per questa API.

La RSAParameters struttura rappresenta i parametri standard per l'algoritmo RSA.

La RSA classe espone un ExportParameters metodo che consente di recuperare la chiave RSA non elaborata sotto forma di struttura RSAParameters .

Per comprendere il contenuto di questa struttura, è utile acquisire familiarità con il funzionamento dell'algoritmo RSA . La sezione successiva illustra brevemente l'algoritmo.

Algoritmo RSA

Per generare una coppia di chiavi, iniziare creando due numeri primi di grandi dimensioni denominati p e q. Questi numeri vengono moltiplicati e il risultato viene chiamato n. Poiché p e q sono entrambi numeri primi, gli unici fattori di n sono 1, p, q e n.

Se si considerano solo numeri minori di n, il numero di numeri relativamente primi a n, ovvero non hanno fattori in comune con n, uguale a (p - 1)(q - 1).

Ora si sceglie un numero e, che è relativamente primo del valore calcolato. La chiave pubblica è ora rappresentata come {e, n}.

Per creare la chiave privata, è necessario calcolare d, ovvero un numero tale che (d)(e) mod (p - 1)(q - 1) = 1. In conformità con l'algoritmo Euclideo, la chiave privata è ora {d, n}.

La crittografia di testo non crittografato m in testo crittografato c è definita come c = (m ^ e) mod n. La decrittografia viene quindi definita come m = (c ^ d) mod n.

Riepilogo dei campi

La sezione A.1.2 di PKCS #1: RSA Cryptography Standard definisce un formato per le chiavi private RSA.

Nella tabella seguente vengono riepilogati i campi della RSAParameters struttura. La terza colonna fornisce il campo corrispondente nella sezione A.1.2 di PKCS #1: RSA Cryptography Standard.

Campo diRSAParameters Contiene Campo PKCS #1 corrispondente
D d, esponente privato privateExponent
DP d mod (p - 1) esponente1
DQ d mod (q - 1) esponente2
Exponent e, esponente pubblico publicExponent
InverseQ (InverseQ) (q) = 1 mod p Coefficiente
Modulus n modulo
P p prime1
Q q prime2

La sicurezza di RSA deriva dal fatto che, data la chiave pubblica { e, n }, è infeasible dal punto di vista computazionale per calcolare d, direttamente o inserendo n in p e q. Pertanto, qualsiasi parte della chiave correlata a d, p o q deve essere mantenuta segreta. Se si chiama ExportParameters e si richiedono solo le informazioni sulla chiave pubblica, questo è il motivo per cui si riceveranno solo Exponent e Modulus. Gli altri campi sono disponibili solo se si ha accesso alla chiave privata e lo si richiede.

RSAParameters non è crittografato in alcun modo, quindi è necessario prestare attenzione quando lo si usa con le informazioni sulla chiave privata. Tutti i membri di RSAParameters vengono serializzati. Se chiunque può derivare o intercettare i parametri della chiave privata, la chiave e tutte le informazioni crittografate o firmate con esso vengono compromesse.