新闻中心

EEPW首页>嵌入式系统>设计应用> 使用 MSP430 内部时钟生成随机数字

使用 MSP430 内部时钟生成随机数字

作者: 时间:2008-12-11 来源:网络 收藏

不管是生成随机器件地址、强化加密算法还是创建独立产品密钥,可靠地生成随机数字都变得日益重要。这些随机数字对于日常嵌入式系统特别有用,比如车库门接收机必须一一对应地正确识别远程控制的随机数字,以防止非授权访问。为了生成随机数字,开发人员可以使用高级 16 位确保将所有信号都控制在内部,而且与昂贵的模拟硬件相比,这种解决方案成本更低、安全性也更高。

双时钟芯片架构可以支持 TI 超低功耗的随机数字生成能力。超低频振荡器 (VLO) 与数控振荡器 (DCO) 是两个独立的时钟系统,可以利用二者间的计时差生成随机位流。一个 VLO 时钟周期中的DCO 时钟数量大致相同。然而,由于 VLO 与 DCO 时钟源彼此独立变化,无法预测生成的数字是奇数还是偶数,因此这种器件更安全。更重要的是,即使在前面生成的数字为已知的情况下,也不可能预测之后的结果。

由于 VLO 的灵活性很高,其速度可降至 DCO 以下。然后可以将定时器配置为升序计数,将 DCO 作为源时钟,从而触发对下一次 VLO 从低到高升序的采集。这次采集将记录一个 VLO 时钟周期中的 DCO 时钟周期数。由于时钟源的变化,每次采集将导致单位 VLO 周期内的 DCO 时钟数略有差异。正是这种差异才产生了随机数字。例如,为了生成 16 位随机数字,需要进行 16 次采集,每个被采集数字的最低有效字节转换成存储器中的一个字。

设计人员可以使用定时器外设收集随机 LSB,通过在每个采集周期中确保 CPU 处于关闭状态,可以实现超低功耗。只需要短暂使用 CPU,即可将 LSB 转换为存储单元。

尽管上述方法是随机数字的主要来源,但是,时钟系统还是允许设计人员结合使用反馈法。在要求进行 FIPS 140-2 测试的情况下,这些方法可提高算法性能。

第一个反馈机制是,在每个采样位后使 DCO 略微加速。时钟控制寄存器在每个位后加上数字 5。这种相加或额外变化导致在每个环路时 DCO 的速度均高于 VLO。虽然可以使用任何数字,但数字 5 可以产生足够大的阶跃变化,以至于 DCO 与 VLO 之间发生很大的差异。

另外,每次转换 LSB 时,两个以前采样的随机位被按位加至时钟控制寄存器的除法器位。这些位在到达计时器之前将控制用于 VLO 的除法器,同时还改变了计时器测定的VLO 与 DCO 之间的关系。

最后,每个得出的位实际上是 5 个环路“多数原则”的结果。如前所述,每个环路都从 CCR 生成其自身的 LSB,但 5 的“多数原则”用于选择最终位。

通过这种方式,MCU 能够以极低的功耗生成随机位的连续流。这种位流可以用于创建随机数字;如果不需要对运行的应用时钟架构进行修改,将针对伪随机数字生成器 (PRNG) 生成初始种子。

借助该技术,就可以生成通过 FIPS 140-2 随机性测试的位流。这就是说,该技术可广泛用于需要生成随机数字的各种应用领域。特别是随着无线技术的推广,这种随机数字生成技术将有很好的前景。另外,由于该技术采用目前的 MSP430 MCU 架构内部信号,具有成本低与安全性高等优势。



关键词:MSP430MCU

评论


相关推荐

技术专区

关闭