尽管与AES-GCM和其他AEAD algos一起工作了几年,但我一直在与术语“AEAD”中的“身份验证”概念进行斗争。根据我自己的经验( Unix、PKI和区块链),身份验证意味着能够将操作归因于特定实体(例如,用户帐户)。在最简单的情况下,比如在Linux机器上进行身份验证,登录将使用pam_unix可插入身份验证模块来检查用户提供的密码,当散列时,与存储在Linux系统上的散列匹配。您还可以通过指纹或面部匹配等方式验证用户帐户。在每种情况下,身份验证都意味着能够将该登录或解锁操作返回到单个实体(例如用户帐户)。
即使是authenticationcrypto.stackexchange.com上的标签也是这样读的:
身份验证成功地验证了您正在与之通信的实体实际上是他们声称的那个实体。这个实体通常通过展示他们拥有一个只有他们才能知道的秘密来展示他们是谁。
而authenticated-encryption标签读取是这样写的:
加密和身份验证的结合,以确保机密性和完整性。
根据authenticated-encryption标记中提供的定义,authentication定义中没有身份验证。
想知道“认证”在AEAD中的确切位置已经困扰了我很多年了,我最近花了很多时间进行调查。这段来自F5的视频“什么是AEAD密码?”在2:30分钟左右有一些有用的部分:
认证的加密,'AE‘的A部分,带来了另一个部分,在消息本身的完整性中,A部分,认证加密,带来了完整性--发送这条消息的人--我需要确保消息没有被更改或篡改
。
一些后续问题如下:
发布于 2022-10-28 22:54:46
问题中所述的身份验证概念似乎更符合有时被称为实体身份验证的概念。简而言之,“您知道您正在与谁交谈。”Bellare & Rogaway在密钥交换协议的上下文中讨论了这一点。相比之下,AEAD方案提供消息身份验证。正如在其他答案中所讨论的,消息身份验证意味着消息源的消息完整性和“身份验证”。
然而,AEAD的源认证并不一定,而且通常与实体身份验证不一样。确实可以看出,持有钥匙的人在某一时刻发出了这条信息。但它并没有说:
问题是,事实上,我们必须仔细考虑什么被理解为身份验证。顺便说一句,实体认证也不一定保证AEAD的“认证”。因此,需要仔细的建造。
发布于 2022-10-28 16:20:06
就我个人而言,在讨论密码学时,我不认为“完整性”这个词很有用。密码学(几乎总是)根据谁持有秘密密钥来强制/限制行为。秘密密钥的知识是身份形式化的密码方式。我发现,就真实性而言,谈论起来通常更容易一些,因为真实性总是指身份。
经过身份验证的加密和MAC具有以下属性:“只有持有密钥的人才能生成有效的对象。”这是对身份验证和完整性的保证:
发布于 2022-10-28 18:02:34
这是对数据的身份验证,而不是对数据进行加密的人员或内容。它超越了完整性,因为解密数据的方可以确定他是否使用了与加密方加密数据相同的密钥。
https://crypto.stackexchange.com/questions/102472
复制相似问题