pss

blog

https://access.redhat.com/blogs/766093/posts/1976703

 

 

RSA签名和加密方案:RSA-PSS和RSA-OAEP

在[ PKCS1 ]中指定了两种RSA签名方案:RSASSA-PKCS1-v1_5和RSASSA-PSS。 RSASSA-PSS是带有附录的概率签名方案(PSS)。带附录的签名方案要求消息本身验证签名(即,消息无法从签名中恢复)。

还有两种RSA加密方案:RSAES-PKCS-v1_5和RSAES-OAEP。两者都使用随机种子(因此每次都会产生不同的密文值),但是RSA-OAEP更可靠,是推荐的替代方法。

PKCS-V1_5方案是“自包含”的:签名值和密文值包含验证或解密所需的所有信息。相反,RSA-PSS和RSA-OAEP方案都需要参数,这些参数需要单独提供。两者都需要指定哈希函数,并且都使用掩码生成函数(MGF)。当前仅指定了一个MGF,称为MGF1依次使用哈希函数(“ MGF哈希函数”),该哈希函数可能与方案哈希函数不同。下面有更多详细信息

顺便提及,术语“功能”和“算法”在这里可互换使用。早期的PKCS#1规范中使用了“算法”一词(并反映在ASN.1类型名称中),而最新的中使用了“函数”。

签名方案RSASSA-PKCS-v1_5和RSASSA-PSS之间的差异

签名方案RSASSA-PKCS-v1_5(“ PKCSV1_5”)和RSASSA-PSS(“ PSS”)有区别。

  • PKCSV1_5是确定性的。相同的消息和密钥每次都会产生相同的签名值。PSS是随机的,并且每次都会产生不同的签名值(除非您使用零长度的盐)。
  • PKCSV1_5签名本身就是完整的。使用私钥解密后,您可以检测用于创建它的哈希函数并提取消息摘要值。PSS签名具有单独的参数(请参阅下文),在验证签名之前需要知道这些参数。它们包含在X.509证书和CMS签名数据对象中,但需要单独通信以获取独立的签名值。
  • 您可以从PKCSV1_5签名中提取消息摘要值。您不能从PSS签名中提取它;您只能根据已知的摘要值进行验证。
  • PSS具有安全性证明,并且在理论上比PKCSV1_5更强大。但是,PKCSV1_5目前没有已知的安全漏洞。
  • PSS直到最近才有专利问题(最后一个专利已于2010年到期),并且被广泛采用。自1990年代以来,PKCSV1_5已被广泛使用。

RSASSA-PSS参数

  • 哈希算法/函数。默认值为SHA-1 [推荐的最小最小值SHA-256 ]。
  • 遮罩生成功能(MGF)。当前始终为MGF1。
  • 盐的长度。默认值为20,但约定使用hLen,哈希函数输出的长度(以字节为单位)。允许的盐长度为零,这将导致确定性的签名值。实际使用的盐长可以根据特征值确定。
  • 尾部字段,用于编码操作。默认的尾部字段是字节0xbc。没有选择更改此值的选项。

RSASSA-PSS的默认参数是:

hashAlgorithm       sha1,
maskGenAlgorithm    mgf1SHA1 (the function MGF1 with SHA-1)
saltLength          20,
trailerField        trailerFieldBC (the byte 0xbc)

建议MGF哈希函数与方案哈希算法/函数相同,并且盐值长度应hLen为哈希函数输出的长度。

RSAES-PKCS-v1_5与RSAES-OAEP加密方案之间的差异

  • RSAES-OAEP具有安全性证明,是新实施中的推荐方案。较旧的RSAES-PKCS-v1_5方案具有一些已知漏洞(很容易避免),并且仍在广泛使用。
  • 两者都使用随机种子,因此每次为给定的明文和密钥生成不同的密文。
  • PKCSV1_5密文本身就是完整的。使用私钥解密后,您可以直接提取纯文本。
  • RSA-OAEP密文需要单独的参数来解密它以及密钥。它们包含在CMS封装数据对象中,但需要为单独的密文值单独提供。

RSAES-OAEP参数

  • 哈希算法/函数。默认值为SHA-1 [推荐的最小最小值SHA-256 ]。
  • 遮罩生成功能(MGF)。当前始终为MGF1。
  • pSourceAlgorithm。OEAP编码操作中使用的标签L的来源或值。默认值为空字符串""没有选择更改此值的选项。

RSASSA-OAEP的默认参数是:

hashAlgorithm       sha1,
maskGenAlgorithm    mgf1SHA1 (the function MGF1 with SHA-1)
pSourceAlgorithm    pSpecifiedEmpty (label L is an empty string)

建议MGF哈希函数与方案哈希算法/函数相同。

posted @ 2020-11-19 20:20  zJanly  阅读(1482)  评论(0编辑  收藏  举报