一种抗异步攻击的超轻量级无线射频识别认证方法\n技术领域\n[0001] 本发明涉及无线射频识别领域,尤其是一种抗异步攻击的超轻量级无线射频识别认证方法。\n背景技术\n[0002] 现有技术中,无线射频识别(RFID,Radio Frequency Identification) 是众多自动识别技术的一种,其基本原理是利用射频信号和空间耦合(电感或电磁耦合)传输特性,实现对被识别物体的自动识别。基于RFID众多的优点,RFID已经得到十分广泛的应用并且受到越来越多的关注。\n[0003] 现有的基于异或运算的超轻量级无线射频识别认证方法对硬件的要求低,其标签不具有产生伪随机数的能力,但这种认证方法的缺陷是,当攻击者窃听并重放消息时,服务器端难以验证该消息的合法性,从而使非法标签认证通过,造成服务器端和标签端的数据更新不同步,导致异步攻击的问题。\n发明内容\n[0004] 为了解决上述技术问题,本发明的目的是:提供一种安全性高和抗异步攻击的超轻量级无线射频识别认证方法。\n[0005] 本发明解决其技术问题所采用的技术方案是:一种抗异步攻击的超轻量级无线射频识别认证方法,包括:\n[0006] S1、阅读器的随机数发生器产生随机数N1,然后向选中的标签发送消息Query||N1;\n[0007] S2、标签计算出A=(IDS∨K2)+Nt的值,并经过NLMC(x,y)非线性函数运算、ROT(x,y)函数运算与异或运算后得到B=(K1⊕K2*)+(K1*⊕K2)的值,然后经过阅读器将消息IDS||A||B||N1转发给后台服务器;所述K1*=ROT(K1⊕Nm,K1),K2*=ROT(K2⊕Nm,K2),Nm=NLMC(Nt,N1);其中,IDS表示标签的假名,Nt表示无线射频识别系统通信过程中的会话密钥,K1、K2均表示消息的加密密钥,“∨”表示逻辑加法运算,“⊕”表示异或运算;\n[0008] S3、后台服务器检查其存储的IDS数据中是否存储有能与消息IDS||A||B||N1中的IDS数据相匹配的数据;若否,表示阅读器认证标签失败,终止协议,流程结束;否则,则执行步骤S4;\n[0009] S4、后台服务器从消息IDS||A||B||N1中提取出Nt'=A-(IDS∨K2),并用与IDS数据相对应的K1、K2计算B'=(K1⊕K2*)+(K1*⊕K2);然后判断B'是否等于B,若否,表示阅读器认证标签失败,终止协议,流程结束;否则,则执行步骤S5;\n[0010] S5、阅读器生成随机数N2,对后台服务器的标签假名IDS、密匙K1、密匙K2和会话密钥Nt进行更新,并经过NLMC(x,y)非线性函数运算、ROT(x,y)函数运算与异或运算后得到发送给标签的数据C和D;\n[0011] S6、标签从接收的数据中提取出数据N2',并经过NLMC(x,y)非线性函数运算、ROT(x,y)函数运算与异或运算后得到数据D',然后根据数据D与数据D'是否相等来判断标签对阅读器是否验证成功。\n[0012] 进一步,所述步骤S5,其包括:\n[0013] S51、阅读器生成随机数N2,并将阅读器当前的标签假名IDS、密匙K1、密匙K2作为旧标签假名IDS、旧密匙K1、旧密匙K2存储至后台服务器;\n[0014] S52、阅读器对数据N1、N2、IDS、K1、K2进行计算,从而得到新标签假名IDSnew、新密匙K1new、新密匙K2new和新会话密钥Ntnew,并将IDSnew、K1new、K2new和Ntnew存储至后台服务器;\n[0015] S53、阅读器对经过NLMC(x,y)非线性函数运算、ROT(x,y)函数运算与异或运算,从而得到发送给标签的数据C和D。\n[0016] 进一步,所述的新标签假名IDSnew、新密匙K1new、新密匙K2new和新会话密钥Ntnew的计算公式如下:\n[0017]\n[0018] 其中,ID表示标签的身份标示符。\n[0019] 进一步,在所述步骤C53中,所述数据C的计算公式为:C=ROT(K1⊕K2,Nm')⊕N2;所述数据D的计算公式为:D=(K2*+Nx)⊕((K1⊕K2)∨K1*)。\n[0020] 进一步,所述步骤S6,其包括:\n[0021] S61、标签从接收的数据中提取出数据N2',所述数据N2'的计算公式为:\n[0022] N2'=C⊕ROT(K1⊕K2,Nm');\n[0023] S62、根据提取出的N2'对数据D'进行计算,所述数据D'的计算公式为:\n[0024] D'=(K2*+Nx')⊕((K1⊕K2)∨K1*),其中,Nx'=NLMC(N2',Nt');\n[0025] S63、判断数据D与数据D'是否相等,若相等,则对标签的IDS数据、密匙K1、密匙K2和数据Nt进行更新,从而得到更新后的IDS数据IDSnew、密匙K1new、密匙K2new和数据Ntnew;其中,IDSnew=(IDS+ID)⊕(Nm'+K1*),K1new=K1*,K2new=K2*,Ntnew= Nx'。\n[0026] 进一步,所述步骤S52中将IDSnew、K1new、K2new和Ntnew存储至后台服务器这一步骤,其具体为:\n[0027] 判断计算出的IDSnew是否与后台服务器存储的任一IDS数据相同,若是,则重新生new new new new new new new new\n成随机数N2并计算出对应的IDS 、K1 、K2 和Nt ;反之,则将IDS 、K1 、K2 和Nt 存储至后台服务器。\n[0028] 本发明的有益效果是:在标签中增设了会话密钥Nt作为标志位,该标志位与上次认证过程中阅读器产生的随机数相关,并保持动态刷新,使攻击者重放的消息失效,能够有效解决抵抗异步攻击的问题;采用了双向认证方法来实现身份的认证,且引入超轻量级的非线性函数NLMC(x,y)来加密通信中的消息,提高了无线射频识别系统在开放环境中通信的保密性,更加安全。\n附图说明\n[0029] 下面结合附图和实施例对本发明作进一步说明。\n[0030] 图1为本发明一种抗异步攻击的超轻量级无线射频识别认证方法的步骤流程图;\n[0031] 图2为非线性函数NLMC(x,y)的具体运算流程图;\n[0032] 图3为本发明无线射频识别认证过程的示意图。\n具体实施方式\n[0033] 参照图1,一种抗异步攻击的超轻量级无线射频识别认证方法,包括:\n[0034] S1、阅读器的随机数发生器产生随机数N1,然后向选中的标签发送消息Query||N1;\n[0035] S2、标签计算出A=(IDS∨K2)+Nt的值,并经过NLMC(x,y)非线性函数运算、ROT(x,y)* *\n函数运算与异或运算后得到B=(K1⊕K2 )+(K1 ⊕K2)的值,然后经过阅读器将消息IDS||A||B||N1转发给后台服务器;所述K1*=ROT(K1⊕Nm,K1),K2*=ROT(K2⊕Nm,K2),Nm=NLMC(Nt,N1);其中,IDS表示标签的假名,Nt表示无线射频识别系统通信过程中的会话密钥,K1、K2均表示消息的加密密钥,“∨”表示逻辑加法运算,“⊕”表示异或运算;\n[0036] S3、后台服务器检查其存储的IDS数据中是否存储有能与消息IDS||A||B||N1中的IDS数据相匹配的数据;若否,表示阅读器认证标签失败,终止协议,流程结束;否则,则执行步骤S4;\n[0037] S4、后台服务器从消息IDS||A||B||N1中提取出Nt'=A-(IDS∨K2),并用与IDS数据相对应的K1、K2计算B'=(K1⊕K2*)+(K1*⊕K2);然后判断B'是否等于B,若否,表示阅读器认证标签失败,终止协议,流程结束;否则,则执行步骤S5;\n[0038] S5、阅读器生成随机数N2,对后台服务器的标签假名IDS、密匙K1、密匙K2和会话密钥Nt进行更新,并经过NLMC(x,y)非线性函数运算、ROT(x,y)函数运算与异或运算后得到发送给标签的数据C和D;\n[0039] S6、标签从接收的数据中提取出数据N2',并经过NLMC(x,y)非线性函数运算、ROT(x,y)函数运算与异或运算后得到数据D',然后根据数据D与数据D'是否相等来判断标签对阅读器是否验证成功。\n[0040] 其中,非线性函数NLMC(x,y)是使用遗传编程思想,通过引入超轻操作数组件,从而获得的高度非线性函数。在标签上实现NLMC(x,y)函数,硬件上只要求标签具有右位移操作的能力,该函数具有超轻量级的性质,其具体操作如图2所示。ROT(x,y)函数是左旋函数,用于将x的值左旋y位。Nt'是后台服务器端的会话密钥,若通信正确则与Nt一致。B'的计算过程及所采用的公式与B的一致,区别仅在于Nt换成了Nt'。N2'是标签端提取的随机数,若通信正确则与阅读器端的N2一致。D'的计算过程及所采用的公式与D的一致,区别仅在于N2换成了N2'。\n[0041] 进一步作为优选的实施方式,所述步骤S5,其包括:\n[0042] S51、阅读器生成随机数N2,并将阅读器当前的标签假名IDS、密匙K1、密匙K2作为旧标签假名IDS、旧密匙K1、旧密匙K2存储至后台服务器;\n[0043] S52、阅读器对数据N1、N2、IDS、K1、K2进行计算,从而得到新标签假名IDSnew、新密匙K1new、新密匙K2new和新会话密钥Ntnew,并将IDSnew、K1new、K2new和Ntnew存储至后台服务器;\n[0044] S53、阅读器对经过NLMC(x,y)非线性函数运算、ROT(x,y)函数运算与异或运算,从而得到发送给标签的数据C和D。\n[0045] 进一步作为优选的实施方式,所述的新标签假名IDSnew、新密匙K1new、新密匙K2new和新会话密钥Ntnew的计算公式如下:\n[0046]\n[0047] 其中,ID表示标签的身份标示符。\n[0048] 进一步作为优选的实施方式,在所述步骤C53中,所述数据C的计算公式为:C=ROT(K1⊕K2,Nm')⊕N2;所述数据D的计算公式为:D=(K2*+Nx)⊕((K1⊕K2)∨K1*)。\n[0049] 进一步作为优选的实施方式,所述步骤S6,其包括:\n[0050] S61、标签从接收的数据中提取出数据N2',所述数据N2'的计算公式为:\n[0051] N2'=C⊕ROT(K1⊕K2,Nm');\n[0052] S62、根据提取出的N2'对数据D'进行计算,所述数据D'的计算公式为:\n[0053] D'=(K2*+Nx')⊕((K1⊕K2)∨K1*),其中,Nx'=NLMC(N2',Nt');\n[0054] S63、判断数据D与数据D'是否相等,若相等,则对标签的IDS数据、密匙K1、密匙K2和new new new new\n数据Nt进行更新,从而得到更新后的IDS数据IDS 、密匙K1 、密匙K2 和数据Nt ;其中,IDSnew=(IDS+ID)⊕(Nm'+K1*),K1new=K1*,K2new=K2*,Ntnew= Nx'。\n[0055] 进一步作为优选的实施方式,所述步骤S52中将IDSnew、K1new、K2new和Ntnew存储至后台服务器这一步骤,其具体为:\n[0056] 判断计算出的IDSnew是否与后台服务器存储的任一IDS数据相同,若是,则重新生成随机数N2并计算出对应的IDSnew、K1new、K2new和Ntnew;反之,则将IDSnew、K1new、K2new和Ntnew存储至后台服务器。\n[0057] 下面结合说明书附图和具体的实施例对本发明作进一步详细说明。\n[0058] 参照图3,本发明的第一实施例:\n[0059] 本发明一种抗异步攻击的超轻量级无线射频识别认证方法,用于无线射频识别系统中标签和阅读器之间进行无线通信时的安全认证。本发明的无线射频识别系统包括标签、阅读器和后台服务器。其中标签选用无源可读写式标签,标签的内部EEPROM存储数据,它的内部门电路不需产生伪随机数,只需要满足位运算(异或运算、移位运算等)操作,且能实现NLMC(x,y)函数操作的功能即可。\n[0060] 本发明主要包括认证初始化阶段、双向认证阶段、标签假名与密钥更新阶段这三个阶段。\n[0061] 认证初始化阶段,具体如下:\n[0062] 在每个标签中载入五元组(ID,IDS,K1,K2,Nt),其中ID表示标签的身份标示符;IDS表示标签的假名,初始值为96bit的二进制数,其值为Hash(ID);标签的ID是唯一的,因此,经过哈希运算之后,可以得到唯一的的IDS;K1、K2表示消息的加密密钥,其初始值为96bit的二进制随机数;Nt表示无线射频识别系统通信过程中的会话密钥,设置其初始值为96bit二进制数,其值为经过函数NLMC(N1,N2)运算后的结果,其中N1,N2为阅读器伪随机数发生器产生的随机数。\n[0063] 在后台服务器中保留一个七元组(ID,IDSnew,IDSold,K1new,K1old,K2new,K2old)。其中ID表示标签的身份标示符;(IDSnew,K1new,K2new)分别表示标签本次认证的假名、标签本次认证的K1、K2密钥,它们都是96bit的二进制数,初始值等于标签IDS、标签密钥K1、K2的初始值;\nold old old\n(IDS ,K1 ,K2 )分别表示上次认证过程中标签的假名IDS、上次认证过程中标签的密钥K1、K2,它们的初始值和标签的(IDS、K1、K2)初始值相同,都是96bit的二进制数。\n[0064] 参照图3,无线射频识别系统的认证过程的具体执行过程如下:\n[0065] a、阅读器中的随机数发生器产生随机数N1;然后向选中的标签发送消息(Query||N1)。\n[0066] b、标签收到阅读器发送过来的数据N1和通信请求之后,按照公式计算A=(IDS∨K2)+Nt、Nm=NLMC(Nt,N1)、K1*=ROT(K1⊕Nm,K1)、K2*=ROT(K2⊕Nm,K2)、B=(K1⊕K2*)+(K1*⊕K1);然后将消息(IDS||A||B)发送给阅读器,阅读器再将消息(IDS||A||B||N1)转发给后台服务器;\n其中NLMC(x,y)表示函数作用于括号中的参数。\n[0067] c、服务器收到消息后,首先查找后台中的IDSnew和IDSold记录,验证这两个数据能否与收到消息IDS||A||B中的IDS匹配;如果匹配成功,就从消息中提取出Nt=A-IDS∨K2,然后按照标签中的计算公式,用与IDS对应的K1、K2计算B′=(K1⊕K2*)+(K1*⊕K2),用来验证B′=B是否成立;如果等式成立,则阅读器验证标签成功,并转到步骤d;否则认证失败,结束当前会话。服务器与阅读器成功认证标签之后,生成随机数N2,计算Nx=NLMC(Nm,N2)、C=ROT(K1⊕K2,Nm)⊕N2、D=(K2*+Nx)⊕((K1⊕K2)∨K1*);然后更新数据K1new=K1*、K1old=K1、K2new=K2*、K2old=K2、IDSold=IDS、IDSnew=(IDS+ID)⊕(Nm+K1*),将消息C||D发送给标签。\n[0068] d、标签收到消息C||D之后,首先从消息中提取N2=C⊕ROT(K1⊕K2,Nm);然后用与后台服务器相同的公式计算D′,验证等式D′=D是否成立,其中D′=(K2*+Nx)⊕((K1⊕K2)∨=K1*);如果等式成立,则更新数据IDS=(IDS+ID)⊕(Nm+=K1*),K1==K1*、K2==K2*、Nt=Nx。\n[0069] 本发明通过步骤a至d的操作,实现了标签和阅读器的双向认证,而验证成功的标签和阅读器即可进行后续通信。\n[0070] 与现有技术相比,本发明具有以下优点:\n[0071] (1)硬件方面\n[0072] a.低运算成本:标签只需要满足位运算、包括逻辑运算、异或运算、移位运算等操作;\n[0073] b.低通信成本:协议只需3个轮回的通信量(参照图3),且交换的信息量少;\n[0074] c.标签上的硬件开销小:标签不需要具有伪随机数发生器的功能,所需门电路数量大大减少;\n[0075] d.标签上的运算量少:标签只需要完成16次逻辑运算操作、3次ROT(x,y)函数操作、2次NLMC(x,y)函数操作就可以实现RFID标签和RFID阅读器之间的身份认证。\n[0076] (2)本发明在标签中设置了数据Nt,该数据与上次认证过程中的阅读器产生的随机数相关,并保持动态刷新,这样就相当于标签也具有了产生随机数的能力,但是又不需要增加额外的硬件,能够有效解决标签和后端数据库数据同步问题。\n[0077] (3)本发明通过双向认证来实现的无线射频识别系统身份认证,提高了无线射频识别系统在开放环境中通信的保密性,能抵抗异步攻击、中间人攻击、重放攻击、拒绝服务攻击等无线射频识别系统常见的攻击方式。\n[0078] (4)本发明具有算法新颖简单、响应速度快、所需资源少、易于实现的优点,适用于解决低成本RFID标签的安全问题。\n[0079] 以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。