System.Security.Cryptography.RSAParameters 構造体

この記事では、この API のリファレンス ドキュメントへの補足的な解説を提供します。

この構造体は RSAParameters 、RSA アルゴリズムの標準パラメーターを表します。

このクラスは RSA 、構造の ExportParameters 形式で生の RSA キーを取得できるようにするメソッドを RSAParameters 公開します。

この構造の内容を理解するには、アルゴリズムのしくみ RSA を理解するのに役立ちます。 次のセクションでは、アルゴリズムについて簡単に説明します。

RSA アルゴリズム

キー ペアを生成するには、まず p と q という名前の 2 つの大きな素数を作成します。 これらの数値は乗算され、結果は n と呼ばれます。 p と q はどちらも素数であるため、n の唯一の要因は 1、p、q、n です。

n 未満の数値のみを考慮する場合、n に比較的素数である数値の数、つまり n と等しい (p - 1)(q - 1) と共通する要因はありません。

ここで、数値 e を選択します。これは、計算した値に対して相対的に素数です。 公開キーは {e, n} として表されるようになりました。

秘密キーを作成するには、d (d)(e) mod (p - 1)(q - 1) = 1 のような数値である d を計算する必要があります。 ユークリッド アルゴリズムに従って、秘密キーは {d, n} になりました。

プレーンテキスト m から暗号文 c への暗号化は、c = (m ^ e) mod n として定義されます。 復号化は m = (c ^ d) mod n として定義されます。

フィールドの概要

PKCS #1 の セクション A.1.2: RSA Cryptography Standard では、RSA 秘密キーの形式が定義されています。

次の表は、構造体のフィールドを RSAParameters まとめたものです。 3 番目の列は、PKCS #1: RSA Cryptography Standardセクション A.1.2 の対応するフィールドを提供します。

RSAParameters のフィールド 内容 対応する PKCS #1 フィールド
D d、プライベート指数 privateExponent
DP d mod (p - 1) exponent1
DQ d mod (q - 1) exponent2
Exponent e、パブリック指数 publicExponent
InverseQ (逆Q)(q) = 1 mod p 係数
Modulus n modulus
P P prime1
Q q prime2

RSA のセキュリティは、公開キー { e, n } を指定すると、d を直接計算するか、n を p と q に組み込むことで計算できないという事実に由来します。 したがって、d、p、または q に関連するキーの一部は秘密にしておく必要があります。 公開キー情報だけを呼び出 ExportParameters して要求する場合、これがあなたが受け取る唯一 Exponent の理由です Modulus。 他のフィールドは、秘密キーにアクセスでき、それを要求した場合にのみ使用できます。

RSAParameters は暗号化されないため、秘密キー情報と共に使用するときは注意が必要です。 すべてのメンバー RSAParameters がシリアル化されます。 誰かが秘密キー パラメーターを派生またはインターセプトできる場合、キーと、暗号化または署名されたすべての情報が侵害されます。