为了使生产环境中的设备具有安全性、个性化,我们的客户需要以下内容:
私钥/公钥对应放置在设备内和安全进程环境中。为了生成私钥,部分熵将由外部随机数生成器生成。相应的随机数据应该导入到设备中。
我明白他们想要什么,但我不知道,这个额外的熵是如何与设备内部的真正随机数发生器结合起来的。我知道,一些外部生成的随机数应该与内部生成器结合,以产生我的私钥所基于的随机数。如何在实践中做到这一点?从内部获取前16个数字,从外部源获取其他16个数字将是非常微不足道的。
发布于 2017-04-11 11:55:48
根据当前的详细信息,这将在I=内部生成器和E是外部生成器的情况下工作:-
随机字节=I⊕⊕(E)
这个方程假设我是一个高质量的RNG。这里的关键是从E中得到足够的熵,你应该测量它在位/S样本中的(最小)熵产生率,然后取足够的样本来保证F乘以16字节。F是一个安全系数,理想情况下应该是>2,但我只考虑F= 100。如果你有一个模拟熵源,你可以很容易地得到10 kSa/s和一个芯片上的ADC,数字熵源可以按10 MSa/s的顺序采样,这取决于你的微控制器的特性。
哈希允许不同数量的熵很容易地合并。它也是E的随机抽取器,所以你不必去考虑熵,它会处理巨大的自相关。
请注意。我会提出这样的论点,即拥有内部生成器(I)是没有意义的。如果你有一个真正的熵发生器的奢侈,使用它。哈希提取器函数意味着不需要额外的白化。正如肖恩告诉乔伊,如果你能使用它,一个就是你所需要的。我怎么会被播种呢?
发布于 2017-04-11 09:48:43
只需对数据进行xor。两个随机源的熵至少与两个源的最大熵相同,只要两个随机源都是independent__。
https://crypto.stackexchange.com/questions/46496
复制相似问题