一种基于ECC的RFID双向身份认证系统及方法与流程

文档序号:14836629发布日期:2018-06-30 12:41阅读:1321来源:国知局
一种基于ECC的RFID双向身份认证系统及方法与流程

本发明属于无线射频识别身份认证技术领域,特别涉及一种基于ECC的RFID双向身份认证系统及方法。



背景技术:

无线射频识别(radio frequency identification device,RFID)技术是一种利用射频信号和空间耦合(电感或电磁耦合)传输特性,自动能够识别目标的技术;RFID系统主要由RFID阅读器、RFID标签、后端数据库三个关键组件构成,具有不局限于视线,识别距离远,携带信息量大,抗恶劣环境的能力较强,能同时识别多个被标识的物体,使用寿命长等优点。

由于RFID系统使用无线通信技术在开放环境中传递消息,容易受到外部攻击,而身份认证技术是保证RFID系统安全的重要手段,但是受限于终端硬件设备的成本,传统的身份认证技术难以在RFID系统上实现。

现有RFID身份认证方法分别基于以下3种协议及其变种协议:基于杂凑和随机函数的安全协议、基于树的安全协议、基于对称或非对称密码算法的安全协议;由于芯片技术的发展和公钥密码系统的优势,将公钥密码系统应用在RFID系统中成为RFID系统的研究热点之一,但是目前市场上还没有一种高效、低成本的基于公钥的RFID身份认证方法。



技术实现要素:

本发明的目的是为了提出一种基于ECC的RFID双向身份认证系统及方法,该方法实现了无线射频识别系统标签与阅读器的双向认证,保障标签的隐私安全,具有安全、高效、低成本的优势。

其中RFID系统包括标签、阅读器和后台数据库。所述认证方法包括:认证初始化阶段、双向认证阶段、认证更新阶段。

所述认证初始化阶段:阅读器和标签设置出厂参数;阅读器中的随机数发生器产生随机数Nr;计算消息Pr;然后广播消息(Query||Pr)。设置出厂参数,具体是指RFID系统选取合适的椭圆曲线参数,设置标签的IDS值和Nt的初始值;并录入后端服务器。消息Pr计算公式为Pr=Nr*G;其中G表示所选椭圆曲线的基点。

所述双向认证阶段:标签被激活之后,接收阅读器的消息,使用消息Pr结合标签私有数据计算消息Pt,S1;并发送IDS||Pt||S1至阅读器;阅读器再转发新消息IDS||Pr||S1||Pt||Nr给服务器。消息Pt计算公式为Pt=Nt*G,S1=Nt*Pr+InFo,其中InFo表示标签与服务器的秘密消息。

服务器收到消息之后,首先检查后台存储的IDS数据能否匹配消息中的IDS数据;如果数据匹配没有成功,表示服务器认证标签失败,协议终止;如果匹配成功,服务器计算S2、对称秘钥K的值。将消息S2通过阅读器发送给标签,秘钥K作为认证成功之后的对称秘钥。

标签端接收消息,按照公式认证服务器,如果认证成功,则双向认证结束。标签与服务器使用协商好的对称秘钥加密完成后续通信过程。否则,验证失败,终止认证程序。

所述更新阶段:标签被激活之后,发送认证消息,并使用NLAES算法更新标签的秘密Nt。服务器认证标签成功之后,验证IDSold==IDS,则更新IDSnew=IDSnew’;验证IDSnew==IDS,则更新IDSold=IDSnew,IDSnew=IDSnew’。标签端收到服务器端的双向认证消息,标签验证服务器端成功之后,更新IDS=IDSnew。

所述方法中IDSnew、对称秘钥K、消息C2的计算公式为:IDSnew=((IDSold&Pt)|((~ID)&Pr))),C2=ROT(Nr*Pt,C1),S2=C2+IDSnew,K=C2;其中非线性函数ROT(x,y)定义为:,N为参数长度,C1的值为Pt^Pr的汉明码权重。

所述方法中标签端验证服务器端的方法为:标签端解密IDS’=S2-C2’,C2’=ROT(Nt*Pr,C1),C1的值为Pt^Pr的汉明码权重,IDSnew=(IDS&Pt)|((~ID)&Pr))),验证等式IDS’==IDSnew是否成立,如果验证成功,则标签认证服务器通过;对称秘钥K=C2’。

所述方法中标签秘密的更新方法为Nt=NLAES(Nt,C3),其中C3表示Pt的汉明码权重,NLAES算法中的F(x,y)=ROT(x&y,C4),C4表示(~x)^y结果的汉明码权重,NLAES算法中RL、RR分别表示常量R的左右部分,Tempi表示算法计算的中间变量,i表示正整数;算法的结果为Temp3作为左半部分、Temp4作为右半部分的组合结果。

通过上述步骤的操作,实现了RFID标签和阅读器的双向认证,通过验证的标签和阅读器使用对称秘钥K进行后续通信。

本发明技术方案带来的有益效果:

(1)采用本发明提出的一种基于ECC的RFID双向身份认证系统及方法,标签端不需要实现随机数发生器硬件装置,仅仅需要使用逻辑运算功能就能实现相同的功能,减少了标签端中门电路的数量,降低了标签的成本。

(2)采用本发明提出的一种基于ECC的RFID双向身份认证系统及方法,提高了RFID系统在开放环境中通信的保密性,所述方法能抵抗重放攻击、中间人攻击、拒绝服务攻击等RFID系统常见的攻击方式;具有算法新颖简单、所需资源少、易于实现等特点,适合解决低成本RFID标签的安全问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1是本发明提出的NLMC(x,y)算法具体运算流程示意图;

图2是本发明提出的一种基于ECC的RFID双向身份认证系统及方法示意图;

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

下面结合附图并举实施例,对本发明进行详细的描述。

一种基于ECC的RFID双向身份认证系统及方法,用于完成RFID系统中标签和阅读器之间的双向认证。所述RFID系统包括标签、阅读器和后台数据库,其中标签选用被动式可读写式标签,标签只需要满足位运算(异或运算、移位运算等)操作,具有实现NLAES(x,y)函数的功能。

对RFID系统进行初始化,具体如下:

RFID系统中所有的数值均为96bit的二进制数;在标签中保存数据(ID,IDS,Nt),其中ID表示标签的身份标识符;IDS表示标签的假名,初始值计算方法如下:将当前的时间作为种子计算随机数R1,然后与标签的ID异或运算得到的结果作为该标签的IDS值。Nt表示标签端的秘密数,其初始值为将当前时间与ID异或得到的结果作为种子计算随机数,得到的结果作为标签Nt的初始值。

在后台数据库中保留标签的三元组(ID,IDSnew,IDSold)。其中ID表示标签的身份标识符;IDSnew表示标签本次认证的假名;IDSold表示上次认证过程中标签的假名,其初始值IDSnew=IDSold。

RFID系统设置合适的椭圆曲线y2=x3+ax+b在有限域Fp中的参数,这里选取Ecc参数P=3851,a=324,b=1287.基点G=(920,303)。

无线射频识别系统的认证过程示意图如图2所示,协议的具体执行过程如下:

所述认证初始化阶段:

阅读器和标签设置出厂参数;阅读器中的随机数发生器产生随机数Nr;计算消息Pr;然后广播消息(Query||Pr)。

所述双向认证阶段:

标签被激活之后,接收阅读器的消息,使用消息Pr结合标签私有数据计算消息Pt,S1;并发送IDS||Pt||S1至阅读器;阅读器再转发新消息IDS||Pr||S1||Pt||Nr给服务器。

服务器收到消息之后,首先检查后台存储的IDS数据能否匹配消息中的IDS数据;如果数据匹配没有成功,表示服务器认证标签失败,协议终止;如果匹配成功,服务器计算S2、对称秘钥K的值。将消息S2通过阅读器发送给标签,秘钥K作为认证成功之后的对称秘钥。

标签端接收消息,按照公式认证服务器,如果认证成功,则双向认证结束。标签与服务器使用协商好的对称秘钥加密完成后续通信过程。否则,验证失败,终止认证程序。

所述更新阶段:

标签被激活之后,发送认证消息,并使用NLAES算法更新标签的秘密Nt。

服务器认证标签成功之后,验证IDSold==IDS,则更新IDSnew=IDSnew’;验证IDSnew==IDS,则更新IDSold=IDSnew,IDSnew=IDSnew’。

标签端收到服务器端的双向认证消息,标签验证服务器端成功之后,更新IDS=IDSnew。

通过上述步骤的操作,实现了RFID标签和阅读器的双向认证,通过验证的标签和阅读器使用对称秘钥K进行后续通信。

所述方法中的设置出厂参数,具体是指RFID系统选取合适的椭圆曲线参数,设置标签的IDS值和Nt的初始值;并录入后端服务器。

所述方法中的消息Pr计算公式为Pr=Nr*G;其中G表示所选椭圆曲线的基点。

所述方法中的消息Pt计算公式为Pt=Nt*G,S1=Nt*Pr+InFo,其中InFo表示标签与服务器的秘密消息,此处设置值为IDS^ID。

所述方法中IDSnew、对称秘钥K、消息C2的计算公式为:IDSnew=((IDSold&Pt)|((~ID)&Pr))),C2=ROT(Nr*Pt,C1),S2=C2+IDSnew,K=C2;其中非线性函数ROT(x,y)定义为:,N为参数长度,C1的值为Pt^Pr的汉明码权重。

所述方法中标签端验证服务器端的方法为:标签端解密IDS’=S2-C2’,C2’=ROT(Nt*Pr,C1),C1的值为Pt^Pr的汉明码权重,IDSnew=(IDS&Pt)|((~ID)&Pr))),验证等式IDS’==IDSnew是否成立,如果验证成功,则标签认证服务器通过;对称秘钥K=C2’。

所述方法中标签秘密的更新方法为Nt=NLAES(Nt,C3),其中C3表示Pt的汉明码权重;NLAES算法中的F(x,y)=ROT(x&y,C4),C4表示(~x)^y结果的汉明码权重,NLAES算法中RL、RR分别表示常量R的左右部分,Tempi表示算法计算的中间变量,i表示正整数;算法的结果为Temp3作为左半部分、Temp4作为右半部分的组合结果。

通过上述步骤的操作,实现了标签和阅读器的双向认证,验证成功的标签和阅读器即可进行后续通信。

符号说明:

按位或运算|

按位与运算&

按位取反运算~

按位异或运算符^

逻辑乘法操作*

逻辑加法操作+

NLAES(x,y):非线性函数,其中x,y是函数的入口参数;

PER(x,y):非线性函数,其中x,y是函数的入口参数。

以上对本发明实施例所提供的一种基于ECC的RFID双向身份认证系统及方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1