论文部分内容阅读
随机数发生器是信息安全之“源”,是密码系统之“基”。网络自诞生以来就存在着各种各样的安全问题,随着人工智能、大数据、云计算、物联网技术的发展,人们未来需要应对的信息安全问题变得越来越多。当前,解决信息安全问题的首要方法是使用各种密码技术,而密码技术实现数据保护的本质就是对数据进行“随机化”。通常,随机化的结果以及随机化的程度取决于密码算法所使用的密钥、初始向量、盐值等信息的随机性,而在密码系统中这些信息最初都是由随机数发生器产生的。因此,设计高效、安全的随机数发生器对密码或安全系统至关重要。密码学随机数发生器分为真随机数发生器和伪随机数发生器,它们均可采用软件和硬件来实现。由于真随机数发生器多采用价格高昂的硬件才可以实现,而且存在对熵源的随机性要求高和产生随机数的速度慢等缺点,所以它不具备实用性和商业化。伪随机数发生器的构造方法有很多,如基于分组密码、序列密码、Hash函数等密码学原语,这些构造方法复杂而且效率偏低。然而,基于组合式的伪随机数发生器具备构造简单和对已有的伪随机数发生器统计特性改善明显的优点。本文基于组合法构造了一种伪随机数发生器算法,具体研究内容如下:(1)设计了一种安全高效的组合式伪随机数发生器算法,算法以LCG算法和RC4算法为数据的生成源,以安全的密码学Hash函数为数据后处理算法。该算法使用模为256的满周期LCG算法,使生成序列中的“1”和“0”均匀分布。(2)在组合式伪随机数发生器内部设置一个计数器,在每轮迭代的过程中都用随机值更新它,使计数器的值具备一定的随机性。由于将RC4算法的内部状态作为随机数发生器内部状态的一部分,所以当使用内部计数器的Hash值更新(置换)RC4算法的内部状态时,会进一步增大RC4算法的周期。(3)将LCG算法产生的序列和RC4算法产生的序列的Hash值做异或运算能够增强算法的抗密码分析能力。在该算法输出随机数之前,使用安全的密码学Hash函数算法对该算法的内部状态进行处理,可以有效地切断产生的随机序列与算法内部状态之间的相关性,从而使产生的随机序列具备不可预测性。(4)本文不仅从不可预测的角度分析了方案的安全性,而且还设计了专门的测试程序,制定了六个具体的测试方案。在不同的计算机平台分别按照这六个方案指定的参数规格执行测试程序,通过记录、对比、分析不同的测试结果,可以了解、评估该组合式伪随机数发生器在不同条件下的性能。为了进一步验证该组合式伪随机数发生器生成序列的统计特性,使用国际上普遍采用的NIST SP800-22随机性测试工具包对产生的序列进行统计测试,测试结果表明该随机数发生器产生的序列具备良好的统计特性,可以应用于密码学、信息安全等领域。