至少 256 位随机数的 C 库

C Library for atleast 256 bit Random number

我正在用 c 语言实现 deffie hellman,并希望使用 256 位随机数作为私钥。我不确定 gmp 库是否可行。那么还有其他可以满足我要求的强大库吗?

阅读随机数函数的 gmp 库 manual,我们可以看到根据我们请求的位大小生成输出的规定。

根据我们要求的位数修改 mpz_urandomb(rand_Num,r_state,14) 中的 '14' 给出那么多位数的随机数 (14->256 ).但即使在 for 循环中,它们也会产生相同的随机数集。

所以,将循环中的'i'limit(condition)修改为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