基于Grain-v1算法的国军标安全认证协议

2016-11-21 05:13李建成王宏义苏昌文郑妙霞
信息安全研究 2016年6期
关键词:读写器加密算法功耗

谭 洋 李建成 王宏义 苏昌文 郑妙霞

1(国防科学技术大学电子科学与工程学院 长沙 410073)2 (湘潭大学材料与光电物理学院 湖南湘潭 411100)



基于Grain-v1算法的国军标安全认证协议

谭 洋1李建成1王宏义1苏昌文1郑妙霞2

1(国防科学技术大学电子科学与工程学院 长沙 410073)2(湘潭大学材料与光电物理学院 湖南湘潭 411100)

(tanyangnudt@126.com)

随着RFID的安全问题日益严重,安全通信受到越来越多的关注.安全通信的前提是安全认证协议和安全加密算法.提出一种将Grain-v1算法与自主标准安全认证协议相结合的安全方案.讨论了RFID国外标准和我国自主标准的优缺点,详细阐述了自主标准双向认证协议和安全通信协议的工作原理.考虑到流密码资源开销相对较少、硬件实现比较方便等优点,选取了Grain-v1流密码算法,并详细介绍了其算法原理, 分析内部状态跳转,设计硬件架构,结合软件进行仿真调试.最后对Grain安全性问题及其改进进行了讨论.

无线射频识别;安全通信;认证协议;加密;流密码

无线射频识别(radio frequency identification, RFID)是一种非接触的自动识别技术,通过利用电磁波的特性传递信息,能够对单个物体对象进行机器的自动识别,可以在各种恶劣的环境中工作,极大地方便了人们对各类物体(包括人)的辨识和管理.目前该项技术已经广泛应用于各种生产活动以及日常生活.例如物流管理、零售结算、门禁系统、公交卡、校园卡等,作为物联网的关键技术,其在未来10年的发展必然是不可限量的[1].

随着射频识别系统应用被越来越广泛地使用,该项技术的安全问题正逐步引起各方面的关注.在研究RFID射频识别技术的过程中,安全威胁与隐私威胁已经在某种程度上限制了RFID技术的发展,安全和隐私问题亟待解决.目前RFID技术所采用的安全保护机制主要是物理安全机制和安全协议[2].比较常见的物理安全机制的方法有Kill命令、阻塞标签、夹子标签、假名标签、静电屏蔽等[3].使用物理安全机制需要增加额外设备或者让标签进行一定的改造,成本高而且有一定的局限性.安全协议相比较基于物理方法的硬件安全机制受到更多的关注,其主要通过认证协议和消息加密传输来保证数据安全性.

目前国内已见报道的Grain算法文献多集中于对Grain_128算法的研究.文献[4]设计了Grain-128硬件架构并在FPGA上进行实现;文献[5]在相互认证机制中应用了Grain-128a算法;而文献[6]采用的是其课题组自行研究的协议结合Grain-v1的一种方案.而针对国军标协议与Grain-v1相结合的报道相对较少.

1 自主标准安全协议

在超高频RFID领域里,大部分标签芯片采用的都是国外标准,其中ISOIEC 18000-6C(以下简称6C)被广泛使用,6C仅仅提供了3种简单的安全机制:Lock命令、安全状态、口令保护[7].然而现有的安全机制仅能够应对部分威胁,对于窃听标签信息的威胁完全起不到任何作用,因为标签中重要、敏感的信息均没有经过加密处理,而直接在无线信道中进行传播,任何符合协议的读写器均能够获得该信息.例如,6C标准在保护数据上的措施是在执行写入操作时将待操作的数据和一个16 b的随机数进行异或运算后再传输,如果这个随机数被截取下来,那么根据16 b的随机数就很容易分析出要写入标签的信息,甚至冒充合法读写器对标签的数据任意篡改[8].

鉴于6C的安全问题,具有我国自主知识产权的RFID标准:《军用射频识别空中接口第一部分:800900MHz》(以下简称自主标准)[9],该标准于2011年9月6日发布,10月1日正式实施.自主标准在安全问题上作了很大的优化,根据数据的保密级别的不同,对应不同的情况可以选择工作在安全模式下或者非安全模式下.如果工作在安全模式下,读写器和标签在通信之前必须遵循安全鉴别协议进行认证.自主标准通过认证协议和消息密文传输保证数据安全.安全鉴别通过后,数据明文被加密算法加密成密文传输.其安全性的保证主要在于读写器每次向标签发起请求时都会产生一个随机数,且随机数的更新是动态的.基于该机制,使得恶意搜集、伪装威胁和拒绝服务等攻击很难奏效.

2 双向认证协议与安全通信协议

自主标准有3种认证协议,分别为标签对读写器的单向鉴别协议、读写器对标签的单向鉴别协议和读写器与标签间双向鉴别协议,本文主要研究双向鉴别协议.读写器和标签的双向鉴别协议流程如图1所示:

图1 双向认证流程

协议具体过程如下:

双向鉴别通过之后需要按照安全通信协议进行通信[10],图2为安全通信协议的流程图:

图2 安全通信协议

具体协议过程如下:

读写器和标签通过双向认证后便可以按照安全通信协议流程进行通信,读写器生成随机数RNr,使用双向认证协议中产生的会话密钥SK,利用加密算法将随机数和相关命令加密成密文,发送给标签.标签收到命令后,使用SK解密来自读写器的数据,根据命令执行对应操作,并产生随机数RNt,如果产生响应数据或需要返回数据,便使用SK将响应数据和随机数RNt加密返回给读写器.读写器与标签的随机数是动态更新的,即每一次通信命令的随机数都不一样,该机制能够很好地抵抗跟踪、重放攻击等安全威胁.

3 Grain-v1算法

流密码是当前主流算法之一,与传统的分组密码算法相比,在RFID系统实际应用中更具优势,这是因为RFID读写器发送给标签的每条指令长度都不相同,同时标签返回给读写器的每条数据内容也不尽相同,如果采用固定输入、输出长度的分组密码算法,那么当分组长度过长时,分组中多余的长度没有使用而造成浪费;当分组长度过短时,则需要多次使用加密算法进行处理,造成功耗和时钟周期上的浪费.流密码算法可以对每个字符进行处理,而且不会受到数据长度的限制[11].

Grain算法是eSTREAM计划的最终候选算法之一,是由瑞典学者Hell,Johansson和Meier共同提交的面向硬件实现的二进制同步流密码.Grain算法有3个版本:Grain-v0,Grain-v1[12]和Grain-128[13].3个版本的结构基本相同,其中Grain-v0和Grain-v1的LFSR和NFSR均为80 b,内部状态共160 b;Grain-128的LFSR和NFSR均为128 b,内部状态均为256 b.使用Grain-v1能够满足RFID众多应用的安全等级,使用Grain-128则需要增加额外的门数和功耗,故本文采用Grain-v1算法.

Grain-v1加密算法主要思想是:按位设计、基于线性反馈移位寄存器、较小的附加函数、在提供额外硬件条件下可以加快速度.该算法主要包括3个部分:一个LFSR(线性反馈移位寄存器)、一个NFSR(非线性反馈移位寄存器)和一个非线性布尔函数.LFSR和NFSR均为80 b,内部状态为160 b.实现过程为NFSR和LFSR按位异或,非线性布尔函数的输出再反馈到2个移位寄存器中.其主要原理如图3所示:

图3 Grain-v1算法结构

整个密钥流产生的主要步骤可以分为以下3个阶段:

1) 初始态预置.在NFSR中置入80 b密钥,在LFSR前64 b中置入64 b初始化向量,后16 b初始化为全1状态(LFSR不能被初始化为全0状态).

2) 密钥流初始化阶段.初态预置完毕后,密钥流生成器按照初始化算法运行160步,在运行过程中输出函数的值并不作为密钥流输出,而是分别反馈到2个移位寄存器中去.

3) 密钥流产生阶段.每运行一个周期就产生一位密钥流(可以用更多的硬件资源来换取速度),同时2个移位寄存器内部状态也发生改变.

Grain-v1算法的电路控制是通过一个状态机来实现的.整个算法电路由3个状态组成:S0,S1和S2,其中S0为算法电路初始化中的密钥和初始向量加载阶段,S1为电路初始化运行阶段,S2为密钥产生输出阶段.当电路复位以后的第1个时钟周期,电路进入S0状态,开始从外部读入80 b密钥和64 b初始向量并存储于相应的寄存器中;然后控制电路产生初始化控制信号,电路进入S1状态,计数器count开始控制计数;当计数器计数周期达到160个时钟周期时,电路进入S2状态,开始产生密钥输出,如图4所示:

图4 算法电路状态机

根据上面所述的Grain-v1算法原理,具体的实现的算法模块框图如图5所示.

图5 算法模块

模块共有7个端口.其中,clk,rst,en,key,iv为算法原理要求的输入端,o_vld和z为输出端口.其中rst,en,o_vld分别为算法模块的复位信号、使能信号和输出有效信号,使整个算法模块能够真正嵌入到RFID标签芯片中使用.

在模块的5个输入端口中,clk表示时钟信号;key和iv分别表示80 b密钥和64 b初始向量;rst表示模块复位信号,当rst=1时开始加载密钥和初始化向量.en为模块使能信号,当en=1时模块能正常工作,en=0时模块关断.

模块的2个输出端口中,o_vld表示输出有效信号,z表示输出密钥流.当o_vld=1时表示输出有效,此时标签就可以使用z作为加解密的密钥流.

本文设计的Grain-v1算法主要是通过数字电路来实现,在作综合时发现绝大部分功耗来源于动态功耗,动态功耗主要来源于电源电压、等效电容和工作频率.本文在降低动态功耗方面做了以下几项工作:

在工作频率方面,自主标准对反向链路频率允差有苛刻规定,为了达到时钟精度要求,时钟频率需大于1.60 MHz[14],本文选取1.92 MHz作为模块工作频率.Grain-v1算法开始运行到产生密钥流至少需要240个时钟周期,即算法模块产生密钥所需的时间为125 μs,符合实际应用时间(300 μs)的要求.

动态功耗与工作电压的平方成正比[15],降低工作电压能大大降低动态功耗.但由于过低的工作电压可能造成半导体器件无法正常工作.综合考虑,本文设计的模块使用1.0 V的工作电压.

使用门控时钟技术,设计的算法中加入了en(使能信号),目的是为了当不需要该模块工作时,通过门控信号把输入到该电路的时钟关闭,这将大大降低电路的动态功耗.

控制逻辑中的有限状态机的赋值对功耗大小影响很大,不同的有限状态机的赋值可以产生完全不同的随机逻辑.在确定的原始输入概率下可获得状态之间转换的概率(如从S1到S2转换的概率).通过使转换概率高的状态间变化位数少,使得状态机工作时总跳变位数最小化.

操作数隔离是指在某个组合逻辑的输出在下一个周期不需要时,可以在该周期对其进行控制关断,密钥流输出z只有在S2阶段才有效,因此在S0和S1阶段并不需要输出z,也就是不需要使用z_tmp(内部变量)对z进行赋值,避免其进行无用的运算,进而降低功耗.

本文实现的算法每个时钟周期输出1 b密钥流,虽然速度较慢,但功耗和占用面积小,符合在RFID标签上集成应用的要求.根据文献[12]所述,通过简单增加硬件开销能够成倍地提升算法输出的吞吐量.假设t为算法速度提高的倍数,为了实现这一特性,需要增加t-1倍的g(x),f(x)和及预输出函数,算法最高可以支持t=16 b周期的密钥流输出,但是模块功耗和占用面积相应地会有成倍的增加,如表1所示:

表1 不同倍数下的面积与吞吐率

4 时序仿真

在本文研究中,Grain-v1算法采用Verilog HDL语言编写,并在Synopsys公司的NC Verilog仿真软件中进行了仿真调试.仿真的关键信号的时序波形如图6所示:

图6中,state信号表示模块所处的工作状态,分别是S0,S1和S2状态;key[79:0]表示输入密钥key位数是80 b,IV[63:0]则表示输入的初始化向量iv位数是64 b.当o_vld为1时表示密钥流输出z是有效的.为了能够更加直观地观察仿真数据,将密钥输出流z由串行转为并行,即每产生4 b串行密钥流就相应生成一个4 b的并行数据,对应的便是out_memory,这样能够更好地观察波形.从仿真结果可以看出,根据文献[12]给出的测试向量进行测试,用来仿真Grain加密模块的功能是否正确.当输入测试向量80 b密钥key全为0,且64 b初始化向量iv也全为0时,输出为“7B978CF36846E5F4EE0B”,该值与理论值相符.由仿真结果可知,整个算法运行需要240个时钟周期,所以,当时钟频率为1.92 MHz时,密钥流产生所需的时间为125 μs,符合实际应用的要求.

Grain-v1算法以其硬件开销小算法架构简单等特性使得其在加密方面有着广泛的应用,然而根据一些文献研究,其安全性能也存在一些漏洞,文献[16]是对流密码的安全性进行分析;文献[17]提出了一种新的对Grain-v1差分攻击方法;文献[18]提出了密钥恢复攻击,并提出了一种改进设计;文献[19]则提出了改进NFSR的反馈函数并将LFSR设计成NFSR,重新设计反馈函数中的抽头(即反馈函数中的几个参数),从而在增加少量硬件开销的情况下极大地提高了算法被破解的难度.还有文献利用立方攻击对算法安全性进行了分析.

5 结束语

本文介绍了一种可在UHF RFID标签芯片上集成使用的加密算法Grain-v1,并且对国军标双向认证协议和安全通信协议进行了介绍,提出了一种结合Grain-v1算法和国军标协议相结合的一种方案.针对Grain-v1算法,详细阐述了其算法原理和工作过程,分析内部状态跳转,设计硬件架构,结合软件进行仿真调试 .最后对其安全性问题及其改进方法进行了讨论.该方案的提出弥补了自主标准与安全加密算法相结合的空白,并且能够很好地应用在UHF RFID标签芯片上,使得标签芯片具有安全功能.

[1]Klaus F. RFID Handbook: Fundamentals and Applications in Contactless Smart Cards, Radio Frequency Identification and Near-field Communication[M]. 3rd ed. New York: Wiley, 2010

[2]Juels A. RFID security and privacy: A research survey[J]. IEEE Journal on Selected Areas in Communications, 2006, 24(2): 381-394

[3]Juels A, Rivest R L, Szydlo M. The blocker tag: Selective blocking of RFID tags for consumer privacy[C]Proc of the 10th ACM Conf on Computer and Communications Security. New York: ACM, 2003: 103-111

[4]邵轲. RFID标签加密算法设计及FPGA实现[D]. 上海: 公安部第三研究所防伪技术事业部, 2012

[5]赵莲清. 基于Grain-128a算法的RFID安全机制[D]. 北京: 华北电力大学, 2013

[6]楼赟程. 基于Grain-v1 的RFID 安全认证协议[D]. 上海: 上海交通大学 2012

[8]Qin Qin, Li Cong, Cai Lei, et al. Design of security tag baseband based on PRESENT algorithm[J].Computer Engineering, 2015, 41(3): 110-115

[9]李建成, 王宏义, 等. 军用射频识别空中接口第1部分:800900 MHz参数[S]. 总装备部, 国防科学技术大学, 2011

[10]Thornton F, Haines B, Das A M, et al. RFID Security[M]. New York: Syngress Publishing,2006

[11]Stinson D S. 密码学原理与实践[M]. 冯登国译. 北京: 电子工业出版社, 2009

[12]Hell M, Johansson T, Meier W. Grain—A stream sipher for sonstrained environments[J]. Proceedings of the International Journal of Wireless & Mobile Computing, 2007, 2(1): 86-93

[13]Hell M, Johansson T, Maximov A, et al. A stream cipher proposal Grain-128[C]Proc of 2006 IEEE Int Symp on Information Theory. Piscataway, NJ: IEEE, 2006: 1614-1618

[14]李聪, 谷晓忱, 李建成, 等. 一种对时钟偏差不敏感的无源RFID 标签编解码算法[J]. 国防科技大学学报, 2013, 35(3): 126-131

[15]林丰成, 竺红卫, 李立. 数字集成电路设计与技术[M]. 北京: 科学出版社, 2008

[16]王璐. 流密码算法Grain的安全性研究[D]. 西安: 西安电子科技大学, 2011

[17]王璐, 胡予濮, 张振广. 一种针对Grain-v1的新差分错误攻击[J]. 计算机科学, 2011, 38(8): 80-82

[18]杨文峰. 流密码Grain-v1的密钥恢复攻击及其改进[D]. 西安: 西安电子科技大学, 2010

[19]李雪峰. 基于RFID系统认证协议与加密算法的研究[D]. 上海: 东华大学, 2009

谭 洋

硕士研究生,主要研究方向为RFID电子标签数字基带设计和安全加密算法.

tanyangnudt@126.com

李建成

教授,硕士生导师,主要研究方向为专用集成电路设计及系统应用等.

lijc_hh@126.com

王宏义

讲师,主要研究方向为射频识别技术及应用等.

wanghongyi2011@163.com

苏昌文

工程师,主要研究方向为ASIC设计.

suchangwen001@126.com

郑妙霞

硕士研究生,主要研究方向为RFID电子标签芯片数字基带设计.

miaoxiazheng@126.com

Security Authentication Protocol Based on Grain-v1 in National Military Standard

Tan Yang1, Li Jiancheng1, Wang Hongyi1, Su Changwen1, and Zheng Miaoxia2

1(CollegeofElectronicScienceandEngineering,NationalUniversityofDefenseTechnology,Changsha410073)2(SchoolofMaterialsandOptoelectronicsPhysics,XiangtanUniversity,Xiangtan,Hunan411100)

As the security problems in RFID become more and more serious, secure communication is receiving more and more attention. The premise of secure communication is security authentication protocol and security encryption. The paper proposes the security mechanism combining Grain-v1 algorithm and security authentication protocol in homegrown standard. This paper discusses the advantages and disadvantages of both foreign standards and homegrown standard about RFID, and we explain bidirectional authentication protocol and secure communication protocol in detail. Taking the use of less resource and easier implementation into consideration, we choose Grain-v1 stream cipher and illustrate its algorithm principle, analyze the changes of internal state and design hardware architecture, this paper implements simulation and debugging on software. At last, we discuss the grain’s security safety and its improvement.

radio frequency identification (RFID); secure communication; authentication protocol; encryption; stream cipher

2016-05-29

湖南省重大科技专项基金项目(2010FJ1005)

TP309

猜你喜欢
读写器加密算法功耗
基于任务映射的暗硅芯片功耗预算方法
基于整数矩阵乘法的图像加密算法
基于混沌系统和DNA编码的量子图像加密算法
混沌参数调制下RSA数据加密算法研究
揭开GPU功耗的面纱
数字电路功耗的分析及优化
基于小波变换和混沌映射的图像加密算法
一种面向星载计算机的功能级功耗估计方法
基于视频抓拍读写器的高速公路防倒卡研究
基于随机时隙的RFID读写器防冲突方法