Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 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 | modulo |
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.