Sdílet prostřednictvím


System.Security.Cryptography.RSAParameters – struktura

Tento článek obsahuje doplňující poznámky k referenční dokumentaci pro toto rozhraní API.

Struktura RSAParameters představuje standardní parametry algoritmu RSA.

Třída RSA zveřejňuje metodu ExportParameters , která umožňuje načíst nezpracovaný klíč RSA ve formě RSAParameters struktury.

Abyste pochopili obsah této struktury, pomůže vám seznámit se s tím, jak algoritmus RSA funguje. V další části se stručně popisuje algoritmus.

Algoritmus RSA

Pokud chcete vygenerovat pár klíčů, začněte vytvořením dvou velkých počátečních čísel s názvem p a q. Tato čísla se vynásobí a výsledek se nazývá n. Vzhledem k tomu, že p a q jsou obě čísla, jedinými faktory n jsou 1, p, q a n.

Pokud se podíváme pouze na čísla, která jsou menší než n, počet čísel, která jsou relativně základní k n, tedy nemají žádné faktory společné s n, rovná se (p - 1)(q - 1).

Teď zvolíte číslo e, které je relativně základní hodnotou, kterou jste vypočítali. Veřejný klíč je nyní reprezentován jako {e, n}.

Chcete-li vytvořit privátní klíč, musíte vypočítat d, což je číslo tak, že (d)(e) mod (p - 1)(q - 1) = 1. V souladu s euklidovým algoritmem je teď privátní klíč {d, n}.

Šifrování prostého textu m na šifertext c je definováno jako c = (m ^ e) mod n. Dešifrování by pak bylo definováno jako m = (c ^ d) mod n.

Souhrn polí

Oddíl A.1.2 pkcs #1: Standard kryptografie RSA definuje formát privátních klíčů RSA.

Následující tabulka shrnuje pole RSAParameters struktury. Třetí sloupec obsahuje odpovídající pole v části A.1.2 pkcs #1: RSA Cryptography Standard.

RSAParameters Pole Contains Odpovídající pole PKCS č. 1
D d, privátní exponent privateExponent
DP d mod (p - 1) exponent1
DQ d mod (q - 1) exponent2
Exponent e, veřejný exponent publicExponent
InverseQ (InverseQ) (q) = 1 mod p Koeficient
Modulus n modulus
P p prime1
Q q prime2

Zabezpečení RSA vychází ze skutečnosti, že vzhledem k veřejnému klíči { e, n }, je výpočetně neproveditelný pro výpočet d, a to buď přímo, nebo pomocí faktoringu n do p a q. Proto musí být jakákoli část klíče související s klíčem d, p nebo q udržována v tajnosti. Pokud zavoláte ExportParameters a požádáte pouze o informace o veřejném klíči, je to důvod, proč obdržíte pouze Exponent a Modulus. Ostatní pole jsou dostupná jenom v případě, že máte přístup k privátnímu klíči a požadujete ho.

RSAParameters není šifrovaný žádným způsobem, takže při použití s informacemi o privátním klíči musíte být opatrní. Všechny členy RSAParameters jsou serializovány. Pokud někdo může odvodit nebo zachytit parametry privátního klíče, dojde k ohrožení zabezpečení klíče a všech informací zašifrovaných nebo podepsaných pomocí něj.