首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在一个典型的微控制器上是否有安全的熵源?

在一个典型的微控制器上是否有安全的熵源?
EN

Cryptography用户
提问于 2015-08-03 16:14:57
回答 2查看 1.6K关注 0票数 6

在没有硬件RNG的设备上,熵的最佳来源是什么?

一些选项和陷阱随处可见:

  • 使用ADC读取一些类似的东西:如果有电源接入,或者一些ADC太稳定,即使在LSB,也可以变得确定性。
  • 使用:电源断电攻击?
  • 使用晶体抖动:这里的想法是采样RTC和MCU晶体之间的差异,并使用LSB。
EN

回答 2

Cryptography用户

回答已采纳

发布于 2015-08-03 20:16:52

我见过的大多数适合密码的微控制器都有一个带有硬件RNG的变体。例如微芯片的PIC32系列。

但是,如果没有,则可以将一些传感器附加到ADC上。这将取决于您的环境,您可以使用什么样的传感器。它可以是任何东西,这是不容易操纵的(至少在LSB(s))。

然后,从ADC中提取LSB(s),或者更好地使用随机抽取器。您每隔多长时间取一次位数,一次能取多少位,取决于ADC、传感器和环境,以及您想达到的安全级别。

如果你能走得更远一点,除了你的微控制器,还有一些小的硬件电路,可以用来创造随机性。一个例子正在使用二极管的雪崩效应。

雪崩噪声是连接二极管在雪崩击穿开始时产生的噪声。当载流子在强电场的影响下获得足够的动能,通过与晶格中的原子碰撞而产生附加的电子空穴对时就会发生这种现象。如果这一过程碰巧溢出到雪崩效应,随机噪声尖峰可以观察到。

简而言之,我们可以使用带有一些外部电路的二极管来产生随机噪声尖峰。如果我们放大这个信号并把它传送给一个比较器,我们会得到一个随机的位串。

票数 6
EN

Cryptography用户

发布于 2017-08-22 14:20:40

我在这里做了一些实验:https://github.com/kuro68k/xrng

TL;DR使用Atmel XMEGA内部温度传感器的LSB和向ADC的VCC/10输入,然后通过CRC32算法进行白化,从而得到一个RNG,通过了NIST的测试,看起来很好。

票数 1
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/27318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档