论文部分内容阅读
在通信系统中,流密码是保证通信安全最重要的一种手段,大量应用于军事、政治和电子商务中。其安全性得到研究学者的大量关注,特别是衡量密钥流安全性强度的度量。
线性复杂度是衡量密钥流安全强度的一个重要指标,如何提高线性复杂度的计算效率是流密码学中一直研究的问题。此外,在各种编码(如Reed-Muller码)中,线性复杂度也可作为基本的度量。然而,高线性复杂度并不意味着难以预测。若改变序列若干位,线性复杂度马上降下来,加密信息很容易遭到已知明文攻击。为了解决上面的问题,Stamp-Martin引入周期序列线性复杂度稳定性的概念以衡量序列的稳定性,定义序列在较大干扰的情况下,仍然能够保持较为理想的线性复杂度。
本文首先介绍了随机序列的生成过程,序列随机性的描述,线性移位寄存器的特性。然后引入线性复杂度算法,包括求任意长度序列线性复杂度的B-M算法,以及求周期为2n序列的线性复杂度的算法,以及给出了在CUDA(ComputeUnified Device Architecture)平台下,并行加速2n序列线性复杂度的算法,实验结果得到比较理想的加速比,能够在足够短的时间内求得序列线性复杂度。
序列线性复杂度即使达到最大,而序列复杂度却可能很不稳定,理想中的随机序列不仅要线性复杂度最大,稳定性需要保证,希望在一定的扰动下,序列仍能够保持较大的线性复杂度。为了衡量序列的稳定性,本文介绍k错线性复杂度的定义,表示扰动k位序列后序列的最小线性复杂度,因为k错(k-error)线性复杂度是在序列线性复杂度基础上引入的概念,所以求k错线性复杂度的算法也是由求线性复杂度的算法扩展而来,并且由于数据的相互依赖性更小,适合CUDA并行化计算。
针对周期为2n的二元序列,若线性复杂度错误谱具有较多的关键点(critica] point),表明序列具有很好的稳定性。本文中,给出n=7时存在最多关键点个数为34(2n(∶)2(G)2)的周期序列。在筛选稳定序列的过程中,发现了一些序列的相似特性,进而把这部分序列归为等价类,从而方便序列稳定性的研究。最后文中提出序列关键点数目最大值的最低界限。