论文部分内容阅读
密码算法是信息安全的重要基础。近些年来,许多国家和机构都纷纷开展了密码算法的标准化工作,从而掀起了密码算法设计的新高潮。在对密码算法的征集过程中,一个很关键的问题就是如何对密码算法进行正确的评估。其中安全性是最重要的评估因素,它包括算法数学基础的稳健性、抗攻击性和随机性等等。 在以上背景下,本论文研究了如何利用一些统计测试原理对算法的随机性进行检测,另外,本文还研究了关键密码组件的安全性检测以及如何设计安全有效的密码组件,并取得了以下几个方面的研究成果: 1)系统总结了各类密码算法的安全性检测方法,并在已有的关于分组密码算法、序列密码算法和伪随机数生成算法的随机性检测的基础上,新增加了对杂凑函数的随机性检测的研究,它包括杂凑函数摘要的随机性检测,消息的扩散性检测和密钥的扩散性检测。 2)设计了一种关于分组密码密钥编排算法的随机性检测方法。目前关于分组密码算法随机性检测的研究只限于加密算法,而密钥编排算法也是分组密码算法的重要组成部分,不好的密钥编排算法很容易导致对分组密码算法的攻击。理想的密钥编排算法应该能使生成的子密钥具有统计独立性。本文设计了一种随机性检测算法,通过它可以计算出子密钥之间的统计独立性程度。 3)提出了关于S盒的一种偏差检测方法。它基于这样一个基本原理:在一个由所有布尔函数构成的空间里,随机选取一个布尔函数,对它的所有输出向量进行异或后得到的值应该是等可能的。由此,我们可以延伸到S盒中,对于一个具有良好随机特性的S盒,如果我们分别固定输入输出的某些位,随着被固定的输入位的取值的变化,会得到一些独立的子布尔函数,它们输出的异或值的取值应该是等可能的,在这里,我们将统计所有子布尔函数的输出异或值的概率偏差。这种对S盒的偏差检测反映了S盒的随机性程度。 4)设计出一批具有良好密码学特性的S盒。首先研究了如何按照一定的规则改变S盒的局部输出,从而逐步改善S盒的密码特性。另外研究了如何利用基因算法来演化设计双射S盒,在给定的演化策略下,可以设计出大量具有高非线性度和低差分均匀性的双射S盒。最后,提出了一种基于RC5算法构造S盒的方法。该方法利用RC5算法安全、结构简单的特点,将它的结构抽象出来用以构造现在流行的8×8的S盒。