根据我的理解,通用哈希函数不是加密散列函数,它的输出不是均匀分布的。然而,这仍然是安全的,因为它实际上是一个函数家族&函数的一个或多个随机输入决定了哪个函数实际上是从函数家族中选择的&这就是使它安全的原因。
然而,这些都是GHASH的参数。
GHASH(H, A, C)在哪里
K是加密密钥&它是固定的,所以不是每次都选择一个新的密钥,这意味着H也是固定的。
A是附加的身份验证数据。
C是密文
那么,这到底是一个普遍的散列函数--家庭是什么?我们是如何从家庭中随机选择的?
发布于 2021-02-12 14:14:27
事实上,H=E_k(0)是用来从家庭中选择的。这不是问题,下面是一些关于原因的直觉。
哈希函数的输出不会泄露得很清楚,它是通过使用E_k(iv,ctr=0)来“隐藏”的,每个加密消息都不同(与H=E_k(0)不同)。否则,恢复H确实是微不足道的,因为超高频是线性的。
直观地说,所使用的性质是,即使多次尝试,UHF也很难在不知道键的情况下盲目地预测任意两个输入的差异,但不显示每次尝试的UHF值。
请注意,“差异”在这里很重要,因为在伪造尝试中,您可以重用现在的值,所以猜测正确的差异就足够了。例如,给定(iv,m,t),~~ t=E_k(iv,ctr=0)\oplus GHASH(m))和猜测\Delta = GHASH(m)\oplus GHASH(m')将允许伪造的差异
https://crypto.stackexchange.com/questions/88197
复制相似问题