c/c++语言开发共享如何为PRNG播种BN_generate_prime

我无法在openssl / bn.h中找到关于用BN_generate_prime生成素数的答案。 另外,我如何播种此函数使用的PRNG?

单独的问题,但与我的代码相关(我正在编写一个程序来生成RSA密钥对):我如何检查是否在BIGNUM中设置了高阶位? 假设我生成512位素数。 我会使用BN_is_bit_set(素数,512)吗?

谢谢

    BN_generate_prime是一个不推荐使用的函数, 在这里说。 此外,它在crypto / bn_depr.c中定义。 你不应该用它来生成素数。 相反,您应该使用BN_generate_prime_ex。 以下是BN_generate_prime_ex的示例用法:

    BIGNUM *r; static const char rnd_seed[] = "string to make the random number generator think it has entropy"; r = BN_new(); RAND_seed(rnd_seed, sizeof rnd_seed); /* or BN_generate_prime_ex may fail */ BN_generate_prime_ex(r, 512, 0, NULL, NULL, NULL); BN_free(r); 

    那么你将拥有一个512位的伪随机素数。 如上例所示,您可以通过RAND_seed为PRNG播种。

    对于第二个问题,请尝试BN_num_bits 。

      以上就是c/c++开发分享如何为PRNG播种BN_generate_prime相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注(计算机技术网)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请点击右边联系管理员删除。

      如若转载,请注明出处:https://www.ctvol.com/c-cdevelopment/523317.html

      (0)
      上一篇 2020年12月11日
      下一篇 2020年12月11日

      精彩推荐