Przeczytaj w języku angielskim

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.