RSAParameters Struct
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rappresenta i parametri standard per l'algoritmo RSA.
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
- Ereditarietà
- Attributi
Commenti
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.
| RSAParameters Campo | 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, dalla chiave pubblica { e, n }, è impossibile dal punto di vista computazionale calcolare d, direttamente o fattorizzando 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.
Campi
| Nome | Descrizione |
|---|---|
| D |
Rappresenta il |
| DP |
Rappresenta il |
| DQ |
Rappresenta il |
| Exponent |
Rappresenta il |
| InverseQ |
Rappresenta il |
| Modulus |
Rappresenta il |
| P |
Rappresenta il |
| Q |
Rappresenta il |