作为我的项目,我有兴趣在GPU上使用位片方法对HPC应用程序进行AES批量加密。在这方面,我找到了许多论文,讨论使用Lookup Table approach在图形处理器上进行批量加密。我没有找到任何关于在图形处理器上使用Bitslice approach进行批量加密的论文。有一篇由Jason Yang和James Goodman撰写的题为"Symmetric Key Cryptography on Modern Graphics Hardware“的论文,讨论了用于密钥搜索应用的AES和DES在GPU上的位片实现。
一篇题为"Fast, Scalable and Secure encryption on GPU“的论文提到,上面杨的位片实现需要大量依赖输入的预处理,因此完全不适合高性能计算应用程序。看来,在GPU上使用位片方法进行AES批量加密是不有利的。
谁能向我解释一下并向我保证whether bulk encryption on GPU using Bitslice approach is possible or not
提前感谢!
发布于 2015-06-09 17:14:48
可以在GPU上使用位片方法进行批量加密,但在大多数情况下,它将比基于表的方法慢。使用位切片,每个线程将并行计算32个AES块。然而,主要的计算可以相当快,正如已经提到的预处理和后处理是这里的问题。
位分片AES-128将不会产生4个保存单个加密块的32位位置,而是会产生128个32位位置,其中位置0处的所有位是块0的加密结果,位位置1处的所有位是块1的结果,依此类推。要求输入的格式相同。出于这个原因,您将需要转置一个位矩阵,以便以通常预期的方式获得结果。转置比特矩阵是非常无效的。关键字搜索应用程序可以避免在未转置的域中进行比特转置和比较。
如果您不关心兼容性,但绝对需要极高的加密率,您可以实现位切片CTR模式AES加密,并将生成的AES输出位与明文进行异或运算,而无需首先转置输出位。这应该与常规CTR模式一样安全,但对于使用未进行位切片的AES实现的任何人来说,这将是非标准模式,并且解密速度很慢。
https://stackoverflow.com/questions/17520479
复制相似问题