您好,欢迎访问三七文档
轻量级密码研究进展综述摘要:随着物联网的发展,RFID、无线传感器的应用越来越广泛,为了保护这类资源受限设备所传输、处理的数据,轻量级密码应运而生,并成为密码学的一个研究热点,取得了丰富的研究成果。本文介绍了轻量级密码的研究进展,包括轻量级密码的设计要求及设计特点、典型的轻量级分组密码和流密码,并总结了轻量级密码的实现性能和安全性。关键词:分组密码流密码轻量级硬件效率设计分析1.引言随着信息技术、计算机技术以及微电子技术的高速发展,RFID技术开始被大量应用于生产自动化、门禁、公路收费、停车场管理、身份识别、货物跟踪等领域,而由RFID技术与互联网结合实现的物联网作为新一代信息化浪潮的典型代表正逐步深入到人们生活的各个领域中,例如环境监测、现代物流、智能交通等。2009年我们国家提出建立“感知中国”中心,这一举措极大地促进了国内RFID技术和物联网应用的发展。作为信息传递和处理的网络,全面感知、可靠传送和智能处理是物联网的核心功能。要实现可靠数据传送必须以密码算法为基础提供相应的安全服务,所以相应的密码算法研究是保障物联网安全运行的关键技术之一。而与物联网关系密切,也需要密码算法作为基础支撑的无线传感器网络也是近年来发展迅猛的领域之一。作为密码算法的使用环境,无线传感器和物联网具有共同的特征:首先,它们的应用组件不同于传统的台式机和高性能计算机,而是计算能力相对较弱的嵌入式处理器;其次,由于应用环境的关系,计算可使用存储往往较小;最后,考虑到各种设备的功能需求,能耗必须限制在某个范围之内。因此传统密码算法无法很好地适用于这种环境,这就使得受限环境中密码算法的研究成为一个热点问题。适宜资源受限环境使用的密码算法就是所谓的轻量级密码。源于应用的推动,近几年,轻量级密码的研究非常热,取得了丰富的研究成果。国际标准化组织正在制定轻量级密码的相关标准,其中包括轻量级的分组密码、流密码、数字签名等。本文介绍轻量级密码的研究进展,包括轻量级密码的设计要求及设计特点、典型的轻量级密码算法,以及典型的轻量级密码算法的实现效率和安全性分析。2.设计需求及特点2.1轻量级密码的特点轻量级密码与传统密码相比有几个特点:首先,资源受限的应用环境通常处理的数据规模比较小,因此,对轻量级密码吞吐量的要求比普通密码要低的多;其次,RFID和传感器等应用通常对安全性的要求不是很高,适中的安全级别即可;再次,轻量级密码大多采用硬件实现,由于实现环境条件的限制,除了安全性之外,轻量级密码算法追求的首要目标是实现所占用空间及实现效率。简单的说,就是应用环境对轻量级密码硬件实现的芯片大小有严格的限制。在这些环境下,为了追求实现,轻量级密码有的不实现密钥扩展算法而是采用机器内置密钥;有的不提供解密算法。这些特点使得轻量级密码的密钥长度多为64比特和80比特。需要特别强调的是,轻量级其实是依据密码的应用环境、实现的资源需求提出的一个概念,所以严格来讲轻量级可以指密码的轻量级实现,也可以指轻量级密码。前者是指普通环境中可以使用的传统密码(如DES、AES等)经过实现技术上的改进,可以满足资源受限环境的需求,例如,已有研究者提出了一种低功耗、低成本的AES实现,该实现仅需要等效门(GE)3200[1]。后者则指针对某种或是某类资源受限环境特别设计的密码算法,例如,PRESENT[2]。当然,也有从改进实现技术和对组件进行轻量化两个方面入手的设计,比如DESL类算法[3]。2.2轻量级密码的设计轻量级密码的设计目的不是要代替传统密码,而是要适用于资源受限的设备,且能提供足够的安全性,并有良好的实现效率。每个轻量级密码设计者都要在安全、成本和实现效率之间权衡。对于分组密码,密钥长度提供一个安全和成本的平衡,而总的轮数提供一个安全和实现效率的平衡,硬件结构则提供成本和效率的平衡。一般来说,优化这三个设计目标中的任意两个安全和成本、安全和效率或成本和效率是比较容易的;但是要同时优化三个设计目标就困难了。例如,通过采用流水线和抗边信道的结构可以获得安全和高效的硬件实现,但结果是需要更多的面积,当然还有高成本。另一方面,设计一种安全低成本的硬件实现也是可能的,但在效率方面会有缺点。安全永远是密码算法追求的第一目标,但在轻量级分组密码的设计中,由于在资源受限环境中对于安全的要求一般不是特别高,所以算法实现效率就成了首要考虑的问题,轻量级分组密码设计处处都体现着安全性与效率的平衡和博弈。首先,基于资源受限的要求,大多数轻量级密码算法采用4×4的S盒,这便是效率优先的一个抉择。其次,扩散层一般采用易于实现的拉线方式,同时保证雪崩效应。目前,除了改进原有密码算法的实现技术来适应受限环境的应用之外,轻量级密码的设计主要通过两种方法实现。第一种方法就是在现有密码算法的基础上,对密码算法的组件进行轻量化的改进,例如,将不同的S盒换成相同的S盒,这样如果使用串行结构,便可以使S盒实现面积减少为原来的1/m(m为算法中使用的S盒数目),降低密码算法实现的资源需求。第二种方法就是从零开始,设计一个全新的轻量级密码算法。除了安全性外,要把实现作为设计的第一准则,加入每个组件时都要考虑到该组件的实现是不是符合轻量级。第一种方法本质上是借助已有算法结构的安全性和健壮性,在尽可能不损失安全性或是提高安全性的情况下向轻量级方向进行改进。这种方法的优点是设计工作量小,安全性分析也因为有原算法的分析而相对容易。但是不可避免的也会有一些缺点:首先算法实现所需的资源受到原算法结构的限制,因此选择基础算法时应该选择实现效率比较好的算法。其次新的改动势必会使算法具有一些新的特点和弱点,所以利用这种方式设计的轻量级算法有可能遭遇新型攻击。第二种方法更加灵活,没有固定算法的限制,设计者可以更好地利用可行的方式使得算法的实现效率尽可能少。但是,这种方式设计出的密码算法需要进行大量的安全性分析。3.典型的轻量级密码3.1分组密码3.1.1DESLDES类轻量级密码[4]最早公布于RFIDSec06,它是在DES的基础上进行轻量化的设计,主要考虑的是使用可减少门电路复杂度的串行硬件体系结构,所以将原来DES中使用的不同S盒都换成相同S盒,这样改进后的密码算法被称为DESL。针对DES密钥长度太短的缺陷,设计者加入了扩充密钥空间的操作,前后各加一轮白话子密钥,增加穷举攻击的难度;这样改进的DES称为DESX。而将这两步改进同时作用于DES便得到了DESXL。DES是面向硬件的密码算法,有数据统计[5]DES所需的逻辑资源仅仅是AES的6%,并且比AES有更短的关键路径。所以以DES为基础的DESL也有良好的硬件特性。在实现中DESL采用面向4比特或是6比特字的串行结构,而不是面向32比特或是48比特,虽然这种实现势必会减少吞吐量,但是也使得实现面积大幅减少。而DESXL的实现也只需在加密前后各加一个异或门而已。同DES的实现一样,轻量级密码算法因为对于吞吐量的要求不是很高,所以通常采取的提高实现效率的一种方法就是用减少吞吐量来换取更小的实现面积,DESL采用上面所说的方法需要的GE数可以减少到1850,比起DES的最好实现(2310GEs)减少了大约20%。经过优化的DESL的ASIC实现需要1848GEs,加密64比特明文需要时钟周期数是144。在频率为100Hz的环境下吞吐量是5.55kbps。为了增强DESL的安全性,设计者除了加入DESXL版本为,在选择S盒上做了大量工作。针对DES的差分和线型密码分析的一些结果,设计者在DESL中使用了加强版的S盒,设计S盒时增加了8个限制条件,来提高算法抵抗差分和线型密码分析的能力。3.1.2HIGHTHIGHT[6]是由HongD.,SungJ.,HongS.等人在CHES2006上提出的轻量级分组密码。设计者声称HIGHT不仅包含一系列面向轻量级的简单操作,而且还能提供足够的安全性。HIGHT是一个32轮的迭代密码,分组长度为64比特,密钥长度是128比特;HIGHT的整体结构类似于CAST-128[7],采用一种广义Feistel结构,轮函数规模非常小,输入和输出都是8比特,且轮函数没有用S盒,只使用循环移位、异或和模加操作。HIGHT所采用的广义Feistel结构对轻量级密码来说是个好的选择。因为既可以利用结构本身的安全特性,而且在硬件实现时不会增加代价,对于设计者来说轮函数的设计也可以自由发挥。考虑到资源受限环境中使用的处理器,HIGHT的轮函数中使用了两个内部函数F0和F1,这两个函数提供了比特级的扩散。既提供了良好的安全特性,而且使用了尽可能少的硬件消耗。子密钥实在加密过程中通过密钥扩展算法得到的,所以密钥寄存器只需要存储128比特的主密钥,这使得HIGHT的应用更贴近轻量级的环境。HIGHT的硬件实现需要3048GE,在80MHz的处理器上吞吐量为150.6Mbps。设计者对于HIGHT的安全性进行了全面的分析。对于差分密码分析、线型密码分析、截断差分密码分析、不可能差分密码分析、饱和攻击、飞来去器攻击、高阶差分攻击、代数攻击和相关密钥攻击都给出了相应的分析。文献[8]对HIGHT抵抗饱和攻击的能力进行了分析,给出了22轮HIGHT的饱和攻击。文献[9]给出了31轮HIGHT的相关密钥攻击和26轮HIGHT的不可能差分攻击。3.1.3PRESENTPRESENT最早发布于CHES2007,是比较有竞争力的一个轻量级分组密码,它的硬件实现需求可以和主流的流密码相媲美,所以它也被称为超轻量级密码算法。PRESENT的整体结构采用的是31轮的SP结构,每轮由轮密钥加、混淆层、扩散层P三部分组成。算法分组长度为64比特,密钥长度80比特或128比特。设计者声称对于资源受限环境80比特密钥已足够,不建议使用128比特密钥。PRESENT的混淆层由16个4×4的S盒并置而成,S盒的硬件实现性能不错,其GE数远远小于8×8的S盒,而且使用相同的S盒,可以使用串行实现,牺牲一些效率来换取更小的实现面积。扩散层P是比特置换,这几乎可以说是硬件实现效率最高的操作,因为在硬件实现中只需要线路的变化即可完成。PRESENT面向硬件的设计使得它有很好的硬件实现效率:实现PRESENT-80的GE数只需要1570,在频率为100KHz的芯片上吞吐量能达到200kbps,模拟测得的能量消耗只需要5μW,这些数据使得PRESENT在轻量级密码中极具竞争力。设计者在考虑实现效率的同时,也没有忽略安全性。PRESENT选取的4×4的S盒具有很好的密码特性,不仅考虑了抵抗差分攻击的特性,还增加了加强雪崩效应的性质。设计者给出证明,任何5轮差分特征至少有10个活动S盒。而且由于扩散层P是面向比特的,所以很多杜宇AES有效的面向字节攻击都无法发挥作用。当然PRESENT在8位处理器上的性能没有优势。自从PRESENT提出之后,算法分析人员对其作了一系列的分析工作。文献[9]提出了对17轮PRESNET的相关密钥矩阵攻击,攻击时间复杂度为2104次内存访问。文献[10]采用代数攻击与侧信道攻击结合哦方法给出了PRESENT的代数侧信道攻击,在已知明密文且得到连续17轮侧信息的情况下,可以高于60%的成功率会付出密钥。文献[11]基于立方攻击结合侧信息恢复PRESENT的密钥,如果第三轮的输出有泄漏,便能恢复PRESENT的80比特密钥。3.1.4MIBS密码算法MIBS[12]是MaryamIzadi等人在CANS2009上提出的一个轻量级分组算法。分组长度为64比特,密钥长度有64比特和80比特两个版本。整体结构采用Feistel结构,加密过程包括32轮。轮函数包括轮密钥加、S盒替代及P扩散,各步操作均是面向4比特的结构。S盒采用8个相同的4×4的S盒,P层采用的是4比特宽度的异或和交换。MIBS结构简单,F函数的实现跟PRESENT的轮函数相似,都是SP结构,只不过在P扩散时,MIBS采用了异或的方式,而PRESENT是比特置换的方式。在这一步操作中,PRESENT的硬件实现要比MIBS具有更好的实现
本文标题:轻量级密码研究综述
链接地址:https://www.777doc.com/doc-1993516 .html