2016-12-02 137 views
1

對於我正在開發的一個項目,我應該暴力破解AES加密的密文給予一部分密鑰。密文的其餘密鑰空間是2^40。我想運行使用CUDA的解密(劃分通過GPU核心的密鑰空間),但我似乎無法找到合適的CUDA AES庫。我想知道是否有解決方法,比如在內核中運行C AES庫解密。使用CUDA的AES解密

看着this question表明這可能是不可能的。

另一種選擇 - 我目前在python中有一個實現; (學習和)使用pyCuda並行化它會是可行的,還是會遇到與使用python AES庫函數相同的問題?

還有任何替代建議,以實現我想要做的將不勝感激!謝謝!

+1

在我看來,這可能有點偏離主題,但無論如何,我發佈了一個有兩個建議的答案。 – Taro

回答

2

如果您找不到適合您需求的庫(意味着它具有您期望的功能的CUDA實現),則必須執行自己的實現。 但是,如果您有任何其他語言的來源,並且由於此問題似乎是純粹的數學,您應該能夠使用任何其他語言編寫「等價物」。 我的建議是:

  • 首先編寫Python實現你(「經典」 CPU代碼)自己的C口
  • 然後寫此端口與C和CUDA C的適應使用一個或幾個在計算的GPU

注意我說的「適應」,而不是「翻譯」,因爲它是不是從語言只是切換到另一個真正的不同:您將創建一個使用GPU的特定類型的工作項目你必須考慮CPU和GPU編程之間的所有差異。 無論如何,這可能對SO來說有點偏離主題,因爲GPGPU過於寬泛,並且沒有足夠專注於您自己的源代碼的特定問題。