3

在我的项目中,我有兴趣使用 Bit-slice 方法在 GPU 上为 HPC 应用程序进行 AES 批量加密。在这方面,我找到了很多论文,讨论使用Lookup Table approach. 我没有找到任何讨论在 GPU 上使用Bitslice approach. Jason Yang 和 James Goodman发表了一篇题为“ Symmetric Key Cryptography on Modern Graphics Hardware”的论文,讨论了用于密钥搜索应用的 GPU 上 AES 和 DES 的 Bitslice 实现。

一篇名为“ Fast, Scalable and Secure encryption on GPU”的论文提到,Yang 的上述 Bitslice 实现需要大量依赖于输入的预处理,因此完全不适合 HPC 应用。使用 Bitslice 方法在 GPU 上进行 AES 批量加密似乎没有好处。

任何人都可以请解释并向我保证whether bulk encryption on GPU using Bitslice approach is possible or not吗?

提前致谢!

4

1 回答 1

0

可以在 GPU 上使用位片方法进行批量加密,但在大多数情况下,它会比基于表的方法慢。通过位切片,每个线程将并行计算 32 个 AES 块。然而,主计算可能非常快,正如已经提到的预处理和后处理是这里的问题。

位切片的 AES-128 不会产生 4 个 32 位位置来保存单个加密块,而是会产生 128 个 32 位位置,其中位置 0 的所有位都是块 0 的加密结果,位位置 1 的所有位是块 1 的结果,依此类推。输入必须是相同的格式。出于这个原因,您将需要转置位矩阵以通常预期的方式获得结果。转置位矩阵是非常无效的。密钥搜索应用程序可以避免位转置和未转置域中的比较。

如果您不关心兼容性但绝对需要极高的加密率,您可以实现位切片 CTR 模式 AES 加密,并将生成的 AES 输出位与您的明文进行异或运算,而无需先转置输出位。这应该与常规 CTR 模式一样安全,但对于使用非位切片的 AES 实现的任何人来说,它都是非标准模式并且解密速度很慢。

于 2015-06-09T09:14:48.180 回答