因此,据我所知,Argon2是一个内存硬函数,换句话说,它必须使用一定数量的内存,从而使它对GPU有效。
那么,从理论上讲,这会让Argon2对一个拥有无限记忆的对手毫无用处吗?
但是如果是这样的话,那么为什么给Argon2更高的内存需求也会使它变慢呢?难道不应该用同样的时间,但用更多的记忆吗?还有更多的处理在进行吗?还是因为RAM读/写时间较慢?
发布于 2021-07-16 02:21:08
给Argon2更多的内存确实会使它变慢。当Argon2填充它使用的内存时,它调用G函数,该函数根据BLAKE2b循环函数修改数据。增加内存还会增加每次迭代中迭代的列数,每一次迭代都涉及对同一个G函数的调用。因此,将内存增加一倍也意味着所需工作量实际上翻了一番。你可以看到很多维基百科的伪码算法。
对于拥有无限内存的对手来说,Argon2是没有用的,除非他们有办法使额外内存的运算速度更快。在实际的计算机设计中,即使使用性能非常好的向量运算,这仍然会增加额外的成本。
https://crypto.stackexchange.com/questions/92095
复制相似问题