首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >密码学:使用Modulus & Exponent生成RSA私钥

密码学:使用Modulus & Exponent生成RSA私钥
EN

Stack Overflow用户
提问于 2011-04-19 08:32:56
回答 1查看 6.5K关注 0票数 7

我对密码世界很陌生。我需要从下面提供的数据中生成相应的RSA私钥。

代码语言:javascript
复制
Modulus B87BDAB530F8FDED78223D841C5D4E66A6CA86E1D690E829755F244B6FA64D0B8FFBB33AC46FE533568FD6A965EDE7AFFAED8B15476E7B70D637188B8E6B78FDAE17941E7A1304699405F94FD8E596A2BA1CA57D413E96F6E9A3F7585EEF156E8220E7C45DCB48C6CC667AC52E521444225DD6F5611CE8C14DF680C291CFDFE5

Modulus
(Base 64)   uHvatTD4/e14Ij2EHF1OZqbKhuHWkOgpdV8kS2+mTQuP+7M6xGlM1aP1qll7eev+u2LFUdue3DWNxiLjmt4a4XlB56EwRplAX5T9jllqK6HKV9QT6W9umj91he7xVugiDnxF3LSMbMZnrFLlIURCJd1vVhHOjBTfaAwpHP3+U=

Private Exponent    84920445868EB73309CC593671879F8A66BB4D18472F54964E50F36CFE2B9C5BFDB8DB4014DF6FEE677AEFC0458E239B338FB60DB18A344C8EB38300EE744EB98B2606AC4781C4C9317B0289F41D7E92C927639E699D0E903B5160D9AEBFD70C1D6EBA539774459B95107E60941B22EECD54F7D0C8DE47DA7719C33FD4DB9155

Private Exponent (Base 64)  hJIERYaOtzMJzFk2cYefima7TRhHL1SWTlDzbP4rnFv9uNtAFN9v7md678BFjiObM4+2DbGKNEyOs4MA7nROuYsmBqxHgcTJMXsCifQdfpLJJ2OeaZ0OkDtRYNmuv9cMHW66U5d0RZuVEH5glBsi7s1U99DI3kfadxnDP9TbkVU=

Public Exponent 010001

Public Exponent (Base 64)   AQAB

我使用以下方法生成RSAPrivateKey,但键不正确。

代码语言:javascript
复制
char *szModulus = "B87BDAB530F8FDED78223D841C5D4E66A6CA86E1D690E829755F244B6FA64D0B8FFBB33AC46FE533568FD6A965EDE7AFFAED8B15476E7B70D637188B8E6B78FDAE17941E7A1304699405F94FD8E596A2BA1CA57D413E96F6E9A3F7585EEF156E8220E7C45DCB48C6CC667AC52E521444225DD6F5611CE8C14DF680C291CFDFE5" ;
    char *szExp = "84920445868EB73309CC593671879F8A66BB4D18472F54964E50F36CFE2B9C5BFDB8DB4014DF6FEE677AEFC0458E239B338FB60DB18A344C8EB38300EE744EB98B2606AC4781C4C9317B0289F41D7E92C927639E699D0E903B5160D9AEBFD70C1D6EBA539774459B95107E60941B22EECD54F7D0C8DE47DA7719C33FD4DB9155" ;
    char *szPubExp = "010001" ;


    RSA* rsa = RSA_new();

    int ret = BN_hex2bn(&rsa->n,szModulus) ;
    ret = BN_hex2bn(&rsa->d,szExp) ;
    ret = BN_hex2bn(&rsa->e,szPubExp) ;

if (!PEM_write_RSAPrivateKey(fp, rsa, NULL, NULL, 0, 0, NULL))
    {
        printf("\n PEM_write_PrivateKey failed \n") ;

    }
/**/
EN

回答 1

Stack Overflow用户

发布于 2011-04-19 12:33:22

模数和私有指数是私钥,至少在简化的方式下是这样。

对于RSA,通常在私钥中包含一些其他参数,例如模数的两个(或更多)素数。这些额外的参数不能提供更多的幂(模数和私有指数足以计算签名和解密数据),但是允许更快的实现(3倍到4倍)。

因此,可能的问题是,在考虑到上述信息的情况下,恢复模数的素因子。通用方法见应用密码学手册第8章第8.2.2节第(i)段(“与保理理的关系”),第287页。

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

https://stackoverflow.com/questions/5713645

复制
相关文章

相似问题

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