7

MCSAPI を使用して、ncipher 暗号化サービス プロバイダー (CSP) で AES 暗号化を行う方法を見つけようとしています。私を困惑させているのは、nCipher を csp として指定するために使用されるクラスAesCryptoServiceProviderをコンストラクターが受け入れないことです。CspParameters

CspParameters cp = new CspParameters(24, "nCipher Enhanced RSA and AES Cryptographic Provider");
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(CspParameters)  // works fine
AesCryptoServiceProvider aes = new AesCryptoServiceProvider();   // Constructor takes no parameters.

私が見る限り、Rijndael クラスには、他のサードパーティの CSP を指定する方法もありません。私は何が欠けていますか?システム全体を初期化して、後続のすべての暗号化呼び出しのために CSP をロードする方法はありますか? CSP を使用して対称キーを管理し、デフォルトAesCryptoServiceProviderを使用して暗号化/復号化していると思いますか? RSACryptoServiceProvider(CspParameters)うまく動作します。しかし、対称暗号化を行いたいと思っています。C# .NET フレームワークでこれを行う必要があります。

4

2 に答える 2

8

Microsoft CAPI は、対称アルゴリズムのハードウェアで保護されたキーをサポートしていません。これは API の欠点であり、nCipher CSP の欠点ではありません。ハードウェアで保護できる唯一のキーは、CAPI コンテナーの署名キーと交換キーのペアです。作成された対称キーはすべて生成され、ソフトウェアで使用されます。

保護と永続化のために (ハードウェア) コンテナー キーに (ソフトウェア) 対称キーをラップできますが、これらの対称キーはハードウェアで保護されません。

Vista、Server 2008 以降にデプロイする場合は、CAPI Next Generation または CNG を検討する必要があります。CAPI Next Generation または CNG は、ハードウェアで保護された対称キーの生成と使用をサポートしており、Thales/nCipher CNG CSP はこれをサポートしています。ただし、Thales/nCipher CNG CSP は永続的な対称キーをサポートしていないため、古い学校の CAPI と同じようにコンテナー キー ペアでそれらをラップする必要があります。

私は Thales で働いていますが、Thales を代弁するつもりはありません。質問がある場合、および/または開発者サポートの入手方法を知りたい場合は、Thales サポートに連絡してください。

于 2012-07-08T23:02:11.773 に答える
1

AES は対称アルゴリズムであるため、CspParameters は使用できません。

nCipher はハードウェア標準 ( http://technet.microsoft.com/en-us/library/dd277354を参照) であるため、トークンが AES アルゴリズムを計算できる可能性がありますが、誰もが (アリスとボブ) 知っておく必要があります。秘密鍵を計算したり、ハードウェア トークンに格納したりするメリットはありません。

MSDN の例でAesCryptoServiceProvider の使用方法を確認できます。おそらく、AesManagedを使用する必要があります(例もあります)。

于 2012-07-05T14:34:20.253 に答える