密码学:使用模数和密钥生成RSA私钥。指数

时间:2011-04-19 08:32:56

标签: cryptography rsa private-key

我是加密世界的新手。我需要从下面提供的数据生成相应的RSA私钥。

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,但密钥不正确。

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") ;

    }
/**/

1 个答案:

答案 0 :(得分:3)

模数和私有指数私钥,至少是以简化的方式。

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

因此,考虑到上述信息,可能的问题是关于恢复模数的素因子。通用方法在Handbook of Applied Cryptography,第8章第8.2.2节,第(i)段(“与保理的关系”),第287页中给出。