我还没有找到任何可靠的来源试图证明或反驳鼠标移动的随机性。
- 谷歌学术搜索“鼠标运动熵”给出的结果出人意料地少:大约一页计算机科学结果,其中三页是切线相关的,然后才开始研究“开放领域中老鼠的行为”(这令人着迷,顺便一提)。
- “通过鼠标移动进行用户重新身份验证”是相关的,但不相关。虽然他们似乎在误报和误报方面获得了相当不错的结果,但他们指出,它本身不足以进行身份验证。这表明,至少当您拥有一个人的鼠标移动样本时,预测未来的移动应该更容易(并且没有人访问过可以捕获您的鼠标移动的不受信任的网站)。
- “基于鼠标移动和混沌密码学的真正随机数生成器”是关于如何实现这样的 RNG 的建议,而不是源(鼠标移动)是否实际上是不可预测的。
- 以及上述提案的 git 存储库。
- 本网站上的相关问题没有回答这个问题:没有一个足够长以包含本身的证据(这必须是经验性的,因为我们正在谈论分析人类行为,所以这意味着描述测试设置,给出统计属性结果,描述结论......完全是一个大帖子)或指向此类研究的链接。
- 在创建 truecrypt 卷期间随机移动鼠标时您在做什么?
- 关于人类随机性熵的研究?
- 请注意,这个问题不是重复的,因为我专门询问鼠标移动。这个问题更广泛,例如有关用户选择的密码或用户生成的脑电波的答案。
- 如果程序需要用户的随机输入,那么加密的安全性如何?
- 这个密码生成器安全吗?
- 生成 RSA 2048 位密钥对需要多少时间/“收集的熵”?
- 这个盐生成代码的熵有多高?(实际上不需要阅读代码)
- 这些低熵源中的每一个大约有多少熵?
- 我应该在多长时间内随机移动鼠标以生成加密密钥?
- 在我们的姊妹网站上,再次有相关问题,但没有回答这个问题的答案:
- https://crypto.stackexchange.com/questions/3347/are-mouse-movement-coordinates-useful-as-a-seed-for-a-rng
- https://crypto.stackexchange.com/questions/39833/does-iterative-hashing-of-mouse-keyboard-input-improve-its-properties-as-an-entr
- https://crypto.stackexchange.com/questions/1618/feedback-on-rolling-my-own-entropy-gatherer
- https://crypto.stackexchange.com/questions/25847/hkdf-entropy-extraction
- https://crypto.stackexchange.com/questions/14632/standard-or-guidance-for-entropy-collection
- https://crypto.stackexchange.com/questions/14632/standard-or-guidance-for-entropy-collection
- 提到 NIST 定义了一些你可以做的统计测试,假设它会显示鼠标移动通过了这些测试。我不确定这组测试到底有多全面,因为根据我的经验,大多数这样的测试都通过了任何事情,而且一切都很好。最好知道这些测试是否可靠,如果可靠,它们是否确实支持鼠标移动。
- 随机网页结果:
- https://en.wikipedia.org/wiki/Entropy_(computing)似乎没有任何来源回答这个问题。(文章并未声称鼠标移动具有良好的熵。)
- https://www.reddit.com/r/crypto/comments/937qzb/my_findings_on_extracting_entropy_from_mouse/
- 结论更多地是关于鼠标移动的可压缩性,而不是关于实际的不可预测性。举个简短的例子,虽然压缩器通常无法将简单 RNG 的输出压缩太多,但观察几个输出可能就足以预测下一个状态。同样,如果有几个点描述了鼠标正在绘制的曲线,则可以推断出许多其他点。我并不是说来源无关紧要,但我也不认为它是(接近)确凿的证据。
- 在写完上述内容后阅读评论线程,我发现有人说“估计用户鼠标移动的[不可预测性]是一个复杂的人为因素问题......可能已经有一些学术研究”,这很有趣。你不说!
值得一提的是,快速查看 Puttygen 源代码表明它似乎仅根据鼠标移动生成私钥。它用偶数单元格中的鼠标移动事件时间和奇数单元格中的鼠标位置填充数组,在其上撒上一些魔法洗牌(洗牌内存,异或场),并调用一些 RSA/DSA/EC* 密钥生成器数组作为参数。对于此类用例,是否有确凿的证据表明鼠标移动是一个好的熵源非常重要。请注意,这与将其用作附加源不同,例如在 Linux 内核中,即使它是一个平庸的源,也只会提高质量。
我很难相信没有人调查过这个。我错过了什么?