私は、組み込みシステム用の乱数ジェネレーターを作成する任務を負っています。現在、使用しているエントロピー ソースは、キーパッド入力と、信号強度やバッテリー強度などのその他の変数です。
私は組み込みシステム用の素晴らしいポータブル SSL ライブラリを備えたPolarSSLを使用しています。ただし、ドキュメントを除いて、インターネット上にはほとんどありません。
エントロピー アキュムレータにエントロピー ソースを正しい方法で追加していないと思います。これは、Init でエラーを返すCTR-DRBG モジュールで問題を引き起こしています。(ソース エラー -52) RNG は組み込みシステム用であるため、システムからの初期エントロピーがないため、エラーが発生します。(リンク) Windows などの他の標準 OS で同じ 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
私はこれを約1週間調べましたが、前進はありません。ほぼ諦めます!! 喜んで助けてくれる人はいますか?