RSAParameters RSAParameters RSAParameters RSAParameters Struct


RSA アルゴリズムの標準のパラメーターを表します。Represents the standard parameters for the RSA algorithm.

public value class RSAParameters
public struct RSAParameters
type RSAParameters = struct
Public Structure RSAParameters


RSAクラスでは、ExportParametersメソッドの形式で生の RSA キーを取得することができます、RSAParameters構造体。The RSA class exposes an ExportParameters method that enables you to retrieve the raw RSA key in the form of an RSAParameters structure. この構造体の内容を理解する知識が必要ですが、どのようにRSAアルゴリズムの動作。Understanding the contents of this structure requires familiarity with how the RSA algorithm works. [次へ] のセクションでは、アルゴリズムが簡単に説明します。The next section discusses the algorithm briefly.

RSA アルゴリズムRSA Algorithm

キーのペアを生成するには、まず 2 つの大きな素数 p と q をという名前を作成します。To generate a key pair, you start by creating two large prime numbers named p and q. これらの数値が乗算され、結果には、n が呼び出されます。These numbers are multiplied and the result is called n. P と q 両方素数、唯一の要因は 1、n、p、q、および n のためです。Because p and q are both prime numbers, the only factors of n are 1, p, q, and n.

N より小さい数値のみを考える場合は、n、互いに素の数値の数があるない要因共通 n、equals (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).

今すぐこれには、計算した値に素番号、電子メールを選択します。Now you choose a number e, which is relatively prime to the value you calculated. 公開キーは {e、n} として表されるようにします。The public key is now represented as {e, n}.

秘密キーを作成する、d の数字を計算する必要がありますように (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. 秘密キーをここでは、ユークリッドの互除法に従って {d, n}。In accordance with the Euclidean algorithm, the private key is now {d, n}.

暗号化テキスト c に m をプレーン テキストの暗号化が c として定義されている = (m ^ e) mod n。Encryption of plaintext m to ciphertext c is defined as c = (m ^ e) mod n. M として定義し、復号化 = (c ^ d) mod n。Decryption would then be defined as m = (c ^ d) mod n.

フィールドの概要Summary of Fields

セクションの A.1.2、 PKCS 1。RSA 暗号化標準RSA Laboratories の Web サイト、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.

次の表のフィールド、RSAParameters構造体。The following table summarizes the fields of the RSAParameters structure. 3 番目の列は、セクション A.1.2 で対応するフィールドのPKCS #1。RSA 暗号化標準します。The third column provides the corresponding field in section A.1.2 of PKCS #1: RSA Cryptography Standard.

RSAParameters のフィールドRSAParameters field 内容Contains PKCS #1 の対応するフィールドCorresponding PKCS #1 field
D d、プライベートの指数d, 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、公開キーの指数e, the public exponent publicExponentpublicExponent
InverseQ (InverseQ)(q) = 1 の mod p(InverseQ)(q) = 1 mod p 係数coefficient
Modulus nn modulusmodulus
P pp prime1prime1
Q qq prime2prime2

RSA のセキュリティを指定されたパブリック キー {e, n} は直接または p と q に n を考慮することによって、d を計算する計算上不可能という事実に由来します。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. そのため、d、p、q に関連するキーの一部が秘密保持する必要があります。Therefore, any part of the key related to d, p, or q must be kept secret. 呼び出す場合If you call

ExportParameters のみが表示されますこのため、公開キー情報のみを求めるとExponentModulusします。ExportParameters and ask for only the public key information, this is why you will receive only Exponent and Modulus. 他のフィールドには、秘密キーにアクセスして、要求する場合にのみ使用できます。The other fields are available only if you have access to the private key, and you request it.

RSAParameters ようにする必要がある秘密キーの情報を使用する場合は、何らかの方法で暗号化されません。RSAParameters is not encrypted in any way, so you must be careful when you use it with the private key information. 実際には、すべての秘密キーの情報が含まれているフィールドをシリアル化することができます。In fact, none of the fields that contain private key information can be serialized. シリアル化しようとする場合、RSAParametersリモート処理では、構造体を呼び出すか、シリアライザーのいずれかで、公開キー情報だけが表示されます。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. 秘密キーの情報を渡す場合は、手動でそのデータを送信する必要があります。If you want to pass private key information, you will have to manually send that data. すべてのケースで、パラメーターを派生できるすべてのユーザーの場合、送信するキーは役に立ちませんになります。In all cases, if anyone can derive the parameters, the key that you transmit becomes useless.

.NET core 2.1.0 以降:制限が削除されたシリアル化とのすべてのメンバーRSAParametersはシリアル化されます。.NET Core 2.1.0 and later: The serialization restrictions have been removed and all members of RSAParameters are serialized. ケアが excercised 記述または .NET Core 2.1.0 に対してコードをアップグレードする際にする必要がありますか、後で、だれでも派生またはプライベートのキー パラメーターをインターセプトできる場合、キーとすべての情報が暗号化またはで署名されたため、これが改ざんされた場合します。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.



RSA アルゴリズムの D パラメーターを表します。Represents the D parameter for the RSA algorithm.


RSA アルゴリズムの DP パラメーターを表します。Represents the DP parameter for the RSA algorithm.


RSA アルゴリズムの DQ パラメーターを表します。Represents the DQ parameter for the RSA algorithm.

Exponent Exponent Exponent Exponent

RSA アルゴリズムの Exponent パラメーターを表します。Represents the Exponent parameter for the RSA algorithm.

InverseQ InverseQ InverseQ InverseQ

RSA アルゴリズムの InverseQ パラメーターを表します。Represents the InverseQ parameter for the RSA algorithm.

Modulus Modulus Modulus Modulus

RSA アルゴリズムの Modulus パラメーターを表します。Represents the Modulus parameter for the RSA algorithm.


RSA アルゴリズムの P パラメーターを表します。Represents the P parameter for the RSA algorithm.


RSA アルゴリズムの Q パラメーターを表します。Represents the Q parameter for the RSA algorithm.