System.Security.Cryptography.RSAParameters-structuur
In dit artikel vindt u aanvullende opmerkingen in de referentiedocumentatie voor deze API.
De RSAParameters structuur vertegenwoordigt de standaardparameters voor het RSA-algoritme.
De RSA klasse maakt een ExportParameters methode beschikbaar waarmee u de onbewerkte RSA-sleutel kunt ophalen in de vorm van een RSAParameters structuur.
Als u de inhoud van deze structuur wilt begrijpen, is het handig om vertrouwd te zijn met de werking van het RSA algoritme. In de volgende sectie wordt het algoritme kort besproken.
RSA-algoritme
Als u een sleutelpaar wilt genereren, begint u met het maken van twee grote priemgetallen met de naam p en q. Deze getallen worden vermenigvuldigd en het resultaat wordt n genoemd. Omdat p en q beide priemgetallen zijn, zijn de enige factoren van n 1, p, q en n.
Als we alleen getallen beschouwen die kleiner zijn dan n, hebben we het aantal getallen dat relatief priem is tot n, dat wil gezegd, geen factoren gemeen hebben met n, gelijk is aan n (p - 1)(q - 1).
Nu kiest u een getal e, dat relatief priem is op de waarde die u hebt berekend. De openbare sleutel wordt nu weergegeven als {e, n}.
Als u de persoonlijke sleutel wilt maken, moet u d berekenen, wat een getal is dat (d)(e) mod (p - 1)(q - 1) = 1. In overeenstemming met het Euclidean-algoritme is de persoonlijke sleutel nu {d, n}.
Versleuteling van plaintext m naar ciphertext c wordt gedefinieerd als c = (m ^ e) mod n. Ontsleuteling zou dan worden gedefinieerd als m = (c ^ d) mod n.
Samenvatting van velden
Sectie A.1.2 van de PKCS #1: RSA Cryptography Standard definieert een indeling voor persoonlijke RSA-sleutels.
De volgende tabel bevat een overzicht van de velden van de RSAParameters structuur. De derde kolom bevat het bijbehorende veld in sectie A.1.2 van PKCS #1: RSA Cryptography Standard.
RSAParameters Veld | Bevat | Overeenkomend PKCS #1-veld |
---|---|---|
D | d, de privé exponent | privateExponent |
DP | d mod (p - 1) | exponent1 |
DQ | d mod (q - 1) | exponent2 |
Exponent | e, de openbare exponent | publicExponent |
InverseQ | (InverseQ) (q) = 1 mod p | Coëfficiënt |
Modulus | n | modulus |
P | nm | prime1 |
Q | k | prime2 |
De beveiliging van RSA is afgeleid van het feit dat, gezien de openbare sleutel { e, n }, het rekenkundig onfeilbaar is om d te berekenen, hetzij rechtstreeks of door n in p en q te factoring. Daarom moet een deel van de sleutel met betrekking tot d, p of q geheim worden gehouden. Als u alleen ExportParameters de informatie over de openbare sleutel belt en vraagt, ontvangt u daarom alleen Exponent en Modulus. De andere velden zijn alleen beschikbaar als u toegang hebt tot de persoonlijke sleutel en u deze aanvraagt.
RSAParameters is op geen enkele manier versleuteld, dus u moet voorzichtig zijn wanneer u deze gebruikt met de persoonlijke sleutelgegevens. Alle leden van RSAParameters zijn geserialiseerd. Als iemand de parameters voor de persoonlijke sleutel kan afleiden of onderscheppen, worden de sleutel en alle versleutelde of ondertekende gegevens aangetast.