Encryption/Decryption algorithms written in CUDA C/C++


I am very new in CUDA programming, I know C/C++. Are there any reliable/tested algorithms for encryption/decryption written in C/C++ so that accelarate on Nvidia GPUs?

Thank you

Can I parallelize an encryption/decryption algorithm, which is written in C/C++, so that it can run on Nvidia GPU?

If you can do a blockwise independent encryption/decryption you can address the blocks in parallel: ECB mode allows for that, CBC mode doesn’t.

Also consider that the time needed to transfer the data to GPU and back over the relatively slow PCIE bus may negate any expected performance benefits.


Thank you. I am using jetson nano or a gaming laptop with nvidia GTX. What about ECC ? Can I achieve something there? Thank you…

The bignum integer maths usually employed in Elliptic Curve Cryptography can be accelerated with GPUs. The bigger the keys the more advantageous for the CPU.

But as usually the Elliptic curve part would be used in negotiating a symmetric key, accelerating this will not speed up the overall encryption process.

This also happens with ECDH and ECDSA? I mean they don’t get improved with parallelized code?
Thank you…

ECDH is a method of key exchange. Assuming 1% of CPU cycles is spent in the key exchange, and 99% of CPU cycles is spent in a CBC mode symmetric encryption (say, AES) then accelerating the ECDH by factor 10 brings your total CPU reqirement down to 99.1%. Congratulation, you’ve saved 0.9% ;)

ECDSA could profit quite significantly if you had to sign a lot of short messages in parallel, I would think.

Hardware Crypto Acceleration on highly loaded servers that have to negotiate a lot of HTTPS connections is actually a thing. https://store.netgate.com/ADI/QuickAssist8955.aspx