0 引言
序列密码是一种对称密码算法,即加密密钥和解密密钥是相同的。序列密码的经典结构包括两个部件:驱动部件和密钥流输出部件,驱动部件通过迭代运算更新内部状态,输出部件抽取一部分内部状态的比特值,经过复杂运算产生密钥流。加密时,密钥流和明文异或产生密文,解密时,密钥流和密文异或产生明文。通俗地讲,序列密码算法可以认为是分组密码的密钥扩展算法。
序列密码的一个结构特点是必然有内部状态,这使序列密码容易受到时间存储折中攻击(Time Memory Data Tradeoff,TMD),为了抵抗这种攻击,通常要求序列密码的内部状态的长度至少是密钥长度的两倍,例如序列密码Grain[1]、Grain-128a[2]系列密码算法,它们的内部状态是密钥长度的两倍,而Trivium算法[3]的内部状态大于密钥长度的两倍。这导致序列密码在硬件实现时所占用的硬件资源代价过大,例如Trivium算法的硬件面积是2 580门,不适用于资源受限、低功耗、物联网等新的应用场景。
为了既能抵抗TMD攻击,又能减小内部状态的长度,研究人员最近几年提出了“小状态”轻量级序列密码研究。那些能够抵抗TMD攻击且内部状态的长度小于密钥长度的两倍的轻量级序列密码,称为小状态轻量级序列密码(Small State Lightweight Stream Cipher)。
本文介绍了四个小状态的轻量级序列密码算法,依次是Sprout[4]、Fruit-80[5]、Plantlet[6]、Lizard[7];主要介绍它们的设计理念和最新的分析结果,来发现存在的问题,总结研究成果,促进小状态的轻量级序列密码的研究。
本文详细内容请下载:http://www.chinaaet.com/resource/share/2000003219
作者信息:
王明兴1,2,苗三立1,朱明佳1
(1.中国电子信息产业集团有限公司第六研究所,北京102209;2.密码科学技术国家重点实验室,北京100878)
凡《网络安全与数据治理》(原《信息技术与网络安全》)录用的文章,如作者没有关于汇编权、翻译权、印刷权及电子版的复制权、信息网络传播权与发行权等版权的特殊声明,即视作该文章署名作者同意将该文章的汇编权、翻译权、印刷权及电子版的复制权、信息网络传播权与发行权授予本刊,本刊有权授权本刊合作数据库、合作媒体等合作伙伴使用。同时,本刊支付的稿酬已包含上述使用的费用,特此声明。