Crypto APIのどのカーネルモジュールが私のシステムに役立つのかどうかはどうすればわかりますか?
ソフトウェアがある場合は、そのソフトウェアがカーネルAPIを使用しているかどうかを確認できますか?たとえば、RSAを頻繁に使用しますが、次のオプションを有効にすると、RSA関連のソフトウェアはより安全で高速になりますか?誰がアクティブにする必要がありますか?
CONFIG_CRYPTO_RSA:
Generic implementation of the RSA public key algorithm.
Symbol: CRYPTO_RSA [=n]
Prompt: RSA algorithm
答え1
たとえば、RSAを頻繁に使用しますが、次のオプションを有効にすると、RSA関連のソフトウェアはより安全で高速になりますか?
いいえ。
汎用命令またはCPU固有の命令を使用した実装は、他のカーネルモジュールにのみ役立ちます。ユーザープログラムはそれを使用しません。
ハードウェアアクセラレーションは通常、特にx86 PC上の特別なCPU命令によって提供されます。ユーザー空間は、カーネルを呼び出さなくても同じ命令を使用できます。これは最も費用がかかる方法であり、小さなメッセージを暗号化するときに特に重要です。
カーネルモジュールが特定のアルゴリズムを必要とするならば、ほとんどの場合自動的に選択することになると思います。別の暗号化(IPsecなど)を選択できる場合は、使用したい特定のアルゴリズムを手動で有効にする必要があります。
一部のシステムオンチップCPUには、カーネルドライバを必要とする暗号化アクセラレータが含まれています。 ~によるとCryptodev - Linuxしかし、現在のメインラインカーネルは、必要なものよりはるかに効率の低いインターフェースを提供しています。私の説明は、この種のアクセラレータは少なくともメインラインLinuxではあまり人気がないということです。