一种无线射频识别认证协议
2018-07-10官瑜
官瑜
(广西师范大学计算机科学与信息工程学院,广西 桂林 541004)
1 引言
RFID(Radio Frequency Identification,RFID)技术是 20世纪90年代末兴起的一种非接触式自动识别技术,凭借其特有的优势,已在供应链管理、身份识别、交通运输、军事物流等诸多领域中得到广泛应用[1-3]。
RFID技术在广泛应用的同时,因其安全问题的因素,致使应用前景有一定程度的受限。在RFID系统中,其受到标签的计算能力、存储空间、电源供给等诸多因素的限制,如何设计出安全、低成本、高效的RFID认证协议是一个具有挑战性的课题[4-6]。
2 认证协议
(1)双向认证协议符号说明
为了能够更清楚地表示出双向认证协议中各符号的含义,下面给出双向认证协议中涉及的所有符号的详细说明:
Reader:表示RFID系统中的读写器;
Tag:表示RFID系统中的标签;
T_ID:能够识别标签的唯一标识符;
T_ID_L:能够识别标签的唯一标识符T_ID的左半部分;
T_ID_R:能够识别标签的唯一标识符T_ID的右半部分;
K:表示读写器与标签之间的共享密钥;
K*:表示读写器与标签之间的上一轮的共享密钥;
L:表示共享密钥的长度;
m:选择的梅森数,m=22L-1;
x:读写器端产生的随机数;
y:标签端产生的随机数;
y_L:标签端产生的随机数y的左半部分;
y_R:标签端产生的随机数y的右半部分;
⊕:异或运算;
X2:表示平方运算;
X mod Y:表示模运算;
[X]L:表示取运算结果的前L位长度值。
(2)双向认证协议完整步骤描述
RFID双向认证协议过程如图1所示:
图1 双向认证协议流程图
对上面双向认证协议中出现的M1,M2,M3,M4,M5,M6的说明:
M1=T_ID_R⊕x;
M2=T_ID_L⊕x;
M3=K⊕y_R;
M4=x⊕y_L;
M5=[(x⊕y_L⊕y_R⊕T_ID_R)2mod m]L,表示取运算结果的前L位;
M6=[[K2mod m]2L⊕ y]L,表示首先取[K2mod m]运算结果的前2L位,然后再与r进行异或运算,最后取运算结果的前L位。
根据图1可将RFID双向认证协议完整步骤描述如下:
第一步骤:
首先读写器端产生一个长度为L位的随机数,记为随机数x。然后读写器端开始计算M1=T_ID_R⊕x,M2=T_ID_L⊕x的值。最后读写器将M1、M2的值连同认证请求Query命令一同发送给标签。其中T_ID_R与T_ID_L是读写器端事先存放的信息。
第二步骤:
标签在接收到读写器发送来的信息以后,标签开始验证读写器的真伪,验证方法如下:
首先标签计算M1⊕T_ID_R的值,然后标签再计算M2⊕T_ID_L的值,接着判断M1⊕T_ID_R的值是否与M2⊕T_ID_L的值相等。
若两者的值不相等,说明读写器是攻击者伪装的,双向认证协议立刻终止。反之,表明读写器的合法性,从而标签可以通过上述的计算得到由读写器端产生的随机数x。
在验证读写器合法之后,标签端产生一个长度为2L位的随机数,记为随机数y。同时将该随机数的左半部分标记为y_L,右半部分标记为y_R,再接着标签利用计算得到的随机数x、自身产生的随机数y、自身储存的共享密钥K、自身储存的T_ID_R来计算M3=K⊕y_R、M4=x⊕y_L、M5=[(x⊕y_L⊕y_R⊕T_ID_R)2mod m]L的值,最后标签将计算出来的M3、M4、M5的值一并传给读写器。
第三步骤:
读写器在接收到标签发来的信息以后,读写器开始验证标签的真伪。验证过程如下描述:
首先读写器通过计算M3⊕K可以得到y_R的值,再通过计算M4⊕x可以得到y_L的值。然后将上述通过计算得到y_L和y_R的值做连接运算即可得到标签产生的随机数y。读写器再接着验证是否存在(T_ID_R,K)满足下面的等式:
M5=[(x⊕(M4⊕x)⊕(M3⊕K)⊕T_ID_R)2mod m]L。
如果存在(T_ID_R,K)满足上述的等式,进行第四步骤。如果不存在(T_ID_R,K)满足上述的等式,读写器端开始查找是否存在(T_ID_R,K*)满足上面的等式。若找到(T_ID_R,K*)满足上面的等式,则用(T_ID_R,K*)来代替(T_ID_R,K)进行第四步骤;反之,说明标签是由攻击者伪造的,双向认证协议立刻终止。
第四步骤:
通过上述的计算步骤之后,读写器验证了标签的真伪,在确定标签不是由攻击者伪造的前提下,读写器端开始进入后续操作。接着读写器端开始计算M6=[[K2mod m]2L⊕y]L的值,同时将计算出来的M6的值发送给标签。最后读写器端开始更新读写器与标签之间认证用到的共享密钥值:K*=K,K=[K2mod m]L。
第五步骤:
标签在接收到读写器发送来的信息以后,标签开始再次验证读写器的真伪,标签验证读写器真伪的步骤如下:
首先标签用自身产生的随机数y、自身储存的共享密钥K通过计算可以得到一个M6的值,记为M6`。然后比较计算得到的M6`的值与接收到的M6的值是否相等。如果两者的值不相等,说明读写器是攻击者伪造的,双向认证协议立刻终止;反之,说明读写器安全可靠,然后标签端开始更新密钥,即:K=[K2mod m]L,标签端密钥更新结束,标志着标签与读写器之间的双向认证协议完整结束。
3 结论
本文提出了一种基于伪随机函数的轻量级的无线射频识别双向认证协议。在双向认证协议过程中,为了确保攻击者通过监听手段获取的信息不是明文数据,双向认证协议对所要传输的全部消息进行加密之后再进行通信。
[1]YEH T C,WU C H,TSENG Y M.Improvement of the RFID authentication scheme based on quadratic residues[J].Computer Communications,2011,34(3):337-341.
[2]CHANG P.A location-privacy-protected RFID authentication scheme[C]//Proceedings of the 2011 IEEE International Conference on Communications. Piscataway:IEEE Press,2011:1-4.
[3]Zhou J.A Quadratic Residue-Based Lightweight RFID Mutual Authentication Protocol with Constant-Time Identification[J].Journal of Communications,2015,10(2).
[4]Tian Y,Chen G L,Li J H.A new ultra-lightweight RFID authentication protocol with permutation.IEEE Commun Lett,2012,16(5):702-705.
[5]Rui Xie,Bi-yuan Jian,and Dao-wei Liu. An Im-proved Ownership Transfer for RFID Protocol,International Journal of Network Security,2018,20(1):149-156.
[6]XIN W,GUAN Z,YANG T,et al.An efficient privacy-preserving RFID ownership transfer protocol[C]//APWeb 2013:Proceedings of the 2013 Asia-Pacific Web Conference on Web Technologies and Applications,LNCS 7808. Berlin:Springer-Verlag,2013:538-549.