智能手机有什么好的熵源?

我在考虑智能手机可以产生多少(kB / s)密码安全熵的情况下考虑这一点。 对于示例应用程序:一个持续生成新加密密钥的VoIP应用程序。

我能想到的东西: - 相机 - 麦克风 - 加速度计 - 磁力计 - 触摸屏 - 呼叫,WiFi,蓝牙等的信号强度和时间。

很显然,每种方法都会产生不同数量的信号(可预测的数据)和噪声(需要的熵),但适当组合它应该是好的。


此外,如果任何人对任何在正常条件下产生的熵的数量有任何估计值,那么这些熵也将是有利的。


通常的答案是你不需要太多的熵。 128位就足够了; 一旦你有128个真正的随机比特,你就可以在一个密码安全的伪随机数发生器(PRNG)中使用它们,这将产生尽可能多的随机比特,以高速率,只受本地计算能力的限制智能手机,PRNG带宽将以兆字节每秒,而不是千字节每秒)。

不断的熵收集比科学的理性需求更为迷人。 有人说随机获取“真实”可以保护您免受PRNG未来的任何密码分析违规; 但是只有当你可以得到新的统一的随机比特(这在实践中不会发生:你需要应用散列函数来平滑收集的“噪声”),并且如果直接使用随机比特,而不是作为关键字一个加密算法。 可以对种子储存进行连续熵收集的更强的情况:害怕攻击者抓住PRNG,可以看到它的内脏,恢复内部状态,并且追溯地猜测先前发射的随机比特。 好的PRNG可以防止这种情况发生。 至少,您可以每秒重新安装128个新鲜比特,速度很低。

这就是说,如果你需要熵,手机相机可能是最好的使用来源,因为CCD检测器对热生成的噪音非常敏感,并且它输出带宽非常高的数据。 基本的手机相机单张照片很容易包含兆字节的数据,即使手机放在背靠背的冰箱内,您仍然会有数千位的噪音(只有一千比特的噪音意味着超过百万像素,99.9%是“完美”的,在400美元手机中有点滑稽可笑 - 美国国家航空航天局的工程师无法在耗资百万倍的太空探测器中做到这一点)。

所以只需拍一张照片,用任何方便的散列函数(例如SHA-256)对它进行散列,然后瞧! 你有256位熵,你在PRNG中使用。 如果您在一段时间后真的对PRNG感到紧张,只需拍摄另一张快照。

链接地址: http://www.djcxy.com/p/61915.html

上一篇: What good source of entropy are available on a smart phone?

下一篇: How are software license keys generated?