Udostępnij za pośrednictwem


Struktura System.Security.Cryptography.RSAParameters

Ten artykuł zawiera dodatkowe uwagi dotyczące dokumentacji referencyjnej dla tego interfejsu API.

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 wywoływany 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ą stosunkowo prime do n, czyli nie mają żadnych czynników wspólnych z n, równa (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 Contains 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 modulus
P p prime1
Q q prime2

Bezpieczeństwo RSA wynika z faktu, że biorąc pod uwagę klucz publiczny { e, n }, jest obliczanie niewykonalne do obliczenia d, bezpośrednio lub przez uwzględnienie n w 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. Wszystkie elementy członkowskie RSAParameters są serializowane. Jeśli ktoś może uzyskać lub przechwycić parametry klucza prywatnego, klucz i wszystkie informacje zaszyfrowane lub podpisane z nim zostaną naruszone.