我只是想知道下表中算法变体中的位长指的是什么?对于散列函数,我假设这是指以位为单位的输出长度。例如,对于SHA3-256,这意味着散列长度为256位。这是正确的吗?
但是,对于XOF SHAKE256来说,256意味着什么呢?这里所需的输出长度是d。
我希望有一件显而易见的事情我不理解,这是一个武断的问题。但是,我希望有人能花时间回答我。
下表来自沙维基。

发布于 2023-05-02 13:26:45
SHA3-256这意味着散列长度为256位。这是正确的吗?
是的,这是正确的-与SHA2-256完全相同,这意味着哈希的输出为256位。
但是,对于XOF SHAKE256来说,256意味着什么呢?
显然,这不是输出长度(这取决于应用程序)。相反,这是安全级别。也就是说,破坏各种标准安全目标(预图像、第二预图像和冲突)所需的工作量(不包括某些密码分析进展)是关于2^{256}置换(或逆置换)计算的。这个安全级别实质上是容量(状态大小减去块大小),除以两。
关于抖动的一件令人惊讶的事情是,碰撞攻击并不比第二次预图像攻击容易得多;在SHA-2中则不是这样,因为在SHA-2中,碰撞攻击似乎要容易得多(如果仍然不可行)。这是因为,对于抖动,我们可以对容量位进行内部碰撞攻击,使用其中一个方向的排列的可逆性;这种内部碰撞攻击所需的工作量与对整个哈希函数的标准碰撞攻击大致相同。
https://crypto.stackexchange.com/questions/106366
复制相似问题