首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >$\mathrm{Keccak}(k\mathbin\x)$和$\mathrm{Keccak}(x\mathbin\k)$之间的安全差异

$\mathrm{Keccak}(k\mathbin\x)$和$\mathrm{Keccak}(x\mathbin\k)$之间的安全差异
EN

Cryptography用户
提问于 2018-07-29 06:29:01
回答 2查看 346关注 0票数 7

\DeclareMathOperator{\keccak}{\mathrm{Keccak}} \DeclareMathOperator{ \concat }{x} $According to 凯克卡克网站,$\keccak(k \concat x)$是安全的:

与SHA-1和SHA-2不同,Keccak没有长度扩展的弱点,因此不需要HMAC嵌套结构。相反,可以通过简单地在消息前加上密钥来执行MAC计算。

我的问题是,$\keccak(x \concat k)$安全吗?

我读过$不是一个安全的MAC结构为什么$H(k\mathbin\Vert x)?,但我想它不适用于凯克卡克。$\endgroup$

EN

回答 2

Cryptography用户

回答已采纳

发布于 2018-07-31 04:14:40

见论文“密码海绵函数”第5.11.2章(链接可找到这里):

请注意,还可以定义一个MAC函数,方法是将以下消息作为输入:$t =\左\ that {F(M \mathbin\Vert K)} \right\that _n$。在这种情况下,对手的优势是可以尝试脱机生成内部碰撞,即无需查询键控海绵函数。此外,她还可以尝试构造一个路径,到在吸收目标消息时发生的状态,从而导致具有相同MAC的第二条消息。

票数 10
EN

Cryptography用户

发布于 2018-07-31 02:42:25

Keccak非常可能是安全的,但对于多条消息,它的效率低于Keccak(k\x)。

与Keccak一起使用的标准MAC结构是FIPS 800-185中定义的KMAC。在KMAC中,首先要吸收海绵速率长度上的键垫。然后,您可以复制生成的Keccak状态,并对使用相同MAC密钥的所有消息重复使用它。

使用KMAC,您不需要对每条消息重复吸收相同的密钥。这可以为许多小消息(如VPN数据包)的MAC带来显著的性能好处。

简而言之:使用KMAC。

票数 5
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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