RL78 TRNG(乱数生成)サンプルプログラム(for CA78K0R)

RL78の12bitタイマーとTAU(00)を使ってNIST FIPS 140-2準拠の真性乱数を生成するサンプルプログラムです。

任意のビット長の乱数を生成することができます。乱数の生成には1bitあたり約1msecかかります。(256ビットなら256msec)
内蔵低速発振器と内蔵高速発振器の位相差(熱雑音)を利用しているので、乱数としての品質は非常に高いです。
(RL78/G14,G13など大半のRL78に対応しています。G12やF13,F14などは少し修正が必要かもしれません)。

サンプルプログラムでは20,000bitの乱数列を生成し、FIPSに適合しているかを検証する関数でOK/NGを判定しています。

参考:
https://japan.renesasrulz.com/cafe_rene/f/forum18/4497/rl78-trng

Anonymous