首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用OID rsassaPss创建RSA公钥/私钥

使用OID rsassaPss创建RSA公钥/私钥
EN

Cryptography用户
提问于 2022-09-23 23:34:37
回答 1查看 222关注 0票数 1

我想创建一个公共/私有RSA密钥对,其中两个密钥的OID都是rsassaPss。我可以很好地创建私钥,但是当我提取公钥时,我希望OID保持为rsassaPss,但它实际上被转换为rsaEncryption

这是为什么OpenSSL在私钥生成时区分PSS和非PSS?说的

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

在这种情况下,我假设有某种方法可以生成一个与私钥相同的OID限制的公钥。

这个RFC表示这是可能的,但我不确定什么openssl命令会生成这样的公钥。

当RSA私钥所有者希望将公钥专用于RSASSA时,则必须在主题公钥信息中的算法字段中使用id-RSASSA-PSS对象标识符,如果存在,则参数字段必须包含RSASSA params。id-RSASSA对象标识符值和语法在第3节中有详细描述。

下面是我如何使用OID rsassaPss创建我的私钥。

代码语言:javascript
复制
$ openssl genpkey -algorithm rsa-pss 2>/dev/null | openssl asn1parse | fold
    0:d=0  hl=4 l=1214 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=1194 prim: OCTET STRING      [HEX DUMP]:30820...

下面是我如何尝试用OID rsassaPss创建我的公钥,但实际上得到了rsaEncryption

代码语言:javascript
复制
$ openssl genpkey -algorithm rsa-pss 2>/dev/null | openssl rsa -pubout |  openssl asn1parse
writing RSA key
    0:d=0  hl=4 l= 290 cons: SEQUENCE          
    4:d=1  hl=2 l=  13 cons: SEQUENCE          
    6:d=2  hl=2 l=   9 prim: OBJECT            :rsaEncryption
   17:d=2  hl=2 l=   0 prim: NULL              
   19:d=1  hl=4 l= 271 prim: BIT STRING        

公钥不应该和私钥具有相同的OID吗?如果没有,我如何知道使用rsassaPss为私钥使用什么样的公钥算法?

谢谢!

EN

回答 1

Cryptography用户

发布于 2022-09-25 03:52:58

根据戴夫的评论,将rsa切换到pkey,OID将保留在公钥中。

代码语言:javascript
复制
$ openssl genpkey -algorithm rsa-pss 2>/dev/null | openssl pkey -pubout | openssl asn1parse
    0:d=0  hl=4 l= 288 cons: SEQUENCE          
    4:d=1  hl=2 l=  11 cons: SEQUENCE          
    6:d=2  hl=2 l=   9 prim: OBJECT            :rsassaPss
   17:d=1  hl=4 l= 271 prim: BIT STRING

此外,pkey似乎检查私钥,并采取适当的行动为rsarsa-psses私钥生成公钥。

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

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

复制
相关文章

相似问题

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