汪 亚 魏国珩
(海军工程大学信息安全系 湖北 武汉 430033)
适用于RFID的轻量级密码算法研究综述
汪 亚 魏国珩
(海军工程大学信息安全系 湖北 武汉 430033)
随着物联网技术的飞速发展和普及,RFID等资源受限设备的安全性受到越来越多的重视,关于此类设备应用的轻量级密码算法成为近些年的研究热点。针对适用于RFID设备的轻量级密码算法在研究进展、设计方法和安全性分析方面作了综述。介绍了轻量级密码设计中的常用方法和关键问题,对目前能够应用于RFID设备的典型轻量级算法进行了归纳总结,阐述了针对轻量级密码常用的安全性分析方法,突出旁路攻击对算法的威胁,并对一些算法的实现性能进行了对比。最后进一步阐明了当前及今后轻量级密码研究中要解决的问题及可能的研究方向。
RFID 轻量级密码算法 安全性分析
随着物联网技术的推广及RFID等微型计算设备应用的普及,计算和信息交互已经可以在更小、计算能力更有限的设备中进行。在物联网领域,无线射频识别RFID技术被广泛应用到各个行业,它所具有的成本低、效率高的特点使得RFID标签越来越受欢迎。这类设备的计算能力、存储空间和能量来源都非常有限,信息交互也是在无线信道中进行,因此,如何提高RFID在信息传输进程中的安全性,成为日益重要的研究课题。
给信息加密是目前较为有效的保障信息安全性的方法。经典的加密算法如AES、DES等加密强度高,算法安全性好,但是强度越高,算法实现起来就要消耗越多的资源,耗费越多的时间。RFID标签不同于传统的高性能计算机和台式机,它的存储空间较小,计算能力和电量储存能力也相对较弱,资源极端受限,显然传统复杂的加密算法对这种低功耗低成本的设备是不适用也是不必要的,因此轻量级密码算法便应运而生,并受到人们日益广泛的关注。轻量级密码算法是为了适应物联网环境下,射频识别标签、智能卡等设备资源相对受限的限制,而提出的一种功耗低、占用门数少的密码算法[1]。与传统的密码算法相比,轻量级算法在计算时消耗更少的资源、拥有更高的效率,非常适用于RFID等计算能力有限的微型设备使用。近几年来,随着物联网的安全问题日益严峻,轻量级密码算法的研究取得丰硕成果,国际标准化组织也正在制定轻量级算法的相关标准,包括轻量级的序列密码算法、分组密码算法和杂凑算法等。无论是序列密码还是分组密码,都属于对称密码算法,对称密码和非对称密码最大的不同就是只有一个密钥,轻量化实现起来比较容易。非对称密码加密时使用公钥,解密时使用私钥,增加了实现轻量化的难度,所以很少有非对称的加密算法能够实现绝对的轻量化[2]。本文在参考大量文献的基础上归纳和总结了轻量级密码算法的研究进展,首先阐述轻量级密码在设计与实现过程中使用的方法、遵循的原则以及要达到的目标;随后介绍了一些典型的能够用于RFID的轻量级密码;其次总结了针对轻量级密码算法的常用攻击方法;接着在这些攻击方法的基础上总结针对典型轻量级算法常用的安全性分析方法;最后概括出轻量级密码今后发展必须解决的问题和可能的发展方向。
很多非轻量级的密码算法在设计时只考虑安全性,忽略了实现起来所消耗的资源,导致这些算法无法在资源受限的设备中使用。与其它资源受限设备相比,RFID标签有其自身特点,轻量级密码算法在标签中的应用场合也有所不同,首先从硬件上来看,通常RFID标签有1000到10 000 GE(等效门,也称等价门,表示为完成一个电路功能而与制造技术相互独立的逻辑门数量),但可用于实现安全性的组件只有200到2000 GE。在标签使用过程中,读写器向外发送信号,大部分标签都是从信号产生的磁场中获取能量进行激活,因此标签是低功耗的,同时,标签与读写器之间的通信是在无线信道中进行的,这种方式很容易被窃听和干扰,最终导致用户无法接收到正确信息或非法用户对标签进行伪造,从而达到欺骗用户的目的。因此,针对以上特点和应用场景,RFID标签对轻量级密码算法有其自身的不同需求。近年来,针对RFID这类设备的特点,相关人员做了很多工作来实现算法的轻量化。主要有以下两种方法。
通过减少加密过程中的轮数来减少算法实现起来的能量消耗。这种方法主要针对分组加密算法,本质上,分组密码是一种带有密钥的有限轮置换,它的安全性体现在对明文的反复代换上,每一次代换称为一轮,因此减少加密的轮数便可实现算法的轻量化。其次,通过减少密钥的长度可以降低实现起来的复杂度。在对称密码算法中,加密强度的高低往往由密钥的长度决定,针对某些算法适当减少密钥长度可实现算法的轻量化。
目前的轻量级密码算法在设计时针对不同的应用平台,有主要面向硬件实现的、主要面向软件实现的和综合考虑软硬件的混合设计。面向RFID的轻量级密码算法设计大部分都是结合软硬件二者的优点的混合设计,在设计过程中主要有三个指标需要考虑:安全、成本和效率[3],侧重点越不同,算法实现起来的差异就越明显,它们三者的折中关系如图1所示。
图1 安全、成本和效率的折中关系
由图1中可以看出,安全、成本和效率中任意两者的平衡都受到一个因素制约,代换的轮数会影响安全和效率之间的平衡,密钥的长度会影响安全和成本之间的平衡,算法的结构则会影响成本和效率之间的平衡。在设计轻量级的密码算法时,优化其中的任意两个:安全和成本、成本和效率或安全和效率比较容易,因为只需要考虑一个因素,但是如果要在三个目标之间找到一个平衡点则存在一定的难度。因此,在设计轻量级的密码算法时,要结合它的应用环境来满足不同的需求,日常使用的大部分RFID标签都是低成本的、一次性的,例如电子门票这种应用到RFID标签的只需要在某一时间段内保证其安全性就可以。
依据当前的应用环境和研究趋势,轻量级密码的研究主要集中在分组密码、序列密码和散列函数这三种算法上,但也有少部分的非对称加密算法经过验证实现了轻量化。
2.1 分组密码
轻量级分组密码是研究最早也是很有研究价值的轻量级密码算法,因为它具有两个典型的安全结构:Feistel结构和SP网络结构,使用Feistel结构的算法在加密和解密过程中的结构相同,SP网络结构有两层,“S”称作混淆层,“P”称作扩散层,SP结构与Feistel结构相比,最大的优点是密码扩散快。轻量级分组密码无论在实现效率还是在运行功耗上都比传统的AES等高强度加密算法具备明显优势,非常适合RFID等物联网微型设备使用。这些轻量级分组密码有的是在传统的分组密码如AES等基础上的简化,有的是对算法实现组件的改进,如DESL[4]就是用一个全新的S盒替换掉DES中原来的8个S盒,从而大大减少了实现安全组件的等效门数,此外还有其他新设计的轻量级分组密码算法,这些算法主要有三种结构:Feistel网络结构、SP结构和其他结构。有些算法在硬件实现需求上超过了2000 GE,无法应用到RFID标签中,一些典型的符合RFID标签实现需求的算法包括:SEA[5]、PRESENT[6]、KATAN/KTANTAN[7]、mCrypton[8]、MIBS[9]、LED[10]、LBlock[11]、KLEIN[12]等等。下面从三种结构中各选取一个有代表性的算法进行介绍。
SEA算法采用Feistel网络结构,明文和密文长度相同,均为128 bit,有三种密钥长度可供选择,分别为128 bit、192 bit和256 bit,与之对应的加密轮数为6、9和12。该算法全部使用基于字节的运算,并且仅有异或和加两种运算,占用的存储量很低,特别适合在智能卡上运用。
PRESENT算法是由Bogdanov等人[6]在CHES 2007国际会议上提出的轻量级密码算法,该算法的设计思路借鉴了DES算法,但实现起来有很大的差别,DES算法采用的是FEISTEL结构,而PRESENT的轮函数采用SP结构,明文共经过31轮迭代,密钥长度为80 bit的称为PRESENT-80,密钥长度为128 bit的称为PRESENT-128。与其他轻量级算法相比,PRESENT算法无论在软件还是硬件方面实现效率都很高,是典型的超轻量级加密算法,它的提出在轻量级密码的设计史上具有里程碑的意义。
KATAN/KTANTAN算法采用其它结构,是Cannière等人[7]在2009年提出的适用于硬件实现的轻量级密码族,该密码族包括两组,密钥长度均为80 bit,第一组KATAN包含三个分组长度分别为32 bit、48 bit和64 bit的密码算法,第二组KTANTAN包含另外三个密码算法,并且和第一组有相同的分组长度,但有更好的硬件特性。该密码簇在设计思想上借鉴了序列密码,即使用移位寄存器来构造基础组件。KATAN/KTANTAN实现起来最多需要1054个等效门,是专门为RFID标签等资源受限环境设计的轻量级密码算法。
2.2 序列密码
由于不像分组密码那样具备典型的安全结构,用线性反馈移位寄存器来构造安全组件很困难,所以针对序列密码的轻量化研究技术还不是很成熟。随着eSTREAM计划的启动,序列密码软硬件简单、实现效率高的特点逐步受到重视,一些轻量级的序列密码被人们提出。在eSTREAM计划最终入选的算法中,实现所需的安全组件在2000 GE以内,能够满足RFID应用场景的算法有以下两类:
适用于软件实现的轻量级序列密码有:HC-128[13],它是HC-256算法的简化版,由初始化算法和密钥流算法构成,它的密钥和初始化向量都为128 bit,运行速度比HC-256慢,但HC-128的安全性能较高,至今还没有对其有效的分析方法。SOSEMANUK[14]由Berbain等人提出,它的设计结合了流密码SNOW2.0和分组密码SERPENT的优点,密钥长度介于128 bit和256 bit间,SOSEMANUK算法最大的特点就是不仅继承了其它算法的优点,还在结构上进行了改进,在一定程度上降低了威胁发生的概率,达到了轻量级密码对安全性和实现效率的要求。Rabbit[15]由Boesgaard等人提出,包含移位、异或、模232加、级联等操作,简单有效,既有利于软件实现,也有利于硬件实现。Salsa20[16]在软件组中被认为是最适合RFID等受限设备的轻量化算法,它是由Daniel J.Bernstein提出的基于512 bit输入,512 bit输出的hash函数的密码算法,密钥长度为256 bit和128 bit,算法操作简单,易于实现。
适用于硬件实现的轻量级序列密码有:Grain[17],它由Hell等人设计,算法分为密钥流产生和初始化两个过程,密钥长度为80 bit,还有改进版本的Grain-128,密钥长度为128 bit,比较适合在RFID等资源受限平台下使用。Trivium[18]算法虽然结构简单,安全性较高,但硬件实现需要2600 GE,不适用于常用的RFID标签。
此外,还有专门为RFID标签设计的WG-7[19]算法和A2U2[20]算法。WG-7算法的密钥长度为80 bit,初始向量为81 bit,都是为RFID而专门进行的参数化设计。文献[19]经过严格的安全性分析证明WG-7算法能够有效抵御差分攻击、代数攻击、相关攻击等攻击方法,是能够满足RFID标签实现需求并非常有应用前景的一种算法。A2U2是一种专用轻量级序列密码,它结合了序列密码的设计原则和分组密码的设计方法,并且充分考虑资源受限设备的特点,硬件实现代价很低,最多仅需300 GE[20],是目前最轻量级的序列密码。
2.3 杂凑函数
杂凑函数也称hash函数,它是一种只能用于正向计算的单向函数,想要通过逆向运算计算输入参数非常困难,杂凑函数被广泛应用于RFID认证协议中,自从PRESENT算法被提出后,很多基于PRESENT的轻量级hash函数被提出,但是大部分算法实现所需的组件数量都超过了2000 GE,例如文献[21]提到的一系列算法中,C-PRESENT-192算法实现所需的等效门数为4600 GE,H-PRESENT-128需要2330 GE,只有DM-PRESENT-80算法实现需要1600 GE,能够满足RFID的应用要求。此外,还有一些采用sponge[22]结构设计的算法,能够用于RFID的算法有:QUARK[23]、PHOTON[24]和SPONGENT[25],其中SPONGENT是目前最轻量级也是最有研究价值的hash函数族,它在CHES 2011会议上被提出,根据输出的哈希值长度分为SPONGENT-88/128/160/224/256五种函数,实现起来所需的安全组件也都在2000 GE以内,符合RFID标签的应用需求。SPONGENT-88实现起来需要738 GE,适用于RFID等资源受限和安全性要求较低的环境中。SPONGENT-128和SPONGENT-160的实现分别占用1060 GE和1329 GE,它们能够适应资源更加受限的环境。所以SPONGENT算法在所有的轻量级杂凑函数中非常有竞争力。
2.4 非对称密码
非对称密码在加解密时使用的密钥不同,像RSA、ECC等公钥密码体制,实现起来就已经相当复杂了。这种固有的复杂性使得非对称密码在实现绝对轻量化时存在一定的困难,同时,复杂性也说明在安全性方法有一定的优势,所以对非对称密码进行轻量化的研究也有一定的必要性。虽然有的算法实现了轻量化,但由于安全组件数量的限制,能够满足RFID设备硬件实现需求的很少。在文献[26]中Saarinen提出了一种基于Rabin的混合公钥加密体制BlueJay,它适用于微传感器和RFID认证标签等超轻量化平台。BlueJay使用了随机数乘法并结合了中国剩余定理,在保证相同的安全性前提下,BlueJay实现起来比传统的非对称密码RSA和ECC效率更高,更轻量化。
轻量级密码主要用于低成本和资源受限的设备中,这些设备在日常生活中使用非常广泛,一旦被攻破,会造成巨大损失。轻量级密码算法在设计时既要保证安全性又要注重实现效率,然而这两者却相互制约,当提高算法的执行效率时,安全性就会在一定程度上受到影响。所以,对轻量级密码算法的安全性进行分析和研究非常有必要。密码分析就是利用算法设计的弱点对算法进行破译,在对轻量级密码进行分析时主要有两种方法:一种是根据算法本身的代数结构进行分析,另一种是绕过对算法本身结构的分析,利用算法实现过程中所泄露的信息,如功耗、故障和电磁辐射等对密码进行破解,也就是旁路攻击。
目前,已经有很多人对轻量级密码算法进行了安全性分析,针对不同的密码类型有不同的分析方法。针对分组密码的分析方法有:线性分析[27]、差分分析[28]和强力攻击[29]等。其中线性分析和差分分析经过多年的发展,已经有很多不同的方法推广,例如不可能差分分析、高阶差分分析、多重线性分析和划分密码分析等。针对序列密码的分析方法有:代数攻击、线性区分攻击、相关攻击等[30],其中利用代数攻击对序列密码的安全性进行分析效果最好,研究表明序列密码最常遭受也是代数攻击[31]。针对hash函数的分析方法有[32]:碰撞攻击、原像攻击、第二原像攻击和差分分析等,其中差分分析是最有效的分析方法也是密码安全性判别的主要依据。
在对典型的轻量级密码进行安全性分析的过程中,旁路攻击对算法的安全造成了很大的威胁,因为设备在算法执行的过程中,都会不可避免地泄漏功耗、电磁辐射等信息。在文献[33]中Zhang等人使用选择明文功耗攻击对KATAN32算法进行分析,结果表明只需要统计160条功耗波形和160个固定明文就可以成功破解算法,说明该算法不能抵御功耗攻击。在文献[34]中Bogdanov等人针对KTANTAN算法提出一种中间相遇的攻击方法。在文献[35]中杨林等人提出一种针对MIBS算法的约减轮的差分分析方法。在文献[36]中薛红等人指出LBlock算法在实现过程中容易受到代数旁路攻击。文献[37]证明使用一种改进的代数故障攻击方法可以对LED和MIBS算法进行有效分析。文献[38]针对LED算法进行了代数差分故障攻击,证明仅用一次的故障注入就可以在短时间内破解密码,恢复出正确的密钥。PRESENT是最具代表性的密码算法,它能在很大程度上抵御线性分析和差分分析,很多学者都对其进行了安全性分析。在文献[39]中Collard等人对PRESENT算法进行饱和攻击,利用已知的235.6对明密文对可以对15轮的PRESENT进行破解,但是无法破解31轮的PRESENT。在文献[40]中葛十景等人经过数小时的实验,利用代数分析方法可以破解6轮的PRESENT,但是也无法破解31轮的PRESENT。文献[41]利用S盒和P盒的相关性质,总结出约减轮PRESENT的5到15轮的差分特征。此外,还有很多针对PRESENT的分析方法,如文献[42]提到的侧信道立方攻击方法,文献[43]提到的结合Linear hull的弱密钥攻击方法等。现代密码算法在设计时已经能够充分考虑到各种可能存在的攻击方法,所以在对密码算法进行分析时,只单纯地使用一种方法很难找到算法的弱点,要想得到良好的攻击效果,必须将各种有效的分析方法结合起来。
在对轻量级密码进行分析时,算法的实现性能也是一个不容忽视的重要因素,虽然都是轻量级算法,各算法在实现起来的性能表现有很大不同,尤其是针对软件和硬件实现所需消耗的资源参数不同,有的算法适合在硬件上实现,有的适合在软件上实现,在硬件实现上主要体现在占用的面积,即等效门数,在软件实现上主要体现在占用RAM和ROM的内存量上。近几年针对算法在fpga硬件平台上的实现方法和优化研究较多,文献[44]中邹祎等人针对LBlock算法的硬件实现和优化进行了研究,并提出了一种可以有效减少算法实现面积的优化方法。文献[45]中徐远泽等人通过设计硬件结构,对LBlock和PRESENT-128算法在FPGA平台上的实现进行了比较研究,得出两种算法的各自优缺点。文献[46]中刘波涛等人通过在FPGA平台上实现的方式,设计了一种LED与PRESENT算法的重构实现方法,该方法在保证加密速度的前提下,使实现面积缩小了一倍。文献[47]中李浪等人设计了一种针对Piccolo算法的硬件优化方法,既提高了加密效率又降低了实现面积。表1针对部分适用于RFID的轻量级密码算法所适合的实现平台,归纳了算法实现所消耗的资源参数。
表1 各算法实现性能比较
相对于传统密码算法,轻量级密码算法的研究开始较晚,在安全性、成本和效率等方面都存在很多需要深入研究的问题:
(1) 大部分的研究集中在对密码算法的攻击上,而对如何增强轻量级算法的防御性能的研究却比较少,研究表明很多算法都存在针对旁路攻击的脆弱性,如何提高算法抗旁路攻击的能力需要算法设计者着重考虑。
(2) 与轻量级分组密码相比,序列密码缺少相应的安全结构,用线性反馈移位寄存器构建安全组件目前还存在很多困难,如何充分利用序列密码加解密效率高、结构简单的特点设计出成本更低、更适用的轻量级密码仍是当前的研究热点。
(3) 针对非对称密码算法固有的复杂性,实现其绝对的轻量化还存在一定的困难。
(4) 目前已设计出大量的轻量级密码算法,由于实现平台的标准不同,参数不一,很难确立通用评价指标,例如针对RFID标签此类设备的特点及应用场合,缺少一套完整的密码算法评价体系。
随着物联网技术的飞速发展,轻量级密码算法的研究和应用已成为RFID等资源受限设备的必然选择,很多算法在设计时的侧重点不同,实现起来在安全、成本和效率各方面的表现也存在很大的差异,能够真正应用到资源受限设备的算法还很少。同时,不同的设备对算法的需求不同,以RFID标签为例,大部分都应用在像电子门票这种成本很低的环境中,对安全性的要求不是很高,更注重的是减少算法实现起来资源的消耗。
因此,设计针对不同应用平台的轻量级算法,完善指标评价体系将会成为研究的热点。针对以上问题的研究和探讨,将有利于轻量级密码算法在RFID等资源受限设备中得到更广泛的应用。
[33] Zhang L, Gu D, Guo Z, et al. Correlation power analysis and implementation on KATAN32 cipher[J]. Journal of Computer Applications, 2011, 31(2): 504-506,510.
[34] Bogdanov A, Rechberger C. A 3-subset Meet-in-the-middle Attack: Cryptanalysis of the Lightweight Block Cipher KTANTAN[C]//Proceedings of the 17th International Conference on Selected Areas in Cryptography, 2011: 229-240.
[35] 杨林,王美琴. 约减轮的 MIBS算法的差分分析[J]. 山东大学学报(理学版),2010,45(4):12-15,20.
[36] 薛红,赵新杰,王小娟. LBlock分组密码代数旁路攻击[J]. 华中科技大学学报(自然科学版),2013,41(6): 55-60.
[37] Zhang F, Zhao X, Guo S, et al. Improved algebraic fault analysis: a case study on Piccolo and applications to other lightweight block ciphers[EB/OL]. [2014-03-05]. http://www.engr.uconn.edu/~zshi/publications/zhang13_improved_afa.pdf.
[38] Jovanovic P, Kreuzer M, Polian I. An algebraic fault attack on the LED block cipher[EB/OL]. [2014-03-06]. http://eprint.iacr.org/2012/400.pdf.
[39] Collard B, Standaert F X. A statistical saturation attack against the block cipher PRESENT[C]//Proceedings of the Cryptographers’ Track at the RSA Conference on Topics in Cryptology, 2009: 195-210.
[40] 葛十景,谷大武,刘志强,等. 针对PRESENT分组密码算法的代数分析[J]. 计算机应用研究,2011,28(5): 1889-1893.
[41] Wang M. Differential Cryptanalysis of Reduced-round PRESENT[C]//Proceedings of the Cryptology in Africa 1st International Conference on Progress in Cryptology, 2008: 40-49.
[42] Yang L, Wang M, Qiao S. Side Channel Cube Attack on PRESENT[C]//Proceedings of the 8th International Conference on Cryptology and Network Security, 2009: 379-391.
[43] Nakahara J, Sepehrdad P, Zhang B, et al. Linear (hull) and Algebraic Cryptanalysis of The Block Cipher PRESENT[C]//Proceedings of the 8th International Conference on Cryptology and Network Security, 2009: 58-75.
[44] 邹祎,李浪,贺位位,等. 轻量级密码算法LBlock的FPGA优化实现[J]. 计算机系统应用,2015,24(7): 240-243.
[45] 徐远泽,张文科. RFID加密算法的FPGA实现研究[J]. 信息安全与通信保密,2015(2): 84-88,91.
[46] 刘波涛,李浪,贺位位,等. 一种LED与PRESENT密码算法重构实现研究[J]. 衡阳师范学院学报,2015,36(3): 156-161.
[47] 李浪,刘波涛,余孝忠,等. 一种Piccolo加密算法硬件优化实现研究[J]. 计算机应用研究,2015,32(10): 3056-3059.
A RESEARCH SUMMARY ON LIGHTWEIGHT CRYPTOGRAPHIC ALGORITHMS FOR RFID
Wang Ya Wei Guoheng
(DepartmentofInformationSecurity,NavalUniversityofEngineering,Wuhan430033,Hubei,China)
With the rapid development and popularization of the Internet of things technology, the security of RFID and other resource constrained devices is becoming more and more important, research on the lightweight cryptographic algorithms which applied in this kind of device has become a hot research in recent years.The research progress, design methods and security analysis of the lightweight cryptographic algorithms for RFID devices are summarized.Firstly, the common methods and key issues in the design of lightweight cryptography are introduced andthe typical lightweight algorithms which can be applied in RFID devices are summarized. Besides, not only the security analysis method for lightweight password is introduced, but also the threat of side channel attacks is highlighted. Then the realizing performance of some algorithms are compared. Finally, the problems and possible research directions of the current and future lightweight cryptography research are further clarified.
RFID Lightweight cryptographic algorithm Security analysis
2015-10-16。汪亚,硕士生,主研领域:网络安全。魏国珩,副教授。
TP309
A
10.3969/j.issn.1000-386x.2017.01.002