RSAParameters Struct-datatyp
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Representerar standardparametrarna för algoritmen 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
- Arv
- Attribut
Kommentarer
Strukturen RSAParameters representerar standardparametrarna för RSA-algoritmen.
Klassen RSA exponerar en ExportParameters metod som gör att du kan hämta den råa RSA-nyckeln i form av en RSAParameters struktur.
För att förstå innehållet i den här strukturen hjälper det att känna till hur algoritmen RSA fungerar. I nästa avsnitt beskrivs algoritmen kort.
RSA-algoritm
Om du vill generera ett nyckelpar börjar du med att skapa två stora primtal med namnet p och q. Dessa tal multipliceras och resultatet kallas n. Eftersom p och q båda är primtal är de enda faktorerna för n 1, p, q och n.
Om vi bara tänker på tal som är mindre än n, är antalet tal som är relativt prima till n, det vill säga inte har några gemensamma faktorer med n, lika med (p - 1)(q - 1).
Nu väljer du ett tal e, som är relativt primärt för det värde som du beräknade. Den offentliga nyckeln representeras nu som {e, n}.
Om du vill skapa den privata nyckeln måste du beräkna d, vilket är ett tal som (d)(e) mod (p - 1)(q - 1) = 1. I enlighet med Euclidean-algoritmen är den privata nyckeln nu {d, n}.
Kryptering av klartext m till chiffertext c definieras som c = (m ^ e) mod n. Dekryptering skulle sedan definieras som m = (c ^ d) mod n.
Sammanfattning av fält
Avsnitt A.1.2 i PKCS #1: RSA Cryptography Standard definierar ett format för privata RSA-nycklar.
I följande tabell sammanfattas fälten i RSAParameters strukturen. Den tredje kolumnen innehåller motsvarande fält i avsnitt A.1.2 i PKCS #1: RSA Cryptography Standard.
| RSAParameters Fältet | Innehåller | Motsvarande PKCS #1-fält |
|---|---|---|
| D | d, den privata exponenten | privateExponent |
| DP | d mod (p - 1) | exponent1 |
| DQ | d mod (q - 1) | exponent2 |
| Exponent | e, den offentliga exponenten | publicExponent |
| InverseQ | (InverseQ)(q) = 1 mod p | koefficient |
| Modulus | n | modul |
| P | p | prime1 |
| Q | q | prime2 |
Säkerheten för RSA härleds från det faktum att med tanke på den offentliga nyckeln { e, n }, är det beräkningsmässigt omöjligt att beräkna d, antingen direkt eller genom att räkna in n i p och q. Därför måste alla delar av nyckeln som är relaterade till d, p eller q hållas hemliga. Om du bara ringer ExportParameters och ber om information om den offentliga nyckeln får du endast Exponent och Modulus. De andra fälten är endast tillgängliga om du har åtkomst till den privata nyckeln och du begär det.
RSAParameters krypteras inte på något sätt, så du måste vara försiktig när du använder den med den privata nyckelinformationen. Alla medlemmar i RSAParameters är serialiserade. Om någon kan härleda eller fånga upp parametrarna för den privata nyckeln komprometteras nyckeln och all information som krypteras eller signeras med den.
Fält
| Name | Description |
|---|---|
| D |
Representerar parametern |
| DP |
Representerar parametern |
| DQ |
Representerar parametern |
| Exponent |
Representerar parametern |
| InverseQ |
Representerar parametern |
| Modulus |
Representerar parametern |
| P |
Representerar parametern |
| Q |
Representerar parametern |