I was just wondering whether performing encryption on the GPU was safer than on the CPU, with regard to the difficulty of reading the encryption key from memory and/or various other hardware attacks.
I know there exists extensive literature about how to extract information from software cryptographic implementations but they mostly assume that a standard CPU is running the code. Can such attacks be extended to a GPU-style hardware architecture? Has it been done?
This could also be useful in general-purpose key management, where an encryption key must be kept secret for some duration. Instead of having it sit in memory, it could go into GPU memory (bonus: it can't be paged out to disk nor cached), and if you are doing the encryption within the GPU you don't even need to move it back and forth. But I'm sure there are GPU memory dump programs out there.
Does anyone have any experience with GPU cryptography and any possible weaknesses?