RSAParameters Struktura

Definicja

Reprezentuje parametry RSA standardowe algorytmu.Represents the standard parameters for the RSA algorithm.

public value class RSAParameters
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public struct RSAParameters
type RSAParameters = struct
Public Structure RSAParameters
Dziedziczenie
RSAParameters
Atrybuty

Uwagi

Klasa uwidacznia metodę, która umożliwia pobranie klucza RAW RSA RSAParameters w formie struktury. ExportParameters RSAThe RSA class exposes an ExportParameters method that enables you to retrieve the raw RSA key in the form of an RSAParameters structure. Zrozumienie zawartości tej struktury wymaga znajomości sposobu RSA działania algorytmu.Understanding the contents of this structure requires familiarity with how the RSA algorithm works. W następnej sekcji omówiono krótko.The next section discusses the algorithm briefly.

Algorytm RSARSA Algorithm

Aby wygenerować parę kluczy, Zacznij od utworzenia dwóch dużych pierwszych numerów o nazwie p i p.To generate a key pair, you start by creating two large prime numbers named p and q. Te liczby są mnożone, a wynik jest nazywany n.These numbers are multiplied and the result is called n. Ponieważ p i q są liczbami podstawowymi, jedynymi czynnikami n są 1, p, q i n.Because p and q are both prime numbers, the only factors of n are 1, p, q, and n.

Jeśli Rozważmy tylko cyfry, które są mniejsze niż n, liczba numerów, które są stosunkowo do n, czyli nie mają wspólnych czynników z n, równa się (p-1) (q-1).If we consider only numbers that are less than n, the count of numbers that are relatively prime to n, that is, have no factors in common with n, equals (p - 1)(q - 1).

Teraz można wybrać liczbę e, która jest stosunkowo relatywna od obliczonej wartości.Now you choose a number e, which is relatively prime to the value you calculated. Klucz publiczny jest teraz reprezentowany jako {e, n}.The public key is now represented as {e, n}.

Aby utworzyć klucz prywatny, należy obliczyć d, który jest liczbą, taką jak (d) (e) mod (p-1) (q-1) = 1.To create the private key, you must calculate d, which is a number such that (d)(e) mod (p - 1)(q - 1) = 1. Zgodnie z algorytmem Euclidean klucz prywatny to teraz {d, n}.In accordance with the Euclidean algorithm, the private key is now {d, n}.

Szyfrowanie zwykłego tekstu m do tekstu szyfrowanego c jest zdefiniowane jako c = (m ^ e) mod n.Encryption of plaintext m to ciphertext c is defined as c = (m ^ e) mod n. Odszyfrowywanie zostanie następnie zdefiniowane jako m = (c ^ d) mod n.Decryption would then be defined as m = (c ^ d) mod n.

Krótki opis pólSummary of Fields

Sekcja A. 1.2 #1 PKCS: Standard kryptografii RSA w witrynie sieci Web RSA Laboratories definiuje format kluczy prywatnych RSA.Section A.1.2 of the PKCS #1: RSA Cryptography Standard on the RSA Laboratories Web site defines a format for RSA private keys.

W poniższej tabeli zestawiono pola RSAParameters struktury.The following table summarizes the fields of the RSAParameters structure. Trzecia kolumna zawiera odpowiednie pole w sekcji A. 1.2 pliku PKCS #1: Standardkryptografii RSA.The third column provides the corresponding field in section A.1.2 of PKCS #1: RSA Cryptography Standard.

RSAParameterspolamiRSAParameters field ZawieraContains Odpowiednie pole #1 PKCSCorresponding PKCS #1 field
D d, wykładnik prywatnyd, the private exponent privateExponentprivateExponent
DP d mod (p-1)d mod (p - 1) exponent1exponent1
DQ d mod (q-1)d mod (q - 1) exponent2exponent2
Exponent e, wykładnik publicznye, the public exponent publicExponentpublicExponent
InverseQ (InverseQ) (q) = 1 Mod p(InverseQ)(q) = 1 mod p coefficientcoefficient
Modulus nn modulusmodulus
P pp prime1prime1
Q qq prime2prime2

Zabezpieczenia RSA wynikają z faktu, że w przypadku klucza publicznego {e, n} nie jest możliwe obliczenie d, bezpośrednio lub przez factoring n w p i q.The security of RSA derives from the fact that, given the public key { e, n }, it is computationally infeasible to calculate d, either directly or by factoring n into p and q. W związku z tym każda część klucza związanego z d, p lub q musi być zachowana jako wpis tajny.Therefore, any part of the key related to d, p, or q must be kept secret. W przypadku wywołaniaIf you call

ExportParametersi podawaj tylko informacje o kluczu publicznym, to dlatego, że będziesz otrzymywać Exponent tylko Modulusi.ExportParameters and ask for only the public key information, this is why you will receive only Exponent and Modulus. Pozostałe pola są dostępne tylko wtedy, gdy masz dostęp do klucza prywatnego i masz do niego żądanie.The other fields are available only if you have access to the private key, and you request it.

RSAParametersnie jest w żaden sposób zaszyfrowany, dlatego należy zachować ostrożność w przypadku używania jej z informacjami o kluczu prywatnym.RSAParameters is not encrypted in any way, so you must be careful when you use it with the private key information. W rzeczywistości nie można serializować żadnych pól zawierających informacje o kluczu prywatnym.In fact, none of the fields that contain private key information can be serialized. Jeśli spróbujesz serializować RSAParameters strukturę z wywołaniem komunikacji zdalnej lub przy użyciu jednego z serializatorów, otrzymasz tylko informacje o kluczu publicznym.If you try to serialize an RSAParameters structure with a remoting call or by using one of the serializers, you will receive only public key information. Jeśli chcesz przekazać informacje o kluczu prywatnym, musisz ręcznie wysłać te dane.If you want to pass private key information, you will have to manually send that data. We wszystkich przypadkach, jeśli każda osoba może uzyskać parametry, przesyłany klucz stanie się bezużyteczny.In all cases, if anyone can derive the parameters, the key that you transmit becomes useless.

.NET Core 2.1.0 i nowsze: Ograniczenia serializacji zostały usunięte i wszystkie elementy członkowskie RSAParameters są serializowane..NET Core 2.1.0 and later: The serialization restrictions have been removed and all members of RSAParameters are serialized. Należy zachować ostrożność podczas pisania lub uaktualniania kodu do programu .NET Core 2.1.0 lub nowszego, ponieważ w przypadku, gdy każda osoba może utworzyć lub przechwycić klucz prywatny, a wszystkie informacje zaszyfrowane lub podpisane przy użyciu tej ochrony zostały naruszone.Care must be excercised when writing or upgrading code against .NET Core 2.1.0 or later, because if anyone can derive or intercept the private key parameters the key and all the information encrypted or signed with it are compromised.

Pola

D

D Reprezentuje parametrRSA algorytmu.Represents the D parameter for the RSA algorithm.

DP

DP Reprezentuje parametrRSA algorytmu.Represents the DP parameter for the RSA algorithm.

DQ

DQ Reprezentuje parametrRSA algorytmu.Represents the DQ parameter for the RSA algorithm.

Exponent

Exponent Reprezentuje parametrRSA algorytmu.Represents the Exponent parameter for the RSA algorithm.

InverseQ

InverseQ Reprezentuje parametrRSA algorytmu.Represents the InverseQ parameter for the RSA algorithm.

Modulus

Modulus Reprezentuje parametrRSA algorytmu.Represents the Modulus parameter for the RSA algorithm.

P

P Reprezentuje parametrRSA algorytmu.Represents the P parameter for the RSA algorithm.

Q

Q Reprezentuje parametrRSA algorytmu.Represents the Q parameter for the RSA algorithm.

Dotyczy

Zobacz też