首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >完成消息:是MAC还是HMAC?

完成消息:是MAC还是HMAC?
EN

Cryptography用户
提问于 2017-08-11 08:37:00
回答 2查看 1.7K关注 0票数 2

在一些学术文献中,成品MACs一词经常被使用。我想知道,这真的是MAC还是HMAC?我正在看TLS 1.2和TLS 1.2规范中的文献。TLS1.2完成消息的规范这里说:此消息的结构:

结构{ verify_data验证_数据_长度;}已完成;verify_data PRF(master_secret,finished_label,Hash(handshake_messages)) 0.验证_数据_长度-1;finished_label用于完成客户端发送的消息,字符串“客户端已完成”。对于服务器发送的已完成的消息,字符串“服务器完成”。

据我所知,如果使用PFR,那么它就是HMAC,而不是MAC。请你向我澄清:

1)在TLS中,它是已完成的MACs还是HMACs的成品?当一些文献使用已完成的MACs时,它是否正确(即它是否可以接受缩写)?

( 2)用MAC代替HMAc是否正确?

EN

回答 2

Cryptography用户

回答已采纳

发布于 2017-08-11 10:30:14

用MAC代替HMAC是正确的吗?

一般情况下,不。

MAC是一个比HMAC更普遍的概念,因此这种等价的说法显然是不可接受的。但是,如果您讨论的是验证其有效负载的特定协议,则说“MAC”指定消息的MAC算法或标记,即使它们使用HMAC,也是完全可以接受的,因为这里使用的是更一般的概念和具体的实例化。

现在,要回答标题中的问题(这也会捕获问题1):

TLS完成的消息:是MAC还是HMAC?

答案是两者都是。

是的,这里总是使用HMAC来计算(正确的) PRF值,只有在看到相同的文本并生成相同的master_secret时才有可能。因此,身份验证是内置的。

然而,在此消息之前,ChangeCipherSpec消息是为记录层协议发送的,允许使用协商的密码套件。因此,Finished消息实际上是使用加密和身份验证的记录层协议发送的,该协议确实使用密码套件中指定的MAC (例如GMAC或Poly1305)。

该委员会的有关引述如下:

ChangeCipherSpec消息是在安全参数商定之后,但在发送验证完成消息之前,在握手期间发送的。

票数 4
EN

Cryptography用户

发布于 2017-08-11 10:32:25

据我所知,如果使用PRF,那么它就是HMAC,而不是MAC。

首先,HMAC是一种MAC。

MAC是一个具有某些安全属性的密码原语(大约,如果您不知道密钥,那么很难预测任何给定输入的输出)。

HMAC是一个特定的设计,它产生一个MAC;它在内部使用一个哈希函数。

现在,我所知道的每个TLS加密套件(我刚刚检查了IANA密码套件注册中心)都使用HMAC作为PRF;然而,这可能不能保证是正确的。例如,如果有人使用KMAC (基于SHA-3的MAC)设计密匙套件,那就不足为奇了。

为了回答你的问题:

1)在TLS中,它是已完成的MACs还是HMACs的成品?

是的,很明显。

2)用MAC代替HMAC是正确的吗?

这就像说“狗”而不是‘狮子狗’是对的吗?“

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

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

复制
相关文章

相似问题

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