我在c中实现了deffie hellman,并希望使用256位随机数作为私钥。我不确定,如果它可能与gmp库。那么任何其他强大的库可以产生我的要求吗?
答案 0 :(得分:0)
读取gmp库manual的随机数函数,我们可以看到根据我们要求的位大小产生输出的规定。
根据我们的req比特数在mpz_urandomb(rand_Num,r_state,14)中修改'14'给出了那么多比特的兰特数(14-> 256)。但即使在for循环中,它们也会产生相同的随机数。
因此,将循环中的'i'限制(条件)修改为rand()函数,这取决于srand()函数,srand()函数又将当前系统时间作为种子值,最终在rand中生成不同的随机数( )。因此每次都会产生不同的迭代,因此最后一次迭代中的最后一个数字(具有良好的随机性)最终位于rand_Num变量中。
#include<time.h>
//代码的其余部分,如手册//
srand(time(0));
for (i=0;i<rand();i++)
{mpz_urandomb(rand_Num,r_state,256);} // for 256 bits random number
enter code here