我得到了一个奇怪的结果,SHA-512比SHA-256快50%左右。我正在使用.NET的SHA512Managed和SHA256Managed类。代码与发布的这里类似,但我指的是考虑缓存的测试(从第二次读取文件开始,它似乎被完全缓存)。我已经用同样的结果测试过几次了。
我的问题是:这是合乎逻辑的,还是我的考试一定有问题?
发布于 2015-06-17 05:55:54
沙-512比SHA-256多出25%。在64位处理器上,每一轮的运算量是相同的,但每轮处理数据的数量可以翻倍,因为指令处理的是64位字,而不是32位字。因此,2/ 1.25 = 1.6,这是SHA-512在最优条件下的速度有多快。
当然,也存在内存开销、指令延迟和其他因素;在Intel Ivy Bridge处理器上,长消息SHA-512比AMD Piledriver快1.54倍,在AMD Piledriver上则快1.48倍。
对于小消息(小于448位),SHA-512将慢约1.25倍,因为只执行一个散列迭代。还有不同的交叉点,其中一个散列将需要处理额外的迭代,而另一个则不需要,但是这些数字是平均值,实际的性能图将在迭代增量点进行分步。
发布于 2015-06-16 20:21:34
沙-512(和SHA-384)通常在64位平台上更快,而SHA-256在32位平台上通常更快.
发布于 2020-05-08 06:53:06
在一些系统上,比如我的Athlon 3000 G运行64位openSUSE Linux,sha256似乎要快3倍:
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes
sha256 189198.58k 512668.07k 1043590.40k 1429210.79k 1641379.16k 1680277.50k
sha512 48800.73k 191544.23k 343078.23k 515876.82k 611980.63k 620609.54khttps://crypto.stackexchange.com/questions/26336
复制相似问题