ZHDU116G January 2018 – June 2024 CC1312PSIP , CC1312R , CC1352P , CC1352R , CC2642R , CC2642R-Q1 , CC2652P , CC2652PSIP , CC2652R , CC2652RB , CC2652RSIP , CC2662R-Q1
熵定义为以下因素的结果:
启用的 FRO 越多,运行时间越长(即已存储在 LSFR 中的样本越多),熵就越高。
TRNG 模块在创建随机值时必须以最大频率运行。
随机值的创建时间由 TRNG:CTL.STARTUP_CYCLES 寄存器、TRNG:CFG0.MIN_REFILL_CYCLES 或 TRNG:CFG0.MAX_REFILL_CYCLES 寄存器以及 TRNG:CFG0.SMPL_DIV 寄存器中设置的值共同决定;所有这些寄存器的修改只能在 TRNG:CTL.TRNG_EN 寄存器为 0 时进行。
TRNG:CFG0.SMPL_DIV 寄存器定义了从 FRO 收集样本的频率,默认值 0 表示每个时钟周期采样一次,最大值 0xF 表示每 16 个周期采样一次。SAMPLE_DIV 的所有值都可在此器件上使用,并且必须设置得尽可能小。
为了在每个创建的种子中具有相同数量的熵,启动时间和最小重新填充时间必须相同。使用最小的启动时间和最小的重新填充时间时,每比特的熵非常低。当所有 FRO 都启用时,5 ms 的启动时间可以生成一个具有 64 位熵的字。
TRNG:CTL.STARTUP_CYCLES 寄存器和 TRNG:CFG0.MIN_REFILL_CYCLES 或 TRNG:CFG0.MAX_REFILL_CYCLES 寄存器中的低值只能用于为非安全用途(如同步字、CRC 初始化等)生成随机值。对于更安全的用途,必须定义最低 64 位熵及更高的熵要求。