gpt4 book ai didi

c - RSA_eay_private_decrypt什么时候调用rsa_mod_exp函数?

转载 作者:行者123 更新时间:2023-11-30 21:37:28 26 4
gpt4 key购买 nike

我总结了openssl的rsa-加密中的函数调用。我们可以发现

if (p!=NULL && q != NULL && dmp1 !=NULL && dmq1 != NULL && iqmp !=NULL), 

RSA_eay_private_decrypt() 和 RSA_eay_private_encrypt() 将调用 rsa_mod_exp(这是中国提醒理论(CRT)版本吗?)。

enter image description here

我的问题是:

  1. 在公共(public)加密或公共(public)解密中,“e 太小”是只调用 bn_mod_exp 函数的原因吗?
  2. 据我所知,在 private_decrypt 或 private_encrypt 中,d 与模 n 一样大。 rsa_mod_exp() 何时被调用?当 bn_mod_exp() 被调用时?

最佳答案

分支的状况在引用的来源中很明显。它正在寻找 RSA_FLAG_EXT_PKEY,并寻找所有“组件”都存在。您不一定拥有所有组件 - 您可能只需要使用私钥的模数和指数。

搜索“bn_mod_exp vs rsa_mod_exp”发现了这个:

If RSA_FLAG_EXT_PKEY is set, all private key operations go through the rsa_mod_exp handler. If not, private key operations go through rsa_mod_exp only if all the private key components exist (for CRT) otherwise they fall back to bn_mod_exp.

--cf. here for the entire post

更新:

关于 RSA_FLAG_EXT_PKEY,来自 rsa.h:

/* This flag means the private key operations will be handled by rsa_mod_exp
* and that they do not depend on the private key components being present:
* for example a key stored in external hardware. Without this flag bn_mod_exp
* gets called when private key components are absent.
*/
#define RSA_FLAG_EXT_PKEY 0x20

关于c - RSA_eay_private_decrypt什么时候调用rsa_mod_exp函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31984750/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com