使用 CUDA 进行 AES 解密

AES decryption using CUDA

对于我正在进行的项目,我应该在给定一部分密钥的情况下暴力破解 AES 加密的密文。密文的剩余密钥空间是 2^40.

我想 运行 使用 CUDA 解密(在 GPU 核心上划分密钥空间),但我似乎找不到合适的 CUDA AES 库。我想知道是否有解决此问题的方法,例如 运行在内核中解密 C AES 库。

查看 this question 表明这可能是不可能的。

另一种选择 - 我目前在 python 中有一个实现; (学习和)使用 pyCuda 对其进行并行化是否可行,或者我是否会 运行 尝试使用 python AES 库函数来解决与上述相同的问题?

此外,如果有任何替代建议来实现我正在尝试做的事情,我们将不胜感激!谢谢!

如果您找不到适合您需要的库(意味着它具有您期望的功能的 CUDA 实现),您必须自己实现。 但是,如果您有任何其他语言的源代码,并且由于这个问题似乎是纯数学问题,您应该能够用任何其他语言编写 "equivalent"。 我的建议是:

  • 首先编写您自己的 Python 实现的 C 端口("classic" CPU 代码)
  • 然后用 C 和 CUDA C 编写此端口的适配,以在计算中使用一个或多个 GPU

注意我说的是 "adapt" 而不是 "translate",因为这与从一种语言切换到另一种语言确实不同:您将创建一个在特定类型的工作中使用 GPU 的项目,并且您必须考虑 CPU 和 GPU 编程之间的所有差异。 无论如何,这对于 SO 来说可能有点偏离主题,因为关于 GPGPU 的范围太广,而没有足够地关注您自己的源代码上的特定问题。