Openssl:RSA参数代表什么?

时间:2012-05-09 08:16:31

标签: c linux openssl rsa

在openssl的RSA结构中,n, e, d, p, q表示的参数是什么?

struct rsa_st
    {
    /* The first parameter is used to pickup errors where
     * this is passed instead of aEVP_PKEY, it is set to 0 */
    int pad;
    long version;
    const RSA_METHOD *meth;
    /* functional reference if 'meth' is ENGINE-provided */
    ENGINE *engine;
    BIGNUM *n;
    BIGNUM *e;
    BIGNUM *d;
    BIGNUM *p;
    BIGNUM *q;
    BIGNUM *dmp1;
    BIGNUM *dmq1;
    BIGNUM *iqmp;
    /* be careful using this if the RSA structure is shared */
    CRYPTO_EX_DATA ex_data;
    int references;
    int flags;

    /* Used to cache montgomery values */
    BN_MONT_CTX *_method_mod_n;
    BN_MONT_CTX *_method_mod_p;
    BN_MONT_CTX *_method_mod_q;

    /* all BIGNUM values are actually in the following data, if it is not
     * NULL */
    char *bignum_data;
    BN_BLINDING *blinding;
    BN_BLINDING *mt_blinding;
    };

3 个答案:

答案 0 :(得分:6)

这些是RSA算法的参数:

p和q是两个大素数,n由p * q计算。 e是公共指数,d是e mod(p-1)(q-1)的乘法逆。

私钥是对(p,q)。公钥是对(n,e)

您可以详细了解here

答案 1 :(得分:3)

从openssl官方网页上可以看到,他们的数字在计算密文时具有特定的作用,OpenSSL official documentation

我建议你看看它, 再见!

编辑2018-07-27:更新网址 Linuxatico

答案 2 :(得分:0)

在Linux中,man 3 rsa将为您提供详细说明。