首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在生成TLS1.3 CertificateVerify消息时应该使用什么盐?

在生成TLS1.3 CertificateVerify消息时应该使用什么盐?
EN

Cryptography用户
提问于 2021-05-11 17:46:41
回答 1查看 172关注 0票数 1

在签署握手消息摘要时,MGF1函数接受一些与摘要长度相同的盐值。但是盐的缓冲液中必须含有什么内容呢?

我研究了libnettle的源代码,特别是rsa_pss_sha256_verify_digest方法,发现里面使用的salt是32个类似的字节- 0x22。使用这个值,我能够自己生成一个有效的签名。但我在任何文件中都没有发现有关盐的信息。它是如何为TLS1.3 CertificateVerify消息实际生成的?此值是固定的还是取决于证书或密钥.?

EN

回答 1

Cryptography用户

回答已采纳

发布于 2021-05-11 18:15:30

盐应该是随机产生的。PSS编码就是这样定义的: salt长度是输入,编码过程生成指定长度的随机盐。PSS验证过程将从签名中读取的salt作为输入来处理,该输入可以是预期长度的任意字符串。

TLS 1.3规范声明盐分长度必须等于哈希长度。(这是用于哈希输入的相同算法,对于MGF建议使用相同的哈希,TLS 1.3要求这样做。)PSS本身允许更长、更短的盐类,但使用哈希长度是非常普遍的,即使在TLS 1.3以外的不强制盐分长度的情况下也是如此。PSS的安全性证明是基于这一共同选择,但据我所知,使用更短、甚至是空盐或非随机盐没有已知的弱点。

为PSS选择一个非随机(或太短)的盐可以显示消息,因为它使消息可以从签名中猜测。这与TLS握手无关,因为消息本身包含随机输入(ClientHello.randomServerHello.random)。

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

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

复制
相关文章

相似问题

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