我如何知道加密 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 的指令的实现仅对其他内核模块有益。用户程序不使用它们。
硬件加速通常由专门的 CPU 指令提供;在 x86 PC 上尤其如此。用户空间可以使用相同的指令,而无需调用内核。这是开销最低的方法,在加密小消息时尤其重要。
如果内核模块绝对需要特定的算法,我认为在大多数情况下它会自动选择它。如果可以选择不同的加密(例如 IPsec),您可能需要手动启用您想要使用的特定算法。
一些片上系统 CPU 包含需要内核驱动程序的加密加速器。根据Cryptodev-linux然而,当前主线内核提供的接口效率甚至低于所需的效率。我的解释是这些类型的加速器不太受欢迎,至少主线 Linux 是这样。