第七章 单向散列函数
Keccak
Keccak是一种被选定为SHA-3标准的单向散列函数算法
Keccak可以生成任意长度的散列值,在输入数据的长度上也没有限制。
海绵结构
输入的数据在进行填充之后,要经过吸收阶段和挤出阶段,最终生成输出的散列值。
双工结构
在海绵结构中,只有将输入的消息全部吸收完毕之后才能开始输出,但在双工结构中,输入和输出是以相同的速率进行的。在双向通信中,发送和接收同时进行的方式称为全双工。
Keccak的内部状态
Keccak的内部状态是一个三维的比特数组,图中的每个小方块代表1个比特,b个小方块按照5×5×z的方式组合起来,就成为一个沿z轴延伸的立方体。
函数Keccak-f(b)
这个函数负责对内部状态进行搅拌。函数带有的参数b,即内部状态的比特长度。这里的参数b称为宽度。
在Keccak中,通过改变宽度b就可以改变内部状态的比特长度,但无论如何改变,sl