丁 杰,石 会,龚 晶,邓元庆
(解放军理工大学 通信工程学院,南京 210007)
为推动流密码更好的发展,促进密码界开发出新的流密码设计思想与设计理念,ECRYPT项目[1]于2004年启动了eSTREAM流密码研究计划[2]。自从eSTREAM计划启动以来,国际上密码研究得到了极大发展,其中,基于分组密码思想构造流密码成为流密码设计的一个重要方向。
进入eSTREAM计划第二阶段的流密码候选算法泄露提取(Leak Extraction,LEX)[3],是基于分组密码算法高级加密标准(Advanced Encryption Standard,AES)[4]来构造的,并因其较高的密钥流生成速度以及便于硬件实现的特点倍受关注,与其他类似方式构造的流密码相比,其密钥流生成速度约是AES算法OFB模式的2.5倍[5]。
自LEX算法提出以来,出现了很多针对该算法的分析结果[6],许多针对分组密码提出的分析手段也被用来分析该流密码算法[7]。其中,文献[8]提出的针对LEX算法的滑动攻击给LEX算法的安全性带来了很大的隐患。本文研究旨在改进LEX算法的薄弱环节,增强其抗滑动攻击能力。
LEX算法采用128 bit分组密码高级加密标准AES作为密钥流产生部件,它的出现架起了分组密码与序列密码设计的桥梁,具有十分重要的意义。
与AES算法一致,LEX算法延续了128 bit的密钥与明文规模,其算法结构如图1所示[3],具体分为初始化和密钥流提取2个阶段。初始化阶段:对于给定的128 bit密钥K,以初始向量IV作为输入,运行一组AES,得到加密结果C1=AESk(IV),该组AES不输出任何密钥流;密钥流提取阶段:从第2组AES开始,每执行一组AES会有10轮轮函数迭代,从每一轮迭代后所得的128 bit中间变量提取32 bit(共4个字节),作为输出密钥流的一部分,10轮迭代后共输出320 bit密钥流。……