我的任务是为嵌入式系统制作随机数生成器。截至目前,熵源使用的是键盘输入,以及其他变量,如信号强度和电池强度。以正确的方式向随机数生成器添加熵源
我一直在使用PolarSSL,它有一个惊人的嵌入式系统的便携式SSL库。但是,除了文档,互联网上关于它的信息很少!
我想我不是以正确的方式将熵源添加到我的熵累加器中。这对CTR-DRBG module造成了问题,它在Init上返回一个错误。 (Source Error -52) 由于RNG适用于嵌入式系统,因此系统中没有初始熵,因此出现了错误。(LINK)当我在其他标准操作系统(如Windows)上尝试使用相同的RNG时,不会出现任何错误。代码有关它
// Global Variables.
ctr_drbg_context ctx;
entropy_context etx;
// Inside Main
entropy_init(&etx);
// Add entropy sources
// Initializing CTR_DRBG
printf("Before ctrdrbg: %d", err);
err = ctr_drbg_init(&ctx, entropy_func, &etx, (const unsigned char *) "RANDOM_GEN", 10);
if(err != 0)
{
printf("Failed in ctr_drbg init!: %d", err);
}
输出:? Error on Ctr_drbg init: -52
我也凝视着这一个星期左右,现在没有进展几乎放弃!没有人在那里愿意帮助
我敢肯定这是一个愚蠢的问题,但你有没有检查过CPU没有硬件RNG内置它?许多ARM9都可以,有些可能不会。你能告诉我们关于处理器的更多信息吗?我看不到一个明显的数据表。 – Tom
@Tom不,它根本不傻!我希望它内置了一个硬件RNG。但是,我从供应商处获得的所有文档都与Randomness无关。我可以直接与他们联系,但这不太可能! – Timmay