The Linux pseudorandom number generator (PRNG) is a PRNG with entropy inputs and is widely used in many security-related applications and protocols. This PRNG is written as an open-source code which is subject to regular changes. It has been analysed in the works of Gutterman et al., Lacharme et al., while in the meantime, several changes have been applied to the code, to counter the attacks presented since then. Our work describes the Linux PRNG of kernel versions 5.3 and upwards. We discuss the PRNG architecture briefly and in detail about the entropy mixing function. Our goal is to study the entropy mixing function and analyse it over two properties, namely, injectivity and length of the longest chain. For this purpose, we will be using SAT solving and model counting over targetted formulas involving multiple states of the Linux entropy store.
翻译:Linux伪随机数生成器(PRNG)是一种带有熵输入的PRNG,广泛应用于众多安全相关的应用和协议中。该PRNG以开源代码形式编写,且代码会定期更新。Gutterman等人、Lacharme等人已对其进行分析,与此同时,代码也经历了多次修改以抵御此后提出的攻击。我们的工作描述了内核5.3及以上版本的Linux PRNG。我们简要讨论了PRNG的架构,并详细阐述了熵混合函数。我们的目标是研究熵混合函数,并从两个方面对其进行分析,即单射性和最长链长度。为此,我们将使用SAT求解和模型计数方法,针对涉及Linux熵池多种状态的目标公式进行分析。