没有私有指数的RSA解密

时间:2013-09-02 11:21:36

标签: encryption cryptography openssl rsa private-key

我想解密使用RSA-公钥加密加密的1024位数据。 我有权访问

public key modulus, 
public key exponent, 
prime p, 
prime q, 
exponent1 (d mod(p-1)), 
exponent2 (d mod(q-1)) and 
coefficient ( (1/q) mod p )

我无法访问私钥指数。有没有办法解密没有RSA私有指数的数据和所有这些可用的apis? 我使用openssl进行RSA操作。 我听说有中文提醒,我们只需要p,q,指数1,指数2和RSA解密系数。但我正在寻找openssl中的apis。 openssl中有没有任何有用的方法可以在没有私有指数的情况下进行解密?

1 个答案:

答案 0 :(得分:4)

只需检查openssl源以生成密钥对...

/* create r0, r1, r2, ctx and - of course - d */

/* calculate d */
if (!BN_sub(r1, p, BN_value_one())) goto err; /* p-1 */
if (!BN_sub(r2, q, BN_value_one())) goto err; /* q-1 */
if (!BN_mul(r0, r1, r2, ctx)) goto err;       /* (p-1)(q-1) */
if (!BN_mod_inverse(d, e, r0, ctx)) goto err; /* d */
return d;

您可能需要在上面生成一些临时变量...