«上一篇 下一篇»
  计算机工程  2019, Vol. 45 Issue (10): 144-149  DOI: 10.19678/j.issn.1000-3428.0052512
0

引用本文  

夏文涛, 潘森杉, 王良民. 一种面向RFID的超轻量级流密码算法[J]. 计算机工程, 2019, 45(10), 144-149. DOI: 10.19678/j.issn.1000-3428.0052512.
XIA Wentao, PAN Senshan, WANG Liangmin. An Ultra-lightweight Stream Cipher Algorithm for RFID[J]. Computer Engineering, 2019, 45(10), 144-149. DOI: 10.19678/j.issn.1000-3428.0052512.

基金项目

国家自然科学基金青年基金(61702230)

通信作者

潘森杉(通信作者), 讲师、博士

作者简介

夏文涛(1994-), 男, 硕士研究生, 主研方向为密码算法;
王良民, 教授、博士

文章历史

收稿日期:2018-08-28
修回日期:2018-10-12
一种面向RFID的超轻量级流密码算法
夏文涛 , 潘森杉 , 王良民     
江苏大学 计算机科学与通信工程学院, 江苏 镇江 212013
摘要:针对无线射频识别(RFID)系统安全性较低的问题,提出一种适用于RFID标签的超轻量级流密码算法Willow。根据正差集性质选取函数抽头,以增加猜测确定攻击的复杂度。采用动态初始化方式并使用位数较小的计数器进行密钥索引和初始化,从而降低算法的电路面积和功耗。在Design Compiler上进行对比实验,结果表明,与Grain-v1、Plantlet等算法相比,Willow算法的延迟和功耗均较低,其在硬件性能和安全性上取得了较好的折中。
关键词超轻量级流密码    无线射频识别    动态初始化    硬件实现    时间存储数据折中攻击    
An Ultra-lightweight Stream Cipher Algorithm for RFID
XIA Wentao , PAN Senshan , WANG Liangmin     
School of Computer Science and Communication Engineering, Jiangsu University, Zhenjiang, Jiangsu 212013, China
Abstract: To address the low security of Radio Frequency Identification(RFID) system, an ultra-lightweight stream cipher algorithm Willow for RFID tags is proposed.Function taps are selected according to the property of positive difference set to increase the complexity of guess-and-determine attack.In order to reduce the circuit area and power consumption of the algorithm, a dynamic initialization method is adopted, and a counter with a smaller number of digits is used for key indexing and initialization.A comparative experiment is carried out on Design Compiler, and results show that the delay and power consumption of Willow algorithm are lower than those of Grain-v1 and Plantlet algorithm, and it achieves a good balance between hardware performance and security.
Key words: ultra-lightweight stream cipher    Radio Frequency Identification(RFID)    dynamic initialization    hardware implementation    time-memory-data tradeoff attack    
0 概述

无线射频识别(Radio Frequency Identification, RFID)[1]是一种利用射频通信对物体进行自动识别的技术, 目前已广泛应用于日常生产和生活中的物流管理、图书管理、门禁系统等方面。作为物联网的关键技术之一, RFID具有广阔的市场应用前景, 但其安全问题也日益突出。不同于传统的高性能计算机、服务器等设备, RFID标签的计算能力较弱, 硬件资源受限, 功耗开销较大。传统的密码算法侧重于提供高级别加密性能, 没有过多地考虑硬件资源极端受限的环境, 因而难以适用于RFID设备。由于流密码结构简单, 易于硬件实现, 且无需进行缓存, 即能够降低算法的存储空间, 因此其更加适用于RFID系统。2013年, 国际标准化组织发布轻量级密码标准ISO/IEC 29192。2017年, 美国国家标准和技术协会NIST发布了轻量级密码白皮书, 广泛征集轻量级密码算法。这些举措使得轻量级密码成为密码学领域的研究热点, 因此, 设计一种高效率、低能耗的轻量级密码算法备受关注。

为满足RFID的环境应用需求, 本文提出一种超轻量级流密码算法Willow。根据正差集性质选取函数抽头, 采用位数较小的计数器用于密钥索引与初始化, 以减少初始化轮数并降低算法的电路面积、延迟和功耗。

1 相关工作

近年来, 国内外学者提出了多种轻量级流密码算法, 如Espresso[2]、Lizard[3]、Grain-128a[4]、WG-8[5]、Sprout[6]、Plantlet[7]、Fruit[8-9]等, 同时也涌现出很多针对流密码算法的攻击方法, 如时间空间存储折中攻击(TMD攻击)[10-11]、相关密钥攻击[12]、快速相关攻击[13]、弱key-Ⅳ对攻击[14]、立方攻击[15]以及猜测确定攻击[16]

文献[6]提出一种Sprout算法, 较早打破了生日安全界(由生日攻击推导出的内部状态的安全界限)。Sprout算法引入新的设计范式Continuous-Key-Use(CKU)Stream Cipher, 密钥不仅用于初始化阶段, 还用于密钥流生成阶段, 从而提高了对TMD攻击的安全性, 使得内部状态大小降低到密钥长度。Sprout算法的发布引起了密码学界的广泛关注, 但也很快出现了各种针对Sprout的攻击。文献[17]针对Sprout内部状态更新函数的弱点, 提出选择Ⅳ相关密钥区分攻击, 暴露出Sprout算法存在弱key/Ⅳ对的缺陷。文献[18]针对Sprout中密钥非线性参与内部状态的弱点, 实施密钥恢复攻击, 指明循环密钥函数应为线性。文献[19]对Sprout实施猜测确定攻击和故障攻击。文献[20]在密钥位不参与密钥流生成的特殊状态下, 提出一种存在实际复杂度的TMD攻击。

文献[7]在Sprout的基础上, 针对各种Sprout攻击进行改进, 提出一种Plantlet算法, 并分析不同的非易失性存储技术对算法吞吐率的影响。Plantlet算法的内部状态由Sprout的80 bit提升为101 bit, 采用简单的线性循环密钥函数和双层LFSR结构。然而, 增加算法内部状态违背了安全性等于算法内部状态的准则, 而且增加了电路面积和功耗。文献[8]提出一种Fruit算法(Fruit发表在ePrint上, 设计者多次修改, 有很多版本, 其中版本20161124:115414为Fruit-v0, 版本20170304:073404为Fruit-v1, 版本20170724:053140为Fruit-v2)。Fruit算法采用复杂的循环密钥函数和新的初始化方式, 初始化轮数只有210, 与Sprout(320轮)和Plantlet(320轮)相比大幅降低。然而, 非线性的索引会增加算法的延迟。在Plantlet和Fruit被提出后不久, 文献[10]针对Sprout、Plantlet和Fruit-v1, 提出一般性的TMD区分攻击, 并利用Fruit-v1复杂密钥索引的漏洞实施密钥恢复攻击。文献[9]在Fruit-v2的基础上, 提出一种128 bit安全级别的Fruit-128算法, 其采用了动态初始化技术。上述算法都支持使用EEPROM来存储密钥, 但是这并不适用于RFID环境, 原因是RFID标签的功耗预算通常只有10 μW, 而对EEPROM进行读操作就要消耗5 μW~10 μW[3]。文献[21]对当前的轻量级对称加密进行综述, 并指明轻量级对称加密的概念过于宽泛, 应该分为2个发展方向:一个是超轻量级加密, 应用在不联网的低廉设备上, 例如RFID, 其提供的安全级别至少为80 bit; 另一个是物联网加密, 应用在连接互联网的低功耗设备上, 例如无线传感网, 其提供的安全级别至少为128 bit。

2 Willow算法 2.1 整体框架

本文中的相关符号含义如表 1所示。

下载CSV 表 1 相关符号及含义

Willow算法由线性反馈移位寄存器LFSR、非线性反馈移位寄存器NFSR、计数器、循环密钥函数以及输出函数构成, 如图 1所示。LFSR和NFSR是算法的内部状态, 在初始化时用Ⅳ进行填充。LFSR的最低位参与NFSR反馈, 在每个时钟周期内, 一个密钥比特参与NFSR更新。

Download:
图 1 Willow算法结构
2.2 算法描述

Willow算法各部分具体描述如下:

1) LFSR的长度为40 bit, 其反馈函数为:

$ {{l}_{t+40}}={{l}_{t}}\oplus {{l}_{t+4}}\oplus {{l}_{t+10}}\oplus {{l}_{t+20}}\oplus {{l}_{t+2}}7\oplus {{l}_{t+35}} $

2) NFSR的长度为40 bit, 其反馈函数为:

$ \begin{align} & {{n}_{t+40}}=k_{t}^{*}\oplus {{l}_{t}}\oplus c_{t}^{4}\oplus {{n}_{t}}\oplus {{n}_{t+13}}\oplus {{n}_{t+19}}\oplus \\ & \ \ \ \ \ \ \ \ \ \ \ \ \ \ {{n}_{t+35}}\oplus {{n}_{t+39}}\oplus {{n}_{t+2}}\cdot {{n}_{t+23}}\oplus \\ & \ \ \ \ \ \ \ \ \ \ \ \ \ \ {{n}_{t+3}}\cdot {{n}_{t+9}}\oplus {{n}_{t+6}}\cdot {{n}_{t+8}}\oplus \\ & \ \ \ \ \ \ \ \ \ \ \ \ \ \ {{n}_{t+14}}\cdot {{n}_{t+21}}\oplus {{n}_{t+15}}\cdot {{n}_{t+18}}\oplus \\ & \ \ \ \ \ \ \ \ \ \ \ \ \ \ {{n}_{t+22}}\cdot {{n}_{t+25}}\oplus {{n}_{t+26}}\cdot {{n}_{t+32}}\oplus \\ & \ \ \ \ \ \ \ \ \ \ \ \ \ \ {{n}_{t+10}}\cdot {{n}_{t+11}}\cdot {{n}_{t+12}}\oplus {{n}_{t+27}}\cdot \\ & \ \ \ \ \ \ \ \ \ \ \ \ \ \ {{n}_{t+30}}\cdot {{n}_{t+31}}\oplus {{n}_{t+29}}\cdot {{n}_{t+33}}\cdot \\ & \ \ \ \ \ \ \ \ \ \ \ \ \ \ {{n}_{t+36}}\cdot {{n}_{t+37}} \\ \end{align} $

3) 计数器是一个7 bit的寄存器Ct=(ct0, ct1, …, ct6), ct0是最低有效比特, 每个时钟周期递增, 且为0~79的循环, 其参与算法的初始化和循环密钥函数更新。

4) 循环密钥函数是简单的循环顺序选择密钥比特, 计数器Counter负责密钥比特索引, 产生的循环密钥比特作为NFSR内部状态更新函数的输入。循环密钥函数的表述式为:

$ k_{t}^{*}={{k}_{(t\ \text{mod}~80)}}={{k}_{(\text{Counte}{{\text{r}}_{t}})}} $

5) h函数由如下11个抽头组成:

$ \begin{align} & {{h}_{t}}={{l}_{t+8}}\cdot {{l}_{t+18}}\oplus {{l}_{t+1}}\cdot {{l}_{t+21}}\oplus {{l}_{t+26}}\cdot \\ & \ \ \ \ \ \ \ \ {{n}_{t+7}}\oplus {{l}_{t+12}}\cdot {{l}_{t+28}}\oplus {{l}_{t+39}}\cdot \\ & \ \ \ \ \ \ \ \ {{n}_{t+5}}\cdot {{n}_{t+28}} \\ \end{align} $

6) 输出函数如下:

$ \begin{align} & {{z}_{t}}={{h}_{t}}\oplus {{l}_{t+34}}\oplus {{n}_{t+1}}\oplus {{n}_{t+4}}\oplus {{n}_{t+16}}\oplus \\ & \ \ \ \ \ \ {{n}_{t+17}}\oplus {{n}_{t+24}}\oplus {{n}_{t+34}}\oplus {{n}_{t+38}} \\ \end{align} $

Willow算法初始化分为4个阶段:

1) 将Ⅳ加载到寄存器中, 计数器初始化为全0:

$ \begin{align} & \left( {{n}_{0}}, {{n}_{1}}, \ldots , {{n}_{39}} \right)=\left( {{v}_{0}}, {{v}_{1}}, \ldots , {{n}_{39}} \right) \\ & \left( {{l}_{0}}, {{l}_{1}}, \ldots , {{l}_{39}} \right)=\left( {{v}_{40}}, {{v}_{41}}, \ldots , {{v}_{69}}, 1, 1, \ldots , 1, 0 \right) \\ & \left( {{c}_{0}}, {{c}_{1}}, \ldots , {{c}_{6}} \right)=(0, 0, \ldots , 0) \\ \end{align} $

2) 运行80个时钟周期, 每一周期将输出比特反馈到NFSR和LFSR中。

3) 在第2阶段结束后, 将计数器的最高比特设置为0, LFSR的高6比特赋给计数器中的低6比特(c800=l114, c801=l115, …, c805=l119, c806=0), 然后将l119设置为1。

4) 在第3阶段结束后, 继续进行初始化, 直到计数器为79(1111001)时停止, 随后产生第1个密钥流比特。

在第4阶段, 输出比特不反馈到NFSR和LFSR中, 第4阶段的初始化时钟周期数是17~80间的随机数, 之后计数器在0~79间进行循环。

3 设计准则 3.1 动态初始化

Willow算法无需Fruit-128的复杂密钥调度, 初始化轮数比Sprout和Plantlet小, 其只需7 bit计数器来进行初始化和密钥索引。

在Willow算法的第3阶段, 选取LFSR的高6比特赋给计数器, 而不是Fruit-128中LFSR的低6比特, 原因是Fruit-128的动态初始化有一个漏洞:在相同key下, Ⅳ的前91位相同, 则初始化轮数会一样, 这减弱了动态初始化的随机性, 因为初始化Ⅳ是随轮数逐比特地参与更新, 且第3阶段将LFSR的低6比特赋给计数器, 导致了Ⅳ比特无法及时更新到计数器中。Willow算法避免了上述情况的发生, Ⅳ第1阶段就加载进LFSR和NFSR中, 选取LFSR的高6位比特赋给计数器, 使得Ⅳ能够充分地混淆和扩散到计数器中。

赋值后的计数器(c800, c801, …, c806)是从0000000~1111110的随机数, 因此, 第4阶段的初始化轮数为17~80的随机数, 整个初始化阶段的轮数为97~160的随机数。不同于Sprout、Plantlet等算法固定的初始化轮数, Willow算法增加了从已知内部状态实施密钥恢复攻击的复杂度, 且能够抵抗可分性立方攻击。在Willow算法中, 内部状态更新函数虽然双射, 但恢复出密钥并非简单地往回计数。Willow算法的初始化轮数比Grain-v1(160轮)、Sprout(320轮)、Plantlet (320轮)以及Fruit-v2(210轮)少得多, 更少的轮数意味着更低的功耗和更快的初始化速度。

3.2 循环密钥函数

Sprout算法较早提出循环密钥函数的概念, 打破了生日安全界限, 降低了内部状态的大小。但各密钥比特不同的参与率暴露了其弱点, Sprout很快遭受了多种攻击。为此, Plantlet、Fruit改进了循环密钥函数, 使所有密钥比特都有相同的参与率, 但非线性的读取操作会增加功耗和电路面积。在Fruit-v2的15 bit寄存器中, 7 bit用来索引6个不同的非线性密钥比特, 该复杂设计不但增加了功耗和电路面积, 且并未提高安全性(如文献[10]利用Fruit-v2复杂密钥调度的漏洞实施TMD攻击)。Willow算法同时使用计数器Counter来进行80 bit密钥的索引和初始化, 避免引入过多的计数器, 同时顺序循环的读取密钥比特也易于实现, 减少了延迟和功耗。

3.3 NFSR与LFSR反馈函数

反馈函数的抽头选取没有固定格式, 但是有一些基本的限制和准则。首先, 所有抽头只能被选取一次, 一个单项式的最小抽头和最大抽头间距应尽可能大; 其次, 选取的抽头集合应该满足尽量小的正差集性质。正差集性质描述为:在集合τ中的不同元素之间互相做差, 若某一差值出现的次数最多(次数为λ), 则称集合τλ阶正差集。如果集合间的元素差值互不相同, 则λ=1, 此时称τ为完全正差集。

LFSR的长度为40 bit, 反馈多项式为本原多项式, 保证最大周期为240-1, 反馈函数的抽头集合{0, 4, 10, 20, 27, 35}是完全正差集, 而Sprout、Plantlet和Grain-v1中LFSR抽头集合的正差集性质分别是3阶、2阶和2阶。NFSR的反馈函数g函数平衡, 如果kt*ct4=0, 则g函数的非线性度为267 403 264, 弹性度为4, 最佳线性逼近的集合大小为214, 该集合的每个函数有63×2-15的偏差。

3.4 密钥流输出函数

Willow算法的输出函数中来自LFSR的抽头集合{1, 8, 12, 18, 21, 26, 28, 34, 39}是2阶正差集, 而Sprout、Plantlet和Fruit相应的LFSR抽头集合都是4阶正差集。Willow算法的输出函数中来自NFSR的抽头集合{1, 4, 5, 7, 16, 17, 24, 28, 34, 38}是3阶正差集, 而Sprout、Plantlet和Fruit-v2相应的NFSR抽头集合都是4阶正差集。Willow算法输出函数的非线性度为28×976=249 856, 弹性度为7, 最佳线性逼近至少要有8项, 偏差为2-5.415

4 安全性分析 4.1 时间存储数据折中攻击

文献[20]对Sprout实施具有实际复杂度的TMD密钥恢复攻击。因为循环密钥比特kt*参与NFSR内部状态更新的概率为0.5, 所以该攻击的假设是在较长的连续时钟周期内, 密钥比特并不会参与内部状态更新。文献[10]利用Fruit-v1循环密钥函数索引的漏洞(当k64=k65=…=k79=0时, k0, k1, …, k31不参与内部状态更新), 实施TMD恢复密钥攻击。而在Willow算法中, 每个密钥比特都按顺序参与内部状态更新, 所有密钥比特都以相同的速率参与密钥流生成阶段。因此, 上述对Sprout和Fruit-v1实施的攻击对Willow都将无效。

良好的采样抵抗也能提高流密码对TMD攻击的安全性, 采样抵抗指攻击者不能通过特殊模式的密钥流来轻易识别内部状态。攻击者至少需固定Willow中h函数的5个变量, 才能线性化密钥流输出函数, 然后识别特殊的内部状态。而在Grain-v1、Sprout和Plantlet中, 相应地, 攻击者至少需固定3个、4个和4个变量。因此, Willow算法的输出函数合适。

4.2 猜测确定攻击

文献[14]对Sprout实施的猜测确定攻击基于LFSR全0的特殊状态, 而Willow不存在弱密钥Ⅳ对, LFSR全0状态不会发生。文献[16]对Sprout实施时间复杂度为270.87(270.87=259+11.87)的猜测确定攻击, 优于之前的所有非TMD攻击。猜测确定攻击的假设是如果密钥流函数z(x)=xaxbxa+ixb+iz′(x), a<b<a+i, 则可以将密钥流输出函数进行转换, 消除xaxb。根据转换后简化的密钥流输出函数, 每一轮依据上一轮和已知密钥流确定未知状态, 前6轮总共猜测59 bit未知状态。在Sprout的输出函数中, 抽头n17n23n28n34满足此性质, 因此向攻击者暴露了漏洞。Plantlet将LFSR由Sprout的40 bit变为61 bit, 增加内部状态从而提高了攻击复杂度, 但其同时增加了电路面积。在Willow算法中, 由于抽头选取采取了正差集性质, 一次项的集合{1, 4, 16, 17, 24, 34, 38}是一阶正差集, 且没有相同的差值, 保证了输出函数不能被简化, 因此, 不满足攻击假设, 且h函数中有11个变量, 多于Sprout和Plantlet中的9个变量。因此, 在攻击的前6轮总共需猜测73 bit未知状态, 总复杂度超过穷举攻击。

4.3 区分攻击

文献[10]提出对Plantlet和Fruit-v1的TMD区分攻击, 但也指出对于轻量级流密码, 存在低于穷举攻击复杂度的区分攻击是可以接受的, 原因是区分攻击只能分辨出随机序列和密钥流序列, 并不能恢复出内部状态或者密钥, 这种攻击可以容忍。同时, 文献[10]也提出新的设计思想来抵抗区分攻击, 即密钥和Ⅳ同时持续参与到内部状态更新中。Fruit-128采用该思想, 添加了循环Ⅳ函数。在这种情况下, 区分攻击的复杂度高于穷举攻击。在eSTREAM中, 密码算法的一个淘汰准则是其存在低于穷举攻击复杂度的攻击, 如果一个攻击的复杂度低于穷举攻击, 说明该攻击在理论上成功。而超轻量级流密码算法面向资源极端受限的硬件环境, RFID标签传输的数据量通常只有几字节到几十字节。文献[10]中的区分攻击对Willow算法的数据复杂度为249.94, RFID标签的传输速率一般为100 KB/s, 假设RFID不停地发送数据, 收集如此多的数据需要342年, 远超RFID标签的使用寿命, 而这仅能区分随机序列和密钥流序列。Willow算法没有采用循环Ⅳ函数来抵抗区分攻击, 因为持续地读取key和Ⅳ会大幅增加算法的电路面积和功耗。

4.4 立方攻击

Grain-128曾遭受动态立方攻击, 因为其NFSR反馈函数的代数次数太低(代数次数为2)。在Grain-128a中, NFSR反馈函数的代数次数增加为4。因为Willow算法中的NFSR长度和LFSR长度比Grain-v1小, 所以Willow的h函数有11个变量, 多于Grain-v1(5个)、Sprout(8个)和Plantlet(8个)。因此, 在Willow算法的初始化阶段, key和Ⅳ变量代数次数的增长速度比Grain-v1、Sprout、Plantlet快。文献[15]提出可分性立方攻击的概念, 其对Grain-128a攻击的轮数提升到183。但是由于Willow采用动态初始化技术, 因此可分性立方攻击无法对Willow搭建混合整数线性规划模型(MILP), 原因是MILP模型的输入参数初始化轮数未知。

4.5 快速相关攻击

对于轻量级流密码, 传统的快速相关攻击很难快于穷举攻击[22], 需要改进其攻击思想。文献[13]针对轻量级流密码Fruit-v0的漏洞, 实施快速相关攻击, 其攻击的基础是如果非线性组合函数具有伪线性性质(在知道其中一个寄存器的状态时, 非线性组合函数变为线性), 则可以用分治法恢复完整的内部状态。文献[13]还提出轻量级流密码抵抗快速相关攻击的2个设计准则:

1) 输出函数应严格避免伪线性性质。

2) 选取高非线性度的函数抽头, 防止对NFSR反馈函数线性逼近。

Willow中的NFSR反馈函数沿用Grain-128a的设计范式, 非线性度为267 403 264, 输出函数的非线性度为249 856, 因此, 其能够避免遭受文献[13]中的快速相关攻击。

4.6 弱key-Ⅳ对

Grain系列的流密码和Sprout都存在弱key-Ⅳ对, 使得初始化之后的LFSR变为全0状态, 然后LFSR会一直处于全0状态, NFSR的统计属性变得非随机, 密钥流完全由NFSR决定。在这种情况下, 算法很容易被攻破。Plantlet使用双层LFSR来避免LFSR全0状态的发生, 但是会因额外的逻辑门而增加算法电路面积。在Willow初始化的第2阶段, 将l119设置为1, 有效防止了LFSR全0状态的发生(在初始化第2阶段后, 密钥流输出不反馈到LFSR中, LFSR独立运行), 因此, Willow中不存在弱key-Ⅳ对。

5 实验结果与分析

本文将Grain-v1、Sprout、Plantlet、Fruit-v2和Willow在ASIC上进行实现, 并分析对比算法的电路面积、功耗和延迟。计算机配置为:CPU Intel(R) Core(TM) i5-6300HQ CPU @2.3 GHz, 内存8 GB, 操作系统Windows 10, 软件为Synopsys Design Compiler vC-2009.06-SP5、Xilinx Vivado 2015.4和Modelsim SE-64 6.5g。为公平起见, 所有算法都采用相同的设计流程和实验环境, 在Vivado上采用verilog语言实现算法, 在Design Compiler上将算法综合在0.13 μm CMOS标准单元库中进行优化, 在Modelsim中生成交换活动数据并通过Design Compiler测量功耗。所有算法不考虑存储密钥的面积, 且实验数据为加上初始化阶段的结果, 以更客观地表现出算法实际的性能。实验中各项评价指标如下:

1) 频率:本文实验时钟频率为100 kHz, 因此, 一个时钟周期为10 μs, 每个时钟周期内生成1 bit密钥流。

2) 面积:为独立于工艺进行算法电路面积的比较, 通常用等效门电路(Gate Equivalence circuit, GE)来表示面积, 1 GE等于一个二输入与非门(NAND2 gate)所占用的面积, 这也是衡量密码算法性能最重要的指标之一。

3) 延迟:本文延迟指关键路径的延迟, 即从寄存器到密钥流输出所经历的时间。

4) 功率:本文功率使用典型模型(1.2 V, 25℃), 由初始化和产生1 000 bit密钥流的交换活动数据来测量。为提高实验的精确性, 对每个算法选取10组随机key/Ⅳ来测量功率, 得到平均值作为实验结果。

设计RFID加密算法时最主要的2个制约因素是电路面积和功率, 一般面积小于2 000 GE的算法称为轻量级算法, 面积小于1 000 GE的算法称为超轻量级算法[23]。因此, Willow属于超轻量级流密码算法。5种算法的硬件性能对比结果如表 2所示。因为Willow的密钥固定, 在RFID的使用周期内无需更改, 可以将密钥烧录进设备, 而非存储在EEPROM中。低成本的RFID通常采用被动供电, 即通过阅读器辐射的电磁场供电。标签所需功率越大, 最大阅读距离就越小, 因此, 其功率限制非常严重, 功率上限通常是10 μW。

下载CSV 表 2 80 bit安全级别轻量级流密码算法的硬件性能对比

表 2可以看出, 在电路面积和功率上, 除Sprout外, Willow最小, 但Sprout已被证明安全性较低。Willow的面积相比Grain-v1、Plantlet、Fruit-v2分别降低了32.7%、13.8%、32.4%。在延迟方面, Willow算法最小, 比Grain-v1、Sprout、Plantlet、Fruit-v2分别降低了33.0%、5.4%、5.4%、3.2%。较低的延迟能够保证RFID的实时性需求。Willow的功率分别比Grain-v1、Plantlet、Fruit-v2降低了41.0%、14.5%、13.3%。加密只占RFID系统很小的一部分, 功率越低, RFID其余部件就能够得到越多的面积。如果Willow采用Fruit-128中的初始化方式, 面积为1 055 GE, 相比Fruit-128的892 GE显著增加, 原因在于Willow需要额外的多路选择器来进行Ⅳ选取。综上, 与Grain-v1、Plantlet、Fruit-v2算法相比, Willow算法在电路面积、功耗和延迟上均有不同程度的降低, 其实现了更好的硬件性能。

6 结束语

本文提出一种适用于RFID的超轻量级流密码算法Willow。根据正差集性质选取函数抽头, 使得猜测确定攻击的复杂度高于穷举攻击。通过动态初始化技术抵抗可分性立方攻击, 并用较小的计数器来控制密钥索引和初始化。在Design Compiler上的实验结果表明, 与Grain-v1、Plantlet等算法相比, Willow算法具有较低的延迟、功耗以及较小的面积, 其更适用于RFID系统。下一步将研究包括Willow算法在内的轻量级流密码算法的优化实现问题, 并提高算法在FPGA、微控制器等平台上的硬件性能。

参考文献
[1]
罗韶杰, 张立臣. 改进的基于位运算的RFID标签所有权转移协议[J]. 兵器装备工程学报, 2019, 40(8): 157-164. (0)
[2]
DUBROVA E, HELL M. Espresso:a stream cipher for 5G wireless communication systems[J]. Cryptography and Communications, 2017, 9(2): 273-289. DOI:10.1007/s12095-015-0173-2 (0)
[3]
HAMANN M, KRAUSE M, MEIER W. LIZARD-a lightweight stream cipher for power-constrained devices[J]. IACR Transac-tions on Symmetric Cryptology, 2017(1): 45-79. (0)
[4]
AGREN M, HELL M, JOHANSSON T, et al. Grain-128a:a new version of Grain-128 with optional authentication[J]. International Journal of Wireless and Mobile Computing, 2011, 5(1): 48-59. DOI:10.1504/IJWMC.2011.044106 (0)
[5]
FAN Xinxin, MANDAL K, GONG Guang.WG-8: a lightweight stream cipher for resource-constrained smart devices[C]//Proceedings of the 9th International Conference on Heterogeneous Networking for Quality, Reliability, Security and Robustness.Berlin, Germany: Springer, 2013: 617-632. (0)
[6]
ARMKNECHT F, MIKHALEV V.On lightweight stream ciphers with shorter internal states[C]//Proceedings of the 22nd International Workshop on Fast Software Encryption.Berlin, Germany: Springer, 2015: 451-470. (0)
[7]
MIKHALEV V, ARMKNECHT F, MULLER C. On ciphers that continuously access the non-volatile key[J]. IACR Transactions on Symmetric Cryptology, 2016(2): 52-79. (0)
[8]
AMINGHAFARI V, HU Honggang.Fruit: ultra-lightweight stream cipher with shorter internal state[EB/OL].[2018-07-29].https://eprint.iacr.org/eprint-bin/getfile.pl?entry=2016/355&version=20170724:053140&file=355.pdf. (0)
[9]
GHAFARI V A, HU Honggang, ALIZADEH M.Necessary conditions for designing secure stream ciphers with the minimal internal states[EB/OL].[2018-07-29].https://eprint.iacr.org/2017/765.pdf. (0)
[10]
HAMANN M, KRAUSE M, MEIER W, et al. Design and analysis of small-state grain-like stream ciphers[J]. Cryptography and Communications, 2017, 9(1): 1-32. (0)
[11]
MAITRA S, SINHA N, SIDDHANTI A, et al. A TMDTO attack against lizard[J]. IEEE Transactions on Computers, 2017, 67(5): 1-7. (0)
[12]
王秋艳, 金晨辉. LEX算法的相关密钥攻击[J]. 计算机工程, 2014, 40(4): 141-145. DOI:10.3969/j.issn.1000-3428.2014.04.027 (0)
[13]
ZHANG Bin, GONG Xinxin, MEIER W. Fast correlation attacks on grain-like small state stream ciphers[J]. IACR Transactions on Symmetric Cryptology, 2017(4): 58-81. (0)
[14]
BANIK S.Some results on Sprout[C]//Proceedings of the 16th International Conference on Cryptology in India.Berlin, Germany: Springer, 2015: 124-139. (0)
[15]
TODO Y, ISOBE T, HAO Yonglin, et al.Cube attacks on non-blackbox polynomials based on division property[C]//Proceedings of the 37th Annual International Cryptology Conference.Berlin, Germany: Springer, 2017: 250-279. (0)
[16]
LI Gefei, YAROM Y, RANASINGHE D C.Exploiting transformations of the Galois configuration to improve guess-and-determine attacks on NFSRs[EB/OL].[2018-07-29].https://eprint.iacr.org/2015/1045.pdf. (0)
[17]
HAO Yonglin.A related-key chosen-Ⅳ distinguishing attack on full Sprout stream cipher[EB/OL].[2018-07-29].https://eprint.iacr.org/2015/231.pdf. (0)
[18]
LALLEMAND V, NAYA-PLASENCIA M.Cryptanalysis of full Sprout[C]//Proceedings of the 35th Annual Cryptology Conference.Berlin, Germany: Springer, 2015: 663-682. (0)
[19]
MAITRA S, SARKAR S, BAKSI A, et al.Key recovery from state information of Sprout: application to cryptanalysis and fault attack[EB/OL].[2018-07-29].https://eprint.iacr.org/2015/236.pdf. (0)
[20]
ESGIN M F, KARA O.Practical cryptanalysis of full Sprout with TMD tradeoff attacks[C]//Proceedings of the 22nd International Conference on Selected Areas in Cryptography.Berlin, Germany: Springer, 2016: 67-85. (0)
[21]
BIRYUKOV A, PERRIN L.State of the art in lightweight symmetric cryptography[EB/OL].[2018-07-29].https://eprint.iacr.org/2017/511.pdf. (0)
[22]
潘森杉, 夏文涛, 王良民. 流密码快速相关攻击综述[J]. 江苏大学学报(自然科学版), 2017, 38(5): 563-570. (0)
[23]
MANIFAVAS C, HATZⅣASILIS G, FYSARAKIS K, et al.Lightweight cryptography for embedded systems-a comparative analysis[C]//Proceedings of the 8th International Workshop on Data Privacy Management and Autonomous Spontaneous Security.Berlin, Germany: Springer, 2014: 333-349. (0)