SHA512消息计划

时间:2014-01-30 13:37:17

标签: c++ hash sha512 crypto++

我正在尝试在Verilog中调试SHA512实现,但我无法在任何地方找到示例消息计划。我用Crypto ++制作了一个简单的C ++程序,但我无法找到要调试的变量来查看完整的消息调度,因为它是用汇编语言编写的。

我需要一个示例计划或帮助来识别加密++计划

1 个答案:

答案 0 :(得分:1)

在项目代码中包含crypto++,然后打开sha.h文件并添加断点,使用debug编译代码,然后当您的代码在断点处暂停时,您将看到整个SHA512代码并且您将能够调试并查看包括消息计划在内的所有变量。如果在SHA512函数中添加断点并使用debug编译代码,则不会看到汇编代码,相反,您将看到它的C ++源代码,并且您将能够将变量添加到监视窗口并检查它们的值。

你也可以在调试(步入)时按F11进入哈希函数,再次它不会是汇编,你会看到哈希函数的C ++代码。然后按照代码查看SHA消息计划。

正如您在每轮的SHA中所知,在消息计划数组k[i]中有一个循环常量w[i], 0 ≤ i ≤ 63和一个条目。因此,打开sha.cpp,你会看到w变量,这就是你需要调试的东西。 另外我要告诉你,SHA代码和Crypto++的很多部分都是用assembly编写的,所以你调试或读代码并不重要,它是用汇编语言编写的。 所以你可以取消注释

"// smaller but slower"

部分使用sha.cpp并使用C ++代码而不是汇编代码,或者只使用另一个用于SHA的库,您可以轻松地进行调试。