.NETは、ハードウェア暗号化アクセラレータを暗号操作(GPUを検出してグラフィック操作に使用する方法)で検出して使用しますか?暗号アクセラレータと.NET
そうでない場合は、どの管理ライブラリをお勧めしますか?
.NETは、ハードウェア暗号化アクセラレータを暗号操作(GPUを検出してグラフィック操作に使用する方法)で検出して使用しますか?暗号アクセラレータと.NET
そうでない場合は、どの管理ライブラリをお勧めしますか?
.NETがかなり大きいです。例えば、
*Managed
:マイクロソフト.NETで
は、Windows環境下では、名前付きのタイプを見つけることができますSHA1Managed
が完全に管理された実装です。 には、がありません。
*CryptoServiceProvider
などです。 SHA1CryptoServiceManager
CryptoAPI(ネイティブ)コードを使用します。 ネイティブCSPにハードウェアアクセラレーションがある場合は、それを取得します。
新しいフレームワークのバージョンでは、,(Cryptography Next Generation)です。これがCryptoAPIの代替品です。同じルールが適用されます(ネイティブコードでハードウェアアクセラレーションを使用できる場合は、入手できます)。
モノラルでは、すべてのプラットフォームは、あなたが完全に管理されています実装(どんなタイプの名前)デフォルトによります。
ここで、(MSとMono)の両方で、独自の(または第三者の)実装を使用することもできます。 CryptoConfig.CreateFrom
(直接的または間接的に、たとえばSHA1.Create
)を使用し、machine.config
ファイルに代替実装への参照が含まれている場合は、アプリケーションに完全に透過的にすることもできます。これにより、あなた(または他の誰か)が任意の実装を別の(ハードウェアアクセラレーションを含む)実装で追加(または置き換え)することができます。
注:新しいAddAlgorithm
メソッドを使用すると、フレームワークのバージョン4.0によってさらに簡単になります。
一部のハードウェアベンダーは、デフォルトのSChannelおよび他のプロバイダーを独自のものに置き換えます。もしそうなら、.NETは株価の代わりに代替物を使うでしょう。しかし、暗号化ハードウェアを自動的に検出して使用する方法はありません。
ほとんどのアクセラレータは、PKCS#11インターフェイス経由で使用できます。一般に、PKCS#11経由でこのようなアクセラレータを使用するSecureBlackboxを使用できますが、PKCS#11 DLLを "手動で"指定する必要があります(システムに登録されていないDLLは自動検出できません)。