首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在GCM中使用的GHASH是如何作为一个通用哈希函数的?

在GCM中使用的GHASH是如何作为一个通用哈希函数的?
EN

Cryptography用户
提问于 2021-02-12 11:21:35
回答 1查看 358关注 0票数 5

根据我的理解,通用哈希函数不是加密散列函数,它的输出不是均匀分布的。然而,这仍然是安全的,因为它实际上是一个函数家族&函数的一个或多个随机输入决定了哪个函数实际上是从函数家族中选择的&这就是使它安全的原因。

然而,这些都是GHASH的参数。

GHASH(H, A, C)在哪里

H = E(K, 0^w)

K是加密密钥&它是固定的,所以不是每次都选择一个新的密钥,这意味着H也是固定的。

A是附加的身份验证数据。

C是密文

那么,这到底是一个普遍的散列函数--家庭是什么?我们是如何从家庭中随机选择的?

EN

回答 1

Cryptography用户

发布于 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')将允许伪造的差异

(iv,m',t'),~~ t'=t\oplus \Delta=E_k(iv,ctr=0)\oplus GHASH(m').
票数 1
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/88197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档