[国产单片机]

真随机数发生器(TRNG)

[复制链接]
1796|10
手机看帖
扫描二维码
随时随地手机跟帖
一路向北lm|  楼主 | 2020-2-23 19:55 | 显示全部楼层 |阅读模式
真随机数发生器(TRNG)可生产 1 位串行真随机数或 8/16/32 位并行真随机数。
支持可编程的随机数位宽
支持可编程的种子值
支持随机性修正模式
支持随机序列错误检测



使用特权

评论回复

相关帖子

一路向北lm|  楼主 | 2020-2-23 19:55 | 显示全部楼层
TRNG 结构框图
165675e52684cef480.png

使用特权

评论回复
一路向北lm|  楼主 | 2020-2-23 19:56 | 显示全部楼层
初始化时间
TRNG 使 能 后 需 要 经 过 一 段 时 间 初 始 化 才 可 产 生 新 的 随 机 数 , 初 始 化 时 间 在
TRNG_START 寄存器配置。根据当前 HCLK 时钟频率,计算出 TRNG_START 的值,使
初始化时间不低于 1ms。
计算公式为:
338655e5268768de96.png

使用特权

评论回复
一路向北lm|  楼主 | 2020-2-23 19:56 | 显示全部楼层
错误管理
出现随机序列错误时, SERR 被硬件置 1,随机数产生被中断。若使能了序列错误中断,
则产生该中断。如果 TRNG_DR 寄存器中有新产生的随机数,不能使用该随机数。
应执行以下操作:置位 TRNG_IFCR 寄存器的 SERR 位,将 TRNG_EN 位清零并置 1,
以便重新初始化和重新启动 TRNG,

使用特权

评论回复
一路向北lm|  楼主 | 2020-2-23 19:57 | 显示全部楼层
随机数生成时间
随机数生成时间由以下位共同决定: TRNG_CR 寄存器中的 DSEL 位、ADJM 位、POSTEN
位和 ADJC 位。
随机数生成时间公式为:
TRNG ≈ 5×D×P×CM(单位 us)(误差范围+66.66%/-33.33%)

使用特权

评论回复
一路向北lm|  楼主 | 2020-2-23 19:57 | 显示全部楼层
随机数生成时间系数表
95015e5268b3b3213.png

使用特权

评论回复
一路向北lm|  楼主 | 2020-2-23 19:57 | 显示全部楼层
随机数种子
因为随机序列发生器来自模拟信号,电源和地上的干扰或环境温度的变化等都会导致随机
性变差、输出序列的相邻位的自相关系数升高。通过设置一种随机的种子值,可能使随机
序列的随机性能更加优化,降低自相关性。
种子的类型可选择为使用上一次产生的随机数或使用 TRNG_SEED 寄存器值。若使用
TRNG_SEED 寄存器值,则在每次读取新的随机数时同时更新 TRNG_SEED 寄存器。 种
子的类型也可选择固定为 0 或 1。

使用特权

评论回复
一路向北lm|  楼主 | 2020-2-23 19:58 | 显示全部楼层
操作流程
要运行 TRNG,请按以下步骤操作:
1. 如果需要,使能中断(TRNG_IE 相应位置 1)。准备好随机数时或出现错误时生成中
断。
2. 通过将 TRNG_CR 寄存器中的 TRNGEN 位置 1 使能随机数产生。这会激活随机数生
成器、移位寄存器和错误检测器。如果需要随机性更高的数据,可以将 POSTEN 位
置 1,使能后处理模式、 也可以将 ADJM 位置 1,使能修正模式,但相应的随机数生
成时间会变长。在使能修正模式时,配置 ADJC 可改变修正模式系数、 系数越大,随
机性越高,但随机数生成时间也越长。
3. 每次中断时,检查确认未出现错误(TRNG_SR 寄存器中的 SERR 位应为 0,
TRNG_IF 寄存器中的 SERR 也为 0),并且随机数已准备就绪(TRNG_SR 寄存器中
的 DAVLD 位为 1)。然后即可读取 TRNG_DR 寄存器中的内容。
按照 FIPS PUB(联邦信息处理标准出版物) 140-2 的要求,将 TRNGEN 位置 1 后产生的
第一个随机数不应使用,但应保存起来,与产生的下一个随机数进行比较。随后产生的每
个随机数都需要与产生的上一个随机数进行比较。如果任何一对进行比较的数字相等,则
测试失败(连续随机数发生器测试)。

使用特权

评论回复
一路向北lm|  楼主 | 2020-2-23 19:58 | 显示全部楼层
操作流程示意图
296425e5268ea5ce16.png

使用特权

评论回复
airwill| | 2020-2-26 21:43 | 显示全部楼层
种子值进行计算的, 是真随机数吗?

使用特权

评论回复
一路向北lm|  楼主 | 2020-2-26 22:12 | 显示全部楼层
airwill 发表于 2020-2-26 21:43
种子值进行计算的, 是真随机数吗?

芯片文档说是真随机  有点不信

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

256

主题

3639

帖子

72

粉丝