论文部分内容阅读
区分攻击是一种有效的密码分析方法,其基本思想是利用假设检验来判别输出序列是来自随机序列还是密钥流序列.流密码虽然在通信、商务和军事等领域有广阔的应用前景,但其输出序列往往达不到真正的随机.因此,对流密码区分攻击的研究具有非常重要的理论价值和应用价值,多年来一直是研究的热点课题.本文对欧洲eSTREAM计划中的四个候选密码算法Achterbahn、HC-256、Sosemanuk和Sfnks进行了安全性分析,取得以下主要结果:(1).针对流密码Achterbahn-v2和Achterbahn-128的组合输出布尔函数,借助Plasencia的区分攻击思想,通过寻找更优的奇偶校验提出了一种区分攻击;然后利用中间-相遇攻击恢复出密钥.与目前已知最好的攻击结果相比,针对Achterhahn-v2能够将攻击所需的密钥流比特长从O(252)降到O(251.6);对Achterhahn-128能够将密钥流比特长从O(255.61)降到O(255.07).(2).对流密码HC-256的变形算法HC-256′进行研究,基于偶数位密钥流输出序列{s2i}的弱点提出了一种区分攻击.首先对偶数位输出序列利用不同的非线性函数代替内部状态更新函数;然后在最低位比特构造区分器.分析结果表明,需要约O(2313)密钥流比特,就能以0.9545的区分优势将HC-256′的密钥流序列从随机序列中区分出来.(3).针对流密码Sosemanuk的有限状态机FSM和Serpent1,借助Watanabe和Lee基于线性掩码的分析方法,提出了一种线性区分攻击.首先利用线性掩码技术比特异或代替模加和Trans函数运算,再借助不同的掩码线性逼近FSM,最后对输出函数进行线性逼近来构造区分器.该区分攻击需要约O(2221)密钥流比特就能把密钥流序列和随机序列区分开.(4).对基于线性反馈移位寄存器的Sfnks算法,利用代数立方攻击能快速恢复出密钥.首先通过立方攻击寻找足够多的低阶代数方程,再利用代数攻击恢复密钥.与最好的分析结果相比,该攻击能够将所需的计算复杂度从O(271)降为O(243),同时将密钥流比特数从O(243)降为O(221).(5).利用代数立方攻击对流密码LILI-128进行了安全性分析.针对LILI-128中第一个寄存器LFSRc钟控第二个寄存器LFSRd的特点,分别在对第一个寄存器LFSRc穷举搜索和每次步进2391个时钟两种情形下进行代数立方攻击.跟已知的多种攻击方法相比,代数立方攻击具有一定的优势.