<output id="hxt7n"><dfn id="hxt7n"><form id="hxt7n"></form></dfn></output>

<track id="hxt7n"><progress id="hxt7n"><th id="hxt7n"></th></progress></track>
<address id="hxt7n"><big id="hxt7n"></big></address>

      <sub id="hxt7n"></sub>

      搜索
      打印

      [国产单片机] 真随机数发生器(TRNG)

      [复制链接]
      585|10
      跳转到指定楼层
      楼主
      真随机数发生器(TRNG)可生产 1 位串行真随机数或 8/16/32 位并行真随机数。
      支持可编程的随机数位宽
      支持可编程的种子值
      支持随机性修正模式
      支持随机序列错误检测



      使用特权

      评论回复
      沙发
       楼主 | 2020-2-23 19:55 | 只看该作者
      TRNG 结构框图

      使用特权

      评论回复
      板凳
       楼主 | 2020-2-23 19:56 | 只看该作者
      初始化时间
      TRNG 使 能 后 需 要 经 过 一 段 时 间 初 始 化 才 可 产 生 新 的 随 机 数 , 初 始 化 时 间 在
      TRNG_START 寄存器配置。根据当前 HCLK 时钟频率,计算出 TRNG_START 的值,使
      初始化时间不低于 1ms。
      计算公式为:

      使用特权

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

      使用特权

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

      使用特权

      评论回复
      6
       楼主 | 2020-2-23 19:57 | 只看该作者
      随机数生成时间系数表

      使用特权

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

      使用特权

      评论回复
      8
       楼主 | 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 后产生的
      第一个随机数不应使用,但应保存起来,与产生的下一个随机数进行比较。随后产生的每
      个随机数都需要与产生的上一个随机数进行比较。如果任何一对进行比较的数字相等,则
      测试失败(连续随机数发生器测试)。

      使用特权

      评论回复
      9
       楼主 | 2020-2-23 19:58 | 只看该作者
      操作流程示意图

      使用特权

      评论回复
      10
      | 2020-2-26 21:43 | 只看该作者
      种子值进行计算的, 是真随机数吗?

      使用特权

      评论回复
      11
       楼主 | 2020-2-26 22:12 | 只看该作者
      airwill 发表于 2020-2-26 21:43
      种子值进行计算的, 是真随机数吗?

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

      使用特权

      评论回复
      扫描二维码,随时随地手机跟帖
      您需要登录后才可以回帖 登录 | 注册

      本版积分规则

      我要发帖 投诉建议 创建版块 申请版主

      快速回复

      您需要登录后才可以回帖
      登录 | 注册
      高级模式

      论坛热帖

      关闭

      热门推荐上一条 /4 下一条

      在线客服 快速回复 返回顶部 返回列表