【发布时间】:2012-09-22 17:42:55
【问题描述】:
我需要计算 C 中大 (BIGNUM) 素数的加法逆。所以,基本上,我需要乘以 -1。有没有一种我错过的简单方法可以做到这一点?我在文档中看不到任何功能。我想出的只是这个,我认为这很丑:
//bigprime = my big prime
inverse = BN_new();
one = BN_new();
negOne = BN_new();
BN_one(one); // one = 1
BN_zero(negOne); // set negOne to zero
BN_sub(negOne, negOne, one) // subtract one from zero
BN_mul(inverse, bigprime, negOne, ctx); //multiply big prime by -1
更重要的是,我对 bignum 库还不够熟悉,不知道从零中“减”一是否真的会达到我想要的效果。蒂亚!
【问题讨论】:
-
或许分享更多关于您正在使用的素数计算算法的信息。到目前为止,我看不出您提供的任何错误...
-
为什么不简单地减去
0 - bigprime(显然是BN_sub(inverse,zero,bigprime))?还是我错过了什么? -
D'oh,我认为你是对的 Daniel——应该这样做。我知道我遗漏了一些明显的东西!
-
Daniel 如果您可以将其发布为答案而不是评论,我会将其标记为答案。再次感谢!
标签: c cryptography openssl bignum