论文部分内容阅读
初始化算法是序列密码算法的重要组成部分,初始化算法的安全性直接影响着序列密码算法的安全性。本文以序列密码初始化算法与密钥流生成算法之间差异程度的大小为标准,将初始化算法的设计分为结构相同型序列密码算法、结构相似型序列密码算法和结构迥异型序列密码算法三类,利用滑动重新同步攻击、相关密钥选择IV攻击、差分分析和区分攻击等序列密码分析方法,对三种类型中的代表序列密码MICKEY2.0、MICKEY-1282.0、Trivium、Decim v2、K2、Loiss和Py系列的初始化算法进行了安全性分析,取得了以下成果:1.对结构相同型序列密码MICKEY2.0、MICKEY-1282.0和Trivium的初始化算法进行了安全性分析。对MICKEY2.0与MICKEY-1282.0的初始化算法进行了滑动重新同步攻击和相关密钥选择IV攻击。分析结果表明,MICKEY2.0与MICKEY-1282.0的初始化算法存在弱点,当分别获得65和113个相关密钥时,攻击者可以在3分钟以内实时破解MICKEY2.0与MICKEY-1282.0,通过实验,我们验证了攻击结果的正确性。因此,MICKEY2.0与MICKEY-1282.0无法抵抗滑动重新同步攻击和相关密钥选择IV攻击。提出了针对Trivium的自动搜索差分路径技术,利用该技术可以得到任意轮Trivium算法的差分路径。对轮数为288的简化版Trivium算法进行了差分分析,提出了一个有效的区分攻击,仅需226个选择IV,区分优势为0.999665,攻击结果远优于已有的线性密码分析和多线性密码分析。通过实验,我们验证了该攻击结果的正确性。对更多轮的Trivium算法和由Turan和Kara提出的修改Trivium算法进行了差分分析,结果表明,初始化轮数低于359的Trivium算法不能抵抗差分分析,修改Trivium算法在抵抗差分分析方面优于原Trivium算法。2.对结构相似型序列密码Decim v2、K2和Loiss的初始化算法进行了安全性分析。对Decim v2和K2序列密码的初始化算法进行了相关密钥选择IV攻击。当获得7个相关密钥时,可以实现对Decim v2的实时破解,通过实验,我们验证了该攻击结果的正确性;当获得一对相关密钥时,恢复K2全部256比特初始密钥的计算复杂度为O(2193),数据量为O(2196.09),需要2193个选择IV,成功率接近于1。分析结果表明,Decim v2和K2的初始化算法存在弱点,不能抵抗相关密钥选择IV攻击。利用差分碰撞的思想,发现Loiss的初始化算法存在弱点,针对Loiss序列密码的初始化算法,构造了一条完整的差分路径,提出了针对Loiss的差分碰撞攻击,当获得一对差分密钥时,恢复全部128比特密钥所需的计算复杂度为O(264),需要235.07个选择IV和239.07个密钥流字节,攻击的成功率接近于1。该攻击结果表明,Loiss序列密码算法不能抵抗差分分析。通过实验,我们验证了该攻击结果的正确性。这是目前为止首个针对Loiss的分析结果。对Loiss的初始化算法进行了修改,分析表明,该修改方案提高了Loiss的安全强度,同时也保持了Loiss的高实现速度。3.对结构迥异型序列密码Py系列的初始化算法进行了安全性分析。对Py系列序列密码的两个最强版本RCR-32和RCR-64进行了相关密钥-区分攻击,所需数据量为2139.3,区分优势大于0.5。这是目前为止首个针对RCR-32和RCR-64的分析结果。同时,对已有的针对Py、Pypy、Tpy和TPypy的相关密钥-区分攻击进行了改进,将其所需的数据量由2193.7降为2149.3,区分优势大于0.5,是目前针对TPypy最好的区分攻击。提出了RCR-32和RCR-64序列密码算法的改进版本,分别为TRCR-32和TRCR-64,安全性分析表明,与原算法相比,TRCR-32和TRCR-64具有更高的安全性。