首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么OpenSSL在私钥生成时区分PSS和非PSS?

为什么OpenSSL在私钥生成时区分PSS和非PSS?
EN

Cryptography用户
提问于 2019-05-09 01:50:15
回答 3查看 5.2K关注 0票数 9

RSA-PSS私钥

以下命令将生成一个RSA-PSS私钥:

代码语言:javascript
复制
openssl genpkey -algorithm rsa-pss -pkeyopt rsa_keygen_bits:2048 -pkeyopt rsa_keygen_pubexp:65537 -out CA.priKey

下面是我刚生成的一个示例:

https://pastebin.com/AQk0gkkT

下面是asn1parse输出:

代码语言:javascript
复制
    0:d=0  hl=4 l=1213 cons: SEQUENCE
    4:d=1  hl=2 l=   1 prim:  INTEGER           :00
    7:d=1  hl=2 l=  11 cons:  SEQUENCE
    9:d=2  hl=2 l=   9 prim:   OBJECT            :rsassaPss
   20:d=1  hl=4 l=1193 prim:  OCTET STRING

正则RSA私钥

相反,此命令将生成一个常规RSA私钥:

下面是我刚生成的一个示例:

https://pastebin.com/s6gES7hr

下面是asn1parse输出:

代码语言:javascript
复制
    0:d=0  hl=4 l=1213 cons: SEQUENCE
    4:d=1  hl=2 l=   1 prim:  INTEGER           :00
    7:d=1  hl=2 l=  13 cons:  SEQUENCE
    9:d=2  hl=2 l=   9 prim:   OBJECT            :rsaEncryption
   20:d=2  hl=2 l=   0 prim:   NULL
   22:d=1  hl=4 l=1191 prim:  OCTET STRING

我的问题

为什么RSA-PSS私钥有自己的格式?概率签名方案 (PSS)影响签名的方式。至少根据PKCS#1 v2.2的说法。钥匙是一样的。它们都使用相同的阴极射线管参数以及其他不使用的东西。那么,为什么在这个上下文中有两个不同的OID呢?这有什么区别吗?还是这只是OpenSSL的愚蠢?还有其他OpenSSL可能用来表示RSA私钥的OID吗?

EN

回答 3

Cryptography用户

回答已采纳

发布于 2019-05-09 03:34:38

如果您为不同的算法重用相同的关键材料,则不依赖于任何一种算法的安全性,而是同时依赖于这两种算法组合的安全性。

对于一个特别令人震惊的例子,如果您对RSASSA-PKCS1-v1_5和HMAC- the 256使用相同的RSA公钥,结果可能是娱乐性

虽然我们对RSASSA的安全性有很高的信心,但假设RSA问题很难解决,并且对RSASSA-PKCS1-v1_5的安全性有合理的信心,因为几十年来没有人在这方面取得进展,但两者结合使用同样的关键材料可能会带来灾难性的后果。

这些标记背后的理论是,将这些元数据与密钥相关联可能有助于减少在不同的密码系统中意外地重用相同的密钥材料的危险。

票数 12
EN

Cryptography用户

发布于 2019-05-09 03:28:10

OpenSSL不是哑的,键有不同的OID是有原因的,但它与键数据无关--它是关键元数据。元数据描述密钥。具体来说,上面的ASN.1类型是PrivateKeyInfo,区别是在AlgorithmIdentifier中。从组织的角度来看,您必须跟踪指定用于不同用途的两个RSA私钥,这些ASN.1差异增加了价值。

例如,当您为您的签名证书创建一个CSR时(这是它唯一的整数用法--这可以由X.509 V3扩展密钥使用扩展密钥使用进一步强制执行),您将知道如何在rsassaPss的OID中使用该密钥。

票数 7
EN

Cryptography用户

发布于 2019-05-09 03:10:12

对于私钥,使用密钥进行编码可能重要,也可能不重要,但对于公钥,特别是在CSR或cert中,算法标识符是可见的,可能很重要。OpenSSL生成一个包含从私钥(包括AlgId )中自动提取的公钥的CSR,该公钥通常被复制到公钥中的AlgId可能很重要的证书中。

例如,TLS 1.3使用不同的签名算法(又名方案)码用于RSASSA签名取决于它们使用的证书是AlgId 1.2.840.113549.1.1还是id-RSASSA-PSS1.2.840.113549.1.10。

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

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

复制
相关文章

相似问题

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