4

.NETは、暗号化操作(GPUを検出してグラフィック操作に使用する方法)でHardware Cryptographic Acceleratorを検出して使用しますか?

そうでない場合、どの管理ライブラリを提案しますか?

4

3 に答える 3

5

.NETはかなり大きいです。

Microsoft .NETのWindowsでは、次の名前のタイプがあります。

  • *ManagedたとえばSHA1Managed、完全に管理された実装です。それらにはハードウェアアクセラレーションはありません。

  • *CryptoServiceProviderたとえばSHA1CryptoServiceManager、CryptoAPI(ネイティブ)コードを使用します。ネイティブCSPにハードウェアアクセラレーションがある場合は、それを利用できます。

  • 新しいフレームワークバージョンでは、*CNGCryptography Next Generation)。これはCryptoAPIの代わりになります-同じルールが適用されます(ネイティブコードがハードウェアアクセラレーションを使用できる場合はそれを取得します)。

Monoでは、すべてのプラットフォームで、デフォルトで完全に管理された実装(タイプの名前に関係なく)があります

現在、両方(MSとMono)の場合、独自の(またはサードパーティの)実装を使用することもできます。CryptoConfig.CreateFromこれは、(直接的または間接的になどSHA1.Create)を使用し、machine.configファイルに代替実装への参照が含まれている場合でも、アプリケーションに対して完全に透過的である可能性があります。これにより、あなた(または他の誰か)は、任意の実装を別の(ハードウェアアクセラレーションを含む)実装に追加(または置換)することができます。

注:フレームワークのバージョン4.0では、新しいAddAlgorithmメソッドを使用するとこれがさらに簡単になります。

于 2012-02-13T13:39:21.433 に答える
2

場合によります。一部のHSM(ハードウェアセキュリティモジュール)には、CAPIおよび/またはCNG用の追加のプロバイダー実装が付属しています。それらはすべて、通常、PKCS#11ドライバー(Cベース)が付属しています。

最新のハードウェアは、デフォルトのCNGプロバイダーをカスタム実装に置き換え、実際には、要求した種類の自動検出を実現します。

これをサポートしないHSMの場合、プロバイダーを手動で登録する必要があります。最悪の場合、カスタムプロバイダーが提供されていない場合は、PKCS#11に手動で接続するか、次のようなものを使用する必要があります

于 2012-02-13T13:46:59.063 に答える
1

一部のハードウェアベンダーは、デフォルトのSChannelおよびその他のプロバイダーを独自のものに置き換えることができます。その場合、.NETはストックプロバイダーの代わりに代替品を使用します。ただし、暗号化ハードウェアを自動的に検出して使用する方法はありません。

ほとんどのアクセラレータは、PKCS#11インターフェイスを介して使用できます。一般に、PKCS#11を介してこのようなアクセラレータを使用するSecureBlackboxを使用できますが、呼び出すPKCS#11 DLLを「手動で」指定する必要があります(このようなDLLはシステムに登録されていないため、自動検出はできません)。

于 2012-02-13T13:38:56.420 に答える