至少 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
我正在用 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