我的任務是爲嵌入式系統製作隨機數生成器。截至目前,熵源使用的是鍵盤輸入,以及其他變量,如信號強度和電池強度。以正確的方式向隨機數生成器添加熵源
我一直在使用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