论文部分内容阅读
本论文主要致力于研究流密码的密码分析、流密码的设计以及流密码在保密语音通信中的应用。全文共分为三大部分:
(1)、流密码的密码分析在这部分的工作中,成功实现了针对SOBER-tw和SOBER-128两个著名流密码的区分攻击。并提出了改进猜测一攻击的思想,提升了针对快速流密码SSC2的猜测一攻击的攻击效率。
(2)、流密码的设计在这一部分的工作当中,首先对流密码工程eSTREAM征集到34个候选算法展开初步密码分析,以积累设计经验。最后,针对80C51单片机系统构造快速安全的流密码,并把该流密码应用于AMBE-1000语音通信系统中,实现一个硬件和软件结合的保密语音通信系统。
(3)、流密码的应用全面构造一个实用的保密语音通信系统。首先实现了基于G729A的语音通信系统,并针对该系统设计并成功实现了基于分组加密和流密码加密的两个保密语音通信系统。
一、流密码的密码分析
密码分析是密码学当中的一个重要领域,它对密码设计起了不可代替的推进作用。本文主要工展了针对流密码的密码分析的研究。
在本论文的第二章中,首先对当前具有较高影响力的SOBER-tw和SOBER-128流密码进行深入的安全分析,提出并证明了SOBER流密码的非线性函数具有明显的线性近似特征,最终成功实现了针对这些流密码的区分攻击。在攻击中,我们推导了精确计算这种线性近似特征方法,再掘流密码非线性部件的具体结构,得到LFSR状态和NLF输出变量之间的线性近似关系,从而通过这些线性近似关系就可以实现针对SOBER流密码的区分攻击。例如,我们攻击Unstuttered SOBER-t32仅仅需要2<55>个密钥流输出以及相同的计算量,与第二章的文献[27]中需要2<87>的条件相比较,我们的攻击有了显著的提升。同时我们实现针对SOBER-128流密码的区分攻击仅需要2<106>个密钥流输出以及相同的计算量,证明了SOBER-128并不能严格地提供2<128>的绝对安全强度。所以,与目前世界上其他针对SOBER流密码的攻击相比较,我们针对Unstuttered SOBER-t32和SOBER-128流密码攻击,可以说是目前世界上最佳的攻击。
其次,在本论文第三章中,我们提出一个简单但非常实用的新的攻击策略,我们称为改进的猜测-确定攻击(IGDA-Improved Guess-and-DetermineAttack)。在这个攻击策略中,我们攻击的第一个目标不是验证猜测是否正确,而相反地是检验当前猜测是否一定是错误的。在排除大部分不可能的猜测后应用传统的猜测-确定攻击。由于在条件有限情况下,证明一次猜测不合理,比证明猜测一定正确更简单更容易。所以,我们利用有限的条件就可以排除大部分不合理的猜测,从而大大降低了后续攻击的计算量。在详细分析唯一一个专门为计算能力非常有限的微型无线设备而设计的SSC2流密码后,我们应用改进猜测-确定攻击成功地把第三章文献[27]中针对LFSR产生器的攻击计算量从c(2<42>)降低到c(2<30>)。同样,利用改进猜测-确定攻击也大大减少了针对LFG攻击所需要的已知明文数量和计算量。最后我们不仅仅总结了SSC2流密码的设计缺陷,还进一步讨论设计快速流密码关键部件的设计思想,为设计快速流密码做准备。
二、流密码的设计密码设计是提供信息安全服务的核心,本论文主要尝试设计快速安全的流密码。
在第四章中,在进行流密码的设计之前,为了进一步学习流密码的设计理论,跟踪国际流密码的最新动向,吸收国际先进的经验,我们对ECRYPT项目中的流密码工程eSTREAM进行跟踪研究,为我们设计流密码提供有益的参考。到目前为止,我们的部分安全分析已经证明是正确有效的。在流密码设计当中,为了适应流密码快速安全的发展背景,我们利用成熟的流密码部件,针对80C51单片机系统构造快速安全的流密码。在流密码的结构设计上,我们采用“线性驱动源+非线性驱动源+非线性模块”的三层模式,强化对线性驱动源的保护,进一步提高系统的安全性。并且在设计面向字节LFSR当中,我们不仅仅强调GF(2)域上抽头数量和抽头位置对系统安全的影响,而且还强调在字节域上的抽头设计对系统安全同样有重要的影响,并为快速设计面向字节LFSR做出有益的总结。而在NLFSR的设计中成功消除了S-box线性近似特征引起的安全威胁,同时还强化了SNOW2.0流密码的FSM设计,实现高度非线性的NLF。最后,我们给出了详尽的参考C代码和汇编代码实现,以及相应的详细注释,同时还利用AMBE-1000语音编码解码芯片构造硬件的语音通信系统,并把所设计的流密码应用于该语音通信系统,从而实现一个硬件、软件相融合的保密语音通信系统。
三、流密码的应用最后,在第五章中我们全面构造了一个实用的保密语音通信系统。首先通过深入分析和了解G729A编码、解码器结构以及编码帧的比特分配,实现了对ITU提供的C代码的优化,成功把G729A的代码封装成独立C++类,进而实现基于G729A的语音通信系统。
为了实现基于G729A的保密语音通信系统,我们的第一个方案首先采用分组密码AES来实现。我们首先分析了AES的具体实现过程,并针对G729A帧编码的特点,提出AES的两个变种算法AES160和AES80。对这两个算法的密码统计分析表明,变种算法保留了AES的统计性能,从一个侧面说明了变种算法的可靠性。最后利用AES160和AES80实现了基于G729A的分组保密语音通信系统。对该系统的性能分析表明,在现有的可靠通信系统下,该分组保密语音通信系统可提供高质量的保密语音。
为了避免分组加密固有的误码扩散特性,实现在高误码无线信道下的保密语音通信系统,我们采用没有误码扩展性质的流密码来加密编码语音帧。同时,为了避免增加额外的同步信息传输,我们在系统原有的编码语音帧中插入同步信息。为了实现同步信息的插入,我们首先利用ITU建议标准PESQ的代码封装成了实用的分析软件,再利用该分析工具分析G729A各个编码参数对语音质量的重要程度。我们注意到,编码参数L3 (LSF的VO量化第二码本索引,5比特)对语音质量的贡献很小,即使用随机误码来完全替代该参数,也很难察觉到语音质量的下降。所以我们通过参数L3插入流密码加密、解码的同步信息,并设计了稳定同步方案,实现了基于G729A的流密码密语音通信系统。