我想解密使用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中有没有任何有用的方法可以在没有私有指数的情况下进行解密?
答案 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;
您可能需要在上面生成一些临时变量...