gpt4 book ai didi

random - 嵌入式系统上 "uniqueness"/entropy 的来源

转载 作者:行者123 更新时间:2023-12-03 22:17:50 29 4
gpt4 key购买 nike

我有一个嵌入式系统。我希望它在开机或以其他方式重置时做的是生成一个唯一的 ID,以便在不同的重新启动时以很高的概率生成一个不同的唯一 ID。

它无法访问实时时钟,但可以访问 ADC 和 UART。我想知道是否有一种体面的方法可以从这些来源收集熵以生成唯一 ID。我隐约熟悉Yarrow .有什么好的方法可以使用它吗?

不幸的是,我没有任何具有可预测特征的噪声源; ADC 连接到许多相对低噪声的输入,所以我想我可以只使用 ADC 的最低有效位作为输入。

编辑:就其值(value)而言,这就是 TI TMS320F28335 处理器。

更新/说明:我正在寻找一种收集熵的软件方法。我找到了另一种方法来解决我的问题,所以在某种程度上,我的问题是有争议的,但我仍在寻找有关 的指导。收集熵的具体软件解决方案来自低熵源,如 ADC 的最低有效位和用于接收 UART 字符的系统时序。

最佳答案

我用过:

  • float ADC 输入的最低位,但您触及了
  • 一个极高分辨率的计时器(~10ns),并在用户按键之间计时时采用最低的“n”位。如果您接受用户按键(在最高时序分辨率下)在其时序上实际上是随机的,那么它运行得非常好。

  • 您还可以对网络数据包之间的时间等进行计时,但这些可能比很多人的事情更具确定性/可预测性。电噪声和用户交互是更好的熵源。

    顺便说一下,关于“按键之间的时间”的东西,我倾向于将它们存储在一个嵌入式系统上,从开机开始,在最后 8 个左右的循环缓冲区中,因为你永远不知道什么时候需要他们。 (换句话说:不要等到你需要随机位,然后强制用户按下按钮 3 次!)

    关于random - 嵌入式系统上 "uniqueness"/entropy 的来源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3764976/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com