System.Security.Cryptography.RSACryptoServiceProvider クラス

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

クラスは RSACryptoServiceProvider 既定の実装です RSA

RSACryptoServiceProvider Microsoft Enhanced Cryptographic Provider がインストールされている場合、384 ビットから 16384 ビットまでのキー サイズが 8 ビットずつサポートされます。 Microsoft Base Cryptographic Provider がインストールされている場合、384 ビットから 512 ビットまでのキー サイズが 8 ビットずつサポートされます。

有効なキー サイズは、インスタンスによって使用される暗号化サービス プロバイダー (CSP) によって RSACryptoServiceProvider 異なります。 Windows CSP では、Windows 8.1 より前のバージョンの Windows では 384 ~ 16384 ビットのキー サイズ、Windows 8.1 の場合はキー サイズが 512 ~ 16384 ビットになります。 詳細については、 Windows ドキュメントの CryptGenKey 関数を参照してください。

Microsoft Cryptographic API (CAPI) との相互運用

アンマネージド CAPI の RSA 実装とは異なり、クラスは RSACryptoServiceProvider 暗号化後と復号化前に、暗号化されたバイト配列の順序を逆にします。 既定では、クラスによって RSACryptoServiceProvider 暗号化されたデータは CAPI 関数で復号化できず、CAPI CryptDecryptCryptEncrypt メソッドによって暗号化されたデータはクラスによって RSACryptoServiceProvider 復号化できません。

API 間の相互運用時に逆の順序を補正しない場合、クラスCryptographicExceptionRSACryptoServiceProvider .

CAPI と相互運用するには、暗号化されたデータが別の API と相互運用する前に、暗号化されたバイトの順序を手動で逆にする必要があります。 メソッドを呼び出すことで、マネージド バイト配列の順序を簡単に逆にすることができます Array.Reverse