首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用RSA签署GCM认证标签有什么意义吗?

用RSA签署GCM认证标签有什么意义吗?
EN

Cryptography用户
提问于 2020-11-23 15:55:25
回答 2查看 552关注 0票数 3

为了实现双重认证,我们能用RSA签署GCM最终标签吗?使用RSA,没有人能够创建自己的标记,因为私钥是未知的。

然而,根据FIPS.186-4,RSA的输入必须符合NIST批准的散列函数。

这个GCM + RSA组合有可能吗?

EN

回答 2

Cryptography用户

发布于 2020-11-23 16:47:35

不多;使用RSA对GCM标记进行签名是不够的。

首先,知道AES秘密密钥后,就很容易生成包含任何所需内容的消息(末尾除外),以及检查并具有任何所需标记的AES-GCM密码。因此,AES密钥的任何持有者都可以在截获由另一个人签名的密文之后,伪造通过RSA公钥验证的消息。

另外,一个持有AES密钥的人可以准备两条非常不同的消息,他们的AES-GCM加密共享相同的标签,允许通过显示一条消息的签名也适用于另一条消息来传播FUD。

此外,如果RSA-签署标签,但不能使用教科书RSA,这是不安全的时候,直接签署的小值m,如128位标签(例如,当e是如此小到m^e<n\,,或在攻击下的任何e)。

一种适当的方法是签名然后加密:使用RSA (例如RSASSA或RSASSA-PKCS1-v1_5)对明文进行签名,并附加签名,然后使用AES-GCM。这样,只有RSA私钥的持有者(而不是AES-GCM密钥的任何持有者)才能在相应的公钥下发出通过验证的有效消息;在解密之前无法访问签名(该签名公开了已签名的信息)。

在这里,我不推荐加密然后签名,因为我不排除完整性可能容易被替换原来的AES秘密密钥。

票数 5
EN

Cryptography用户

发布于 2020-11-23 16:33:18

通常使用RSA密钥来签署密钥协议。密钥协议用于建立GCM中使用的密钥。一般来说,秘密密钥并不是使用某种带外程序分配的。之后,GCM身份验证标记应该为消息的完整性和真实性提供足够的安全性。

另一个问题是,如果使用签名,任何人都可以替换它。正因为如此,签名后加密经常被使用,而不是加密。

如果用例需要该构造,那么只为加密-然后签名的身份验证标记签名可能会很有趣。但是,在这种情况下,可以使用正常的签名生成过程。请注意,例如,RSA使用哈希将散列填充到键大小(在内部使用MGF1 ),并且模块指数计算量很大--比128位以上的单个哈希重(这将转化为对SHA-2内部的单个块进行散列)。

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

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

复制
相关文章

相似问题

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