HAVEGE: A user-level software heuristic for generating empirically strong random numbers

HAVEGE: A user-level software heuristic for generating empirically strong random numbers
复制标题

HAVEGE:一种用户级软件启发式方法,用于生成经验上强的随机数

DOI:
10.1145/945511.945516
复制
发表时间:
2003
期刊:
ACM Trans. Model. Comput. Simul.
影响因子:
--
通讯作者:
N. Sendrier
N. Sendrier
中科院分区:
--
文献类型:
--
作者:
André Seznec;N. Sendrier

文献摘要

被引文献

相似文献

为了增强密码应用的安全性,需要具有高密码质量的随机数。用于生成经验上强随机数序列的软件启发法依赖于通过测量不可预测的外部事件来收集熵。这些生成器每个事件仅提供几个比特。这限制了它们用作伪随机生成器的种子。通用处理器具有大量旨在提高性能的硬件机制:缓存、分支预测器……。这些组件的状态不是架构性的(即普通应用程序的结果不依赖于它)。它也是易失性的,用户无法直接监控。另一方面,每个操作系统中断都会修改数千个这样的二进制易失性状态。在本文中,我们介绍并分析了 HAVEGE(硬件易失性熵收集和扩展),这是一种新的用户级软件启发式方法,可在通用计算机上生成实用的强随机数。处理器的硬件时钟周期计数器可用于收集处理器内部状态中操作系统中断引入的部分熵/不确定性。然后,我们展示了如何将这种熵收集技术与 HAVEGE 中的伪随机数生成相结合。由于 HAVEGE 的内部状态包括数千个内部易失性硬件状态,因此即使用户自己似乎也不可能重现生成的序列。
Random numbers with high cryptographic quality are needed to enhance the security of cryptography applications. Software heuristics for generating empirically strong random number sequences rely on entropy gathering by measuring unpredictable external events. These generators only deliver a few bits per event. This limits them to being used as seeds for pseudorandom generators.General-purpose processors feature a large number of hardware mechanisms that aim to improve performance: caches, branch predictors, …. The state of these components is not architectural (i.e., the result of an ordinary application does not depend on it). It is also volatile and cannot be directly monitored by the user. On the other hand, every operating system interrupt modifies thousands of these binary volatile states.In this article, we present and analyze HAVEGE (HArdware Volatile Entropy Gathering and Expansion), a new user-level software heuristic to generate practically strong random numbers on general-purpose computers. The hardware clock cycle counter of the processor can be used to gather part of the entropy/uncertainty introduced by operating system interrupts in the internal states of the processor. Then, we show how this entropy gathering technique can be combined with pseudorandom number generation in HAVEGE. Since the internal state of HAVEGE includes thousands of internal volatile hardware states, it seems impossible even for the user itself to reproduce the generated sequences.