RSAParameters Struktura
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Reprezentuje standardowe parametry algorytmu 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
- Dziedziczenie
- Atrybuty
Uwagi
Struktura RSAParameters reprezentuje standardowe parametry algorytmu RSA.
Klasa RSA uwidacznia metodę ExportParameters , która umożliwia pobranie nieprzetworzonego RSAParameters klucza RSA w postaci struktury.
Aby zrozumieć zawartość tej struktury, warto zapoznać się z działaniem algorytmu RSA . W następnej sekcji omówiono krótko algorytm.
Algorytm RSA
Aby wygenerować parę kluczy, zacznij od utworzenia dwóch dużych liczb głównych o nazwach p i q. Te liczby są mnożone, a wynik jest nazywany n. Ponieważ p i q są zarówno liczbami głównymi, jedynymi czynnikami n są 1, p, q i n.
Jeśli rozważymy tylko liczby, które są mniejsze niż n, liczba liczb, które są względnie pierwsze z n, czyli nie mają wspólnych dzielników z n, równa się (p - 1)(q - 1).
Teraz wybierz liczbę e, która jest stosunkowo podstawowa do obliczonej wartości. Klucz publiczny jest teraz reprezentowany jako {e, n}.
Aby utworzyć klucz prywatny, należy obliczyć d, czyli liczbę taką, że (d)(e) mod (p - 1)(q - 1) = 1. Zgodnie z algorytmem euklidesowym klucz prywatny to teraz {d, n}.
Szyfrowanie zwykłego tekstu m do szyfrowania c jest definiowane jako c = (m ^ e) mod n. Odszyfrowywanie będzie wtedy definiowane jako m = (c ^ d) mod n.
Podsumowanie pól
Sekcja A.1.2 PKCS #1: RsA Cryptography Standard definiuje format kluczy prywatnych RSA.
Poniższa tabela zawiera podsumowanie pól RSAParameters struktury. Trzecia kolumna zawiera odpowiednie pole w sekcji A.1.2 PKCS #1: RSA Cryptography Standard.
| RSAParameters Pole | Zawiera | Odpowiednie pole PKCS #1 |
|---|---|---|
| D | d, wykładnik prywatny | privateExponent |
| DP | d mod (p - 1) | wykładnik1 |
| DQ | d mod (q - 1) | wykładnik2 |
| Exponent | e, wykładnik publiczny | publicExponent |
| InverseQ | (OdwrotnośćQ)(q) = 1 mod p | współczynnik |
| Modulus | n | moduł |
| P | p | prime1 |
| Q | q | prime2 |
Bezpieczeństwo RSA wynika z faktu, że mając klucz publiczny { e, n }, obliczenie d jest niewykonalne, zarówno bezpośrednio, jak i poprzez rozkład n na czynniki p i q. W związku z tym każda część klucza powiązana z kluczem d, p lub q musi być przechowywana w tajemnicy. Jeśli dzwonisz ExportParameters i pytasz tylko o informacje o kluczu publicznym, dlatego otrzymasz tylko Exponent i Modulus. Inne pola są dostępne tylko wtedy, gdy masz dostęp do klucza prywatnego i żądasz go.
RSAParameters nie jest szyfrowany w żaden sposób, dlatego należy zachować ostrożność podczas korzystania z nich z informacjami o kluczu prywatnym. Wszyscy członkowie RSAParameters są serializowani. Jeśli ktoś może uzyskać lub przechwycić parametry klucza prywatnego, klucz i wszystkie informacje zaszyfrowane lub podpisane z nim zostaną naruszone.
Pola
| Nazwa | Opis |
|---|---|
| D |
|
| DP |
|
| DQ |
|
| Exponent |
|
| InverseQ |
|
| Modulus |
|
| P |
|
| Q |
|