2

How do I know, which Kernel modules in the Cryptographic API will be beneficial on my system?

How can I see, if I have software, which will use the Kernel API? For example I use often RSA, but will my RSA related software be more secure, or faster, if I enable the following option? Who should enable it?

CONFIG_CRYPTO_RSA:
Generic implementation of the RSA public key algorithm.
Symbol: CRYPTO_RSA [=n]
Prompt: RSA algorithm

1 Answer 1

2

For example I use often RSA, but will my RSA related software be more secure, or faster, if I enable the following option?

Nope.

The implementations that use generic or even CPU-specific instructions, are only of benefit to other kernel modules. They are not used by user programs.

Hardware acceleration is often provided by specialized CPU instructions; this is particularly true on x86 PCs. Userspace can use the same instructions without making a call into the kernel. This is the lowest overhead approach, which is particularly important when encrypting small messages.

If a kernel module absolutely requires a particular algorithm, I think it will select it automatically in most cases. If there is a choice of different crypto – like in IPsec – you may need to manually enable the specific algorithm you want to use.

Some system-on-a-chip CPUs include a crypto accelerator which requires a kernel driver. According to Cryptodev-linux, however, the interface provided by the current mainline kernels is even less efficient than it needs to be. My interpretation is these types of accelerator are not very favoured, at least by mainline Linux.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .