Q: Is it possible to accelerate AES bulk encryption on GPUs using BitSlice approach? I am interested to do AES bulk encryption on GPU for HPC applications using Bit-slice approach as of my project. In this regards, i have found many papers, discussing bulk encryption on gpu using Lookup Table approach. I didn't found any paper which discuss bulk encryption on GPU using Bitslice approach. There is a paper titled "Symmetric Key Cryptography on Modern Graphics Hardware" by Jason Yang and James Goodman which discussed Bitslice implementation of AES and DES on GPU for Key-search applications.
One paper titled "Fast, Scalable and Secure encryption on GPU" mentioned that the above Bitslice implementation by Yang needs a lot of input dependent preprocessing and is thus completely unsuitable for HPC applications. It seems that it is not beneficial to do AES bulk encryption on GPU using Bitslice approach.
Can anybody Please explain and assure me whether bulk encryption on GPU using Bitslice approach is possible or not?
thanks in advance!

A: It is possible to do bulk encryption using a bitslice approach on a GPU, but in most cases it will be slower than a table based approach. With bitslicing every thread will compute 32 AES blocks in parallel. The main computation can be quite fast, however, as already mentioned pre- and postprocessing is the issue here.
A bitsliced AES-128 will not produce 4 32-bit locations holding a single encrypted block, but instead will produce 128 32-bit locations where all bits at position 0 are the result of the encryption of block 0, all bits at bit position 1 are the results from block 1 and so on. Input is required to be in same format. For this reason you will need to transpose a bitmatrix to get the result in the usually expected way. Transposing a bitmatrix is something that is quite ineffective. Key search applications can avoid the bit transpose and compare in the untransposed domain. 
If you do not care about compatibility but absolutely need extremely high encryption rates, you could implement a bitsliced CTR mode AES encryption and xor the generated AES output bits with your plaintext without transposing the output bits first. This should be as secure as regular CTR mode, but would be non-standard mode and slow to decrypt for anyone using a implementation of AES that is not bitsliced.
