一种移动射频识别的双向认证方法及移动射频识别系统与流程

文档序号:11138235阅读:971来源:国知局
一种移动射频识别的双向认证方法及移动射频识别系统与制造工艺

本发明涉及射频识别技术领域,更具体地说,涉及一种移动射频识别的双向认证方法及移动射频识别系统。



背景技术:

射频识别(Radio Frequency Identification,RFID)技术是一种非接触式的自动识别技术,通过射频信号自动识别目标对象,具有易部署、快捷的优点,已经广泛应用于仓库管理、供应链管理、智能感知等领域。通常,RFID系统一般由标签、读写器和后端服务器组成。标签上具有唯一的电子编码,用来存储需要识别、传输的信息,读写器通过射频信号识别标签上的电子编码,将识别得到的信息传输给后端服务器。

在移动RFID系统中,读写器是可移动的,标签、读写器和后端服务器之间均是通过无线连接的方式实现信息识别、传输的。由于无线连接具有开放性,三者间通过无线传输的信息容易受到攻击,从而泄露用户的隐私,通信安全性较差。

因此,如何提高移动RFID系统的通信安全性,是本领域技术人员亟待解决的技术问题。



技术实现要素:

为解决上述技术问题,本发明提供了一种移动射频识别的双向认证方法及移动射频识别系统,以实现提高移动射频识别系统的通信安全性的目的。

为实现上述目的,本发明提供如下技术方案:

一种移动射频识别的双向认证方法,适用于包括标签、读写器和后端服务器的移动射频识别系统,所述移动射频识别系统的双向认证方法包括:

S1:所述读写器将预先产生的第一随机数r和认证请求发送给所述标签;

S2:所述标签接收到所述第一随机数r和所述认证请求后,基于标签假名 IDS和所述第一随机数r生成第二随机数x=MIXBITS(IDS,r),并对所述第二随机数x进行加密,得到加密信息M1=IDS⊕x,并利用交叉位运算和循环校验算法生成第一验证信息P=(P1,P2),其中P1,P2为所述第一验证消息P的左右两部分,每部分长度为l,并将消息组合一(P1,M1)发送给所述读写器;

S3:所述读写器接收到消息组合一(P1,M1)后,利用交叉位运算和循环校验算法生成第二验证信息Q=(P3,P4),其中P3,P4为所述第二验证消息Q的左右两部分,每部分长度为l,并将消息组合二(P1,P3,M1,r)发送给所述后端服务器;

S4:所述后端服务器接收到消息组合二(P1,P3,M1,r)后,基于所述后端服务器中存储的读写器身份标识IDR、读写器密钥KR或者上一轮读写器密钥KRold和所述第一随机数r利用交叉位运算和循环校验算法生成第三验证信息Q'=(P3',P4'),其中P3',P4'为所述第三验证信息Q'的左右两部分,每部分长度为l,或者Q”=(P3”,P4”),其中P3”,P4”为所述第三验证信息Q”的左右两部分,每部分长度为l,其中(P3”,P4”)基于上一轮读写器密钥KRold生成,验证所述读写器是否合法,如果合法,则更新所述读写器的密钥库,并基于预先存储的标签假名IDS或者上一轮标签假名IDSold和所述加密信息M1计算第二随机数x,基于所述后端服务器中预先存储的标签假名IDS或者上一轮标签假名IDSold、所述第一随机数r和所述第二随机数x利用交叉位运算和循环校验算法生成第四验证信息P'=(P1',P2'),其中P1',P2'为P'的左右两部分,每部分长度为l,或者P”=(P1”,P2”),其中P1”,P2”为P”的左右两部分,每部分长度为l,验证所述标签是否合法,如果合法,则更新所述标签的密钥库,并将第五验证信息发送给所述读写器,所述第五验证信息为(P2',P4')或(P2”,P4')或(P2',P4”)或(P2”,P4”);否则,判定认证失败,终止通信;

S5:所述读写器接收到所述第五验证信息后,基于所述第五验证信息中的P4'或者P4”判断所述后端服务器是否合法,如果合法,则更新所述读写器的密钥库,并将所述第五验证信息中的P2'或者P2”发送给所述标签;否则,判定认证失败,终止通信;

S6:所述标签基于接收到的P2'或者P2”判断所述后端服务器是否合法,如果合法,则判定所述标签、所述读写器和所述后端服务器之间的双向认证成 功,更新所述标签的密钥库;否则,判定认证失败,终止通信。

优选的,步骤S4具体包括:所述后端服务器收到消息组合二(P1,P3,M1,r)后,基于所述后端服务器中存储的读写器身份标识IDR、读写器密钥KR和所述第一随机数r生成第三验证信息Q'=(P3',P4')=Cro(KR,CRC(IDR⊕r)),并判断P3'是否等于P3,如果等于,则判定所述读写器合法,并对读写器的密钥库进行更新,得到读写器更新密钥KR',KR'=IDR⊕(KR>>l/2);

如果不等于,则基于所述后端服务器中存储的读写器身份标识IDR、上一轮读写器密钥KRold和所述第一随机数r生成第三验证信息Q”=(P3”,P4”)=Cro(KRold,CRC(IDR⊕r)),并判断P3”是否等于P3,若等于,则判定所述读写器合法,并更新读写器的密钥库:KR=KRold,KR'=IDR⊕(KR>>l/2);若P3”不等于P3,则判定所述读写器不合法,通信立即终止;

当P3'等于P3时,利用所述后端服务器中预先存储的标签假名IDS和所述加密信息M1计算x=M1⊕IDS,基于所述后端服务器中预先存储的标签假名IDS、所述第一随机数r和x生成第四验证信息P'=(P1',P2')=Cro(x,CRC(IDS⊕r)),并判断P1'是否等于P1,若等于,则判定所述标签合法,并更新标签假名,得到更新的标签假名IDS',IDS'=x⊕(IDS>>l/2),并将(P2',P4')发送给所述读写器;若不等于,则利用所述后端服务器中预先存储的上一轮标签假名IDSold和所述加密信息M1计算x=M1⊕IDSold,基于所述后端服务器中预先存储的上一轮标签假名IDSold、所述第一随机数r和x生成第四验证信息P”=(P1”,P2”)=Cro(x,CRC(IDS⊕r)),并判断P1”是否等于P1,如果等于,则判定所述标签合法,并更新标签假名:IDS=IDSold,IDS'=x⊕(IDS>>l/2),并将(P2”,P4')发送给所述读写器;若P1”不等于P1,则判定所述标签不合法,通信立即终止;

当P3”等于P3时,利用所述后端服务器中预先存储的标签假名IDS和所述加密信息M1计算x=M1⊕IDS,基于所述后端服务器中预先存储的标签假名IDS、所述第一随机数r和x生成第四验证信息P'=(P1',P2')=Cro(x,CRC(IDS⊕r)),并判断P1'是否等于P1,若等于,则判定所述标签合法,并更新标签假名,得到更新的标签假名IDS', IDS'=x⊕(IDS>>l/2),并将(P2',P4”)发送给所述读写器;若不等于,则利用所述后端服务器中预先存储的上一轮标签假名IDSold和所述加密信息M1计算x=M1⊕IDSold,基于所述后端服务器中预先存储的上一轮标签假名IDSold、所述第一随机数r和x生成第四验证信息P”=(P1”,P2”)=Cro(x,CRC(IDS⊕r)),并判断P1”是否等于P1,如果等于,则判定所述标签合法,并更新标签假名:IDS=IDSold,IDS'=x⊕(IDS>>l/2),并将(P2”,P4”)发送给所述读写器;如果P1”不等于P1,则判定所述标签不合法,通信立即终止;

其中,Cro代表交叉位运算,CRC代表循环校验函数,⊕代表异或运算,l=128bits。

优选的,步骤S5具体包括:所述读写器接收到所述第五验证信息后,判定P4'是否和P4相等,如果P4'等于P4,则判定所述后端服务器合法,更新读写器密钥:KR'=IDR⊕(KR>>l/2),并将P2'发送给所述标签;如果P4”等于P4,则判定所述后端服务器合法,更新读写器密钥:KR=KRold,KR'=IDR⊕(KR>>l/2),并将P2”发送给所述标签,如果P4'或P4”均与P4不相等,则判定所述后端服务器不合法,通信终止。

优选的,步骤S6具体包括:所述标签接收到P2'或者P2”后,判定P2'或者P2”是否等于P2,如果P2'等于P2,则判定所述后端服务器合法,并判定所述标签、所述读写器和所述后端服务器之间的双向认证成功,更新标签假名IDS',IDS'=x⊕(IDS>>l/2);如果P2”等于P2,则判定所述后端服务器合法,并判定所述标签、所述读写器和所述后端服务器之间的双向认证成功,进行数据更新:IDS=IDSold,IDS'=x⊕(IDS>>l/2);如果P2'或者P2”均不等于P2,则判定此次双向认证失败。

优选的,所述预先产生的第一随机数r的过程,具体包括:

利用随机数生成器生成第一随机数r。

一种移动射频识别系统,包括:标签、读写器和后端服务器,其中:

所述读写器,用于将预先产生的第一随机数r和认证请求发送给所述标签,及接收到标签反馈的消息组合一(P1,M1)后,利用交叉位运算和循环校验算法生成第二验证信息Q=(P3,P4),其中P3,P4为所述第二验证消息Q的左右两部分,每部分长度为l,并将消息组合二(P1,P3,M1,r)发 送给所述后端服务器;和用于接收到所述后端服务器反馈的第五验证信息后,所述第五验证信息为(P2',P4')或(P2”,P4')或(P2',P4”)或(P2”,P4”),基于收到的P4'或者P4”判断所述后端服务器是否合法,如果合法,则更新所述读写器的密钥库,并将P2'或者P2”发送给所述标签;否则,判定认证失败,终止通信;

所述后端服务器,用于接收到所述读写器发送的消息组合二(P1,P3,M1,r)后,基于所述后端服务器中存储的读写器身份标识IDR、读写器密钥KR或者上一轮读写器密钥KRold和所述第一随机数r利用交叉位运算和循环校验算法生成第三验证信息Q'=(P3',P4')或者Q”=(P3”,P4”),其中(P3”,P4”)基于上一轮读写器密钥KRold生成,验证所述读写器是否合法,如果合法,则更新所述读写器的密钥库,并基于预先存储的标签假名IDS或者上一轮标签假名IDSold和所述加密信息M1计算第二随机数x,基于所述后端服务器中预先存储的标签假名IDS或者上一轮标签假名IDSold、所述第一随机数r和所述第二随机数x利用交叉位运算和循环校验算法生成第四验证信息P'=(P1',P2'),其中P1',P2'为P'的左右两部分,每部分长度为l,或者P'=(P1”,P2”),其中P1”,P2”为P”的左右两部分,每部分长度为l,验证所述标签是否合法,如果合法,则更新所述标签的密钥库,并将第五验证信息发送给所述读写器;否则,判定认证失败,终止通信;

所述标签,用于接收到所述读写器发送的第一随机数r和所述认证请求后,基于标签假名IDS和所述第一随机数r生成第二随机数x=MIXBITS(IDS,r),并对所述第二随机数x进行加密,得到加密信息M1=IDS⊕x,并利用交叉位运算和循环校验算法生成第一验证信息P=(P1,P2),其中P1,P2为所述第一验证消息P的左右两部分,每部分长度为l,并将消息组合一(P1,M1)发送给所述读写器;基于接收到的P2'或者P2”判断所述后端服务器是否合法,如果合法,则判定所述标签、所述读写器和所述后端服务器之间的双向认证成功,更新所述标签的密钥库;否则,判定认证失败,终止通信。

优选的,所述后端服务器,具体用于,在收到消息组合二(P1,P3,M1,r)后,基于所述后端服务器中存储的读写器身份标识IDR、读写器密钥KR和所述第一随机数r生成第三验证信息Q'=(P3',P4')=Cro(KR,CRC(IDR⊕r)), 并判断P3'是否等于P3,如果等于,则判定所述读写器合法,并对读写器的密钥库进行更新,得到读写器更新密钥KR',KR'=IDR⊕(KR>>l/2);

如果不等于,则基于所述后端服务器中存储的读写器身份标识IDR、上一轮读写器密钥KRold和所述第一随机数r生成第三验证信息Q”=(P3”,P4”)=Cro(KRold,CRC(IDR⊕r)),并判断P3”是否等于P3,若等于,则判定所述读写器合法,并更新读写器的密钥库:KR=KRold,KR'=IDR⊕(KR>>l/2);若P3”不等于P3,则判定所述读写器不合法,通信立即终止;

当P3'等于P3时,利用所述后端服务器中预先存储的标签假名IDS和所述加密信息M1计算x=M1⊕IDS,基于所述后端服务器中预先存储的标签假名IDS、所述第一随机数r和x生成第四验证信息P'=(P1',P2')=Cro(x,CRC(IDS⊕r)),并判断P1'是否等于P1,若等于,则判定所述标签合法,并更新标签假名,得到更新的标签假名IDS',IDS'=x⊕(IDS>>l/2),并将(P2',P4')发送给所述读写器;若不等于,则利用所述后端服务器中预先存储的上一轮标签假名IDSold和所述加密信息M1计算x=M1⊕IDSold,基于所述后端服务器中预先存储的上一轮标签假名IDSold、所述第一随机数r和x生成第四验证信息P”=(P1”,P2”)=Cro(x,CRC(IDS⊕r)),并判断P1”是否等于P1,如果等于,则判定所述标签合法,并更新标签假名:IDS=IDSold,IDS'=x⊕(IDS>>l/2),并将(P2”,P4')发送给所述读写器;若P1”不等于P1,则判定所述标签不合法,通信立即终止;

当P3”等于P3时,利用所述后端服务器中预先存储的标签假名IDS和所述加密信息M1计算x=M1⊕IDS,基于所述后端服务器中预先存储的标签假名IDS、所述第一随机数r和x生成第四验证信息P'=(P1',P2')=Cro(x,CRC(IDS⊕r)),并判断P1'是否等于P1,若等于,则判定所述标签合法,并更新标签假名,得到更新的标签假名IDS',IDS'=x⊕(IDS>>l/2),并将(P2',P4”)发送给所述读写器;若不等于,则利用所述后端服务器中预先存储的上一轮标签假名IDSold和所述加密信息M1计算x=M1⊕IDSold,基于所述后端服务器中预先存储的上一轮标签假名IDSold、所述第一随机数r和x生成第四验证信息P”=(P1”,P2”)=Cro(x,CRC(IDS⊕r)),并判 断P1”是否等于P1,如果等于,则判定所述标签合法,并更新标签假名:IDS=IDSold,IDS'=x⊕(IDS>>l/2),并将(P2”,P4”)发送给所述读写器;如果P1”不等于P1,则判定所述标签不合法,通信立即终止;

其中,Cro代表交叉位运算,CRC代表循环校验函数,⊕代表异或运算,l=128bits。

优选的,所述读写器接收到所述后端服务器反馈的第五验证信息后,判定P4'是否和P4相等,如果P4'等于P4,则判定所述后端服务器合法,更新读写器密钥:KR'=IDR⊕(KR>>l/2),并将P2'发送给所述标签;如果P4”等于P4,则判定所述后端服务器合法,更新读写器密钥:KR=KRold,KR'=IDR⊕(KR>>l/2),并将P2”发送给所述标签,如果P4'或P4”均与P4不相等,则判定所述后端服务器不合法,通信终止。

优选的,所述标签接收到P2'或者P2”后,判定P2'或者P2”是否等于P2,如果P2'等于P2,则判定所述后端服务器合法,并判定所述标签、所述读写器和所述后端服务器之间的双向认证成功,更新标签假名IDS',IDS'=x⊕(IDS>>l/2);如果P2”等于P2,则判定所述后端服务器合法,并判定所述标签、所述读写器和所述后端服务器之间的双向认证成功,进行数据更新:IDS=IDSold,IDS'=x⊕(IDS>>l/2);如果P2'或者P2”均不等于P2,则判定此次双向认证失败。

优选的,所述读写器还包括:随机数生成器;

所述随机数生成器,用于生成第一随机数r。

从上述技术方案可以看出,本发明提供了一种移动射频识别的双向认证方法及移动射频识别系统,其中,所述移动射频识别的双向认证方法通过在所述读写器内部产生第一随机数r发送给所述标签开始双向认证过程,在之后的所述读写器、所述标签和所述后端服务器之间的双向认证过程中,利用交叉位运算和循环校验算法加密它们之间传输的信息,同时在认证成功后及时更新所述标签和所述读写器各自的密钥库,有效地隐藏了所述标签和读写器的身份信息,保护了读写器与标签的隐私信息。并且由于交叉位运算和循环校验算法的计算量小,运算速度快,在保证双向认证的目的的前提下,有效地提高了双向认证的效率。

另外,在整个双向认证过程中,大部分的计算量在所述后端服务器进行, 减小了标签端的计算量,从而降低了标签的计算成本,并且所述标签只需要进行简单的数据运算而不需要随机数发生器,有效地降低了对所述标签的硬件要求,从而进一步降低了所述标签的成本。

进一步的,在所述标签、所述读写器和所述后端服务器之间进行的验证信息的传输过程中,只进行部分验证信息的传输,从而使敌手无法获取隐私信息,进而确保双向认证的通信安全。

附图说明

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

图1为本申请的一个实施例提供的一种移动射频识别的双向认证方法的流程示意图;

图2为本申请的一个具体实施例提供的一种交叉位算法的流程示意图;

图3为本申请的一个实施例提供的一种第五验证信息与第三验证信息及第四验证信息的关系示意图;

图4为本申请的一个实施例提供的一种MIXBITS函数的算法流程示意图;

图5为本申请的一个实施例提供的一种移动射频识别系统的结构示意图。

具体实施方式

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

本申请实施例提供了一种移动射频识别的双向认证方法,如图1所示,适用于包括标签T、读写器R和后端服务器S的移动射频识别系统,所述移动射频识别系统的双向认证方法包括:

S1:所述读写器R将预先产生的第一随机数r和认证请求发送给所述标签T;

S2:所述标签T接收到所述第一随机数r和所述认证请求后,基于标签假名IDS和所述第一随机数r生成第二随机数x=MIXBITS(IDS,r),并对所述第二随机数x进行加密,得到加密信息M1=IDS⊕x,并利用交叉位运算和循环校验算法生成第一验证信息P=(P1,P2),其中P1,P2为所述第一验证消息P的左右两部分,每部分长度为l),并将消息组合一(P1,M1)发送给所述读写器R;

S3:所述读写器R接收到消息组合一(P1,M1)后,利用交叉位运算和循环校验算法生成第二验证信息Q=(P3,P4),其中P3,P4为所述第二验证消息Q的左右两部分,每部分长度为l,并将消息组合二(P1,P3,M1,r)发送给所述后端服务器S;

S4:所述后端服务器S接收到消息组合二(P1,P3,M1,r)后,基于所述后端服务器S中存储的读写器R身份标识IDR,读写器密钥KR或者上一轮读写器密钥KRold和所述第一随机数r利用交叉位运算和循环校验算法生成第三验证信息Q'=(P3',P4'),其中P3',P4'为所述第三验证信息Q'的左右两部分,每部分长度为l,或者Q”=(P3”,P4”),其中P3”,P4”为所述第三验证信息Q”的左右两部分,每部分长度为l,其中(P3”,P4”)基于上一轮读写器密钥KRold生成,验证所述读写器R是否合法,如果合法,则更新所述读写器R的密钥库,并基于预先存储的标签假名IDS或者上一轮标签假名IDSold和所述加密信息M1计算第二随机数x,基于所述后端服务器S中预先存储的标签假名IDS或者上一轮标签假名IDSold、所述第一随机数r和所述第二随机数x利用交叉位运算和循环校验算法生成第四验证信息P'=(P1',P2'),其中P1',P2'为P'的左右两部分,每部分长度为l,或者P”=(P1”,P2”),其中P1”,P2”为P”的左右两部分,每部分长度为l,验证所述标签T是否合法,如果合法,则更新所述标签T的密钥库,并将第五验证信息发送给所述读写器R,所述第五验证信息为(P2',P4')或(P2”,P4')或(P2',P4”)或(P2”,P4”);否则,判定认证失败,终止通信;

S5:所述读写器R接收到所述第五验证信息后,基于所述第五验证信息中的P4'或者P4”判断所述后端服务器S是否合法,如果合法,则更新所述读 写器R的密钥库,并将所述第五验证信息中的P2'或者P2”发送给所述标签T;否则,判定认证失败,终止通信;

S6:所述标签T基于接收到的P2'或者P2”判断所述后端服务器S是否合法,如果合法,则判定所述标签T、所述读写器R和所述后端服务器S之间的双向认证成功,更新所述标签T的密钥库;否则,判定认证失败,终止通信。

其中,l=128bits。在本实施例中,所述移动射频识别的双向认证方法通过在所述读写器R内部产生第一随机数r发送给所述标签T开始双向认证过程,在之后的所述读写器R、所述标签T和所述后端服务器S之间的双向认证过程中,利用交叉位运算和循环校验算法加密它们之间传输的信息,同时在认证成功后及时更新所述标签T和所述读写器R各自的密钥库,有效地隐藏了所述标签T和读写器R的身份信息,保护了读写器R与标签T的隐私信息。并且由于交叉位运算和循环校验算法的计算量小,运算速度快,在保证双向认证的目的的前提下,有效地提高了双向认证的效率。

另外,在整个双向认证过程中,大部分的计算量在所述后端服务器S进行,减小了标签T的计算量,从而降低了标签T的计算成本,并且所述标签T只需要进行简单的数据运算而不需要随机数发生器,有效地降低了对所述标签的硬件要求,从而进一步降低了所述标签T的成本。

进一步的,在所述标签T、所述读写器R和所述后端服务器S之间进行的验证信息的传输过程中,只进行部分验证信息的传输,从而使敌手无法获取隐私信息,进而确保双向认证的通信安全。

在上述实施例的基础上,在本申请的一个具体实施例中,步骤S4具体包括:所述后端服务器S收到消息组合二(P1,P3,M1,r)后,基于所述后端服务器S中存储的读写器R身份标识IDR、读写器密钥KR和所述第一随机数r生成第三验证信息Q'=(P3',P4')=Cro(KR,CRC(IDR⊕r)),并判断P3'是否等于P3,如果等于,则判定所述读写器R合法,并对读写器R的密钥库进行更新,得到读写器R更新密钥KR',KR'=IDR⊕(KR>>l/2);

如果不等于,则基于所述后端服务器S中存储的读写器R身份标识IDR、上一轮读写器密钥KRold和所述第一随机数r生成第三验证信息Q”=(P3”,P4”)=Cro(KRold,CRC(IDR⊕r)),并判断P3”是否等于P3,若等于,则判 定所述读写器R合法,并更新读写器R的密钥库:KR=KRold,KR'=IDR⊕(KR>>l/2);如果P3”不等于P3,则判定所述读写器R不合法,通信立即终止;

当P3'等于P3时,利用所述后端服务器S中预先存储的标签假名IDS和所述加密信息M1计算x=M1⊕IDS,基于所述后端服务器S中预先存储的标签假名IDS、所述第一随机数r和x生成第四验证信息P'=(P1',P2')=Cro(x,CRC(IDS⊕r)),并判断P1'是否等于P1,若等于,则判定所述标签T合法,并更新标签假名,得到更新的标签假名IDS',IDS'=x⊕(IDS>>l/2),并将(P2',P4')发送给所述读写器R;若不等于,则利用所述后端服务器S中预先存储的上一轮标签假名IDSold和所述加密信息M1计算x=M1⊕IDSold,基于所述后端服务器S中预先存储的上一轮标签假名IDSold、所述第一随机数r和x生成第四验证信息P”=(P1”,P2”)=Cro(x,CRC(IDS⊕r)),并判断P1”是否等于P1,如果等于,则判定所述标签T合法,并更新标签假名:IDS=IDSold,IDS'=x⊕(IDS>>l/2),并将(P2”,P4')发送给所述读写器R;若P1”不等于P1,则判定所述标签不合法,通信立即终止;

当P3”等于P3时,利用所述后端服务器S中预先存储的标签假名IDS和所述加密信息M1计算x=M1⊕IDS,基于所述后端服务器S中预先存储的标签假名IDS、所述第一随机数r和x生成第四验证信息P'=(P1',P2')=Cro(x,CRC(IDS⊕r)),并判断P1'是否等于P1,若等于,则判定所述标签T合法,并更新标签假名,得到更新的标签假名IDS',IDS'=x⊕(IDS>>l/2),并将(P2',P4”)发送给所述读写器R;若不等于,则利用所述后端服务器S中预先存储的上一轮标签假名IDSold和所述加密信息M1计算x=M1⊕IDSold,基于所述后端服务器S中预先存储的上一轮标签假名IDSold、所述第一随机数r和x生成第四验证信息P”=(P1”,P2”)=Cro(x,CRC(IDS⊕r)),并判断P1”是否等于P1,如果等于,则判定所述标签T合法,并更新标签假名:IDS=IDSold,IDS'=x⊕(IDS>>l/2),并将(P2”,P4”)发送给所述读写器R;如果P1”不等于P1,则判定所述标签不合法,通信立即终止;

其中,Cro代表交叉位运算,CRC代表循环校验函数,⊕代表异或运算,l=128bits。

为了更清楚的对交叉位运算进行说明,本申请的一个具体实施例对交叉位运算进行了详细说明,具体地,设X和Y为两个具有偶数位L位的二进制数,X=X1X2…XL,Y=Y1Y2…YL,其中,Xi,Yi的取值范围为0或1,i=1,2…L;对X和Y进行交叉位运算是指由X的奇数位和Y的偶数位相互交叉形成新的L位数组;具体运算过程中:定义两个指针P1和P2分别指向X和Y,当P1指向X的奇数位时,把此位置上的值赋予运算结果的偶数位;当P2指向Y的偶数位时,将此位置上的值赋予运算结果的奇数位。如图2所示,例如取L=10,设X=1100101100,Y=0101101011,则Cro(X,Y)=1110010110。

为了更清楚的说明在本实施例中所述后端服务器S具体生成哪一种第五验证信息,下面将以图示进行说明,如图3所示,在图3中示出了第三验证信息、第四验证信息到第五验证信息的生成关系,其中,两种第三验证信息分别基于KR和KRold生成,两种第四验证信息分别基于IDS和IDSold生成,那么基于第三验证信息和第四验证信息的第五验证信息就会存在四种可能,具体对应关系如图3。

那么在上述实施例的基础上,在本申请的一个实施例中,相应的,步骤S5具体包括:所述读写器R接收到所述后端服务器S反馈的第五验证信息后,判定P4'是否和P4相等,如果P4'等于P4,则判定所述后端服务器S合法,更新读写器密钥:KR'=IDR⊕(KR>>l/2),并将P2'发送给所述标签T;如果P4”等于P4,则判定所述后端服务器S合法,更新读写器密钥:KR=KRold,KR'=IDR⊕(KR>>l/2),并将P2”发送给所述标签T,如果P4'或P4”均与P4不相等,则判定所述后端服务器不合法,通信终止。

相应的,步骤S6具体包括:所述标签T接收到P2'或者P2”后,判定P2'或者P2”是否等于P2,如果P2'等于P2,则判定所述后端服务器S合法,并判定所述标签T、所述读写器R和所述后端服务器S之间的双向认证成功,更新标签假名IDS',IDS'=x⊕(IDS>>l/2);如果P2”等于P2,则判定所述后端服务器S合法,并判定所述标签T、所述读写器R和所述后端服务器S之间的双向认证成功,进行数据更新:IDS=IDSold,IDS'=x⊕(IDS>>l/2);如果P2'或者P2”均不等于P2, 则判定所述后端服务器S不合法,并判定所述标签T、所述读写器R和所述后端服务器S之间的双向认证失败。

在上述实施例的基础上,在本申请的一个优选实施例中,所述预先产生的第一随机数r的过程,具体包括:

利用随机数生成器生成第一随机数r。

需要说明的是,在本实施例中,利用随机数生成器生成第一随机数r而不用随机数生成函数MIXBITS(X,Y)生成第一随机数r的原因是:如果所述读写器R通过MIXBITS(X,Y)函数来生成第一随机数r,则代入其中的参数X和Y相对应的值为所述读写器R的身份标识IDR和密钥KR,而后需要将所述第一随机数r发送给所述标签T,从而有可能会存在泄漏所述读写器R的信息的问题。因此在本实施例中优选采用随机数生成器生成第一随机数r。

在上述实施例的基础上,在本申请的又一个优选实施例中,所述基于标签假名IDS和所述第一随机数r生成第二随机数x,具体包括:

基于所述标签假名IDS和所述第一随机数r,利用随机数生成函数MIXBITS生成第二随机数x。具体的x=MIXBITS(IDS,r)。

需要说明的是,在本实施例中,所述标签T利用随机数生成函数MIXBITS生成所述第二随机数x,而不采用随机数生成器生成第二随机数x的原因是:

由于第二随机数x的生成参数中包括了一个不确定的第一随机数r,则不会存在读写器R利用MIXBITS函数生成第一随机数r时存在的身份信息泄露的问题。并且,利用所述随机数生成函数MIXBITS生成所述第二随机数x,只需要将MIXBITS函数功能嵌到标签T里面即可实现,而不需要内置随机数生成器,进一步降低了所述标签T的成本。同时,由于本实施例中的标签假名是通过所述标签T产生的随机数进行更新,而每次认证中的标签T所产生的随机数均不同,一端标签T的所有权发生转移,旧拥有者不能获得标签T的新的身份信息,从而无法访问该标签T,进而保证所述标签T的所有权转移的安全性。利用MIXBITS函数生成随机数的具体过程如图4所示。

经过安全性分析,所述移动射频识别系统能够抵抗追踪攻击、重放攻击、假冒攻击、中间人攻击、去同步化攻击、暴力破解攻击等恶意攻击,同时实现所述标签T和读写器R的匿名性和标签T所有权转移的安全性。在计算量方面,由于将大部分计算过程都转移到所述后端服务器S中,所述标签T只通过 MIXBITS函数保持数据的随机性,使标签T具有不需要随机数产生器也能产生随机数的功能,降低了所述标签T的硬件成本。

相应的,本申请还提供了一种移动射频识别系统,如图5所示,包括:标签T、读写器R和后端服务器S;其中,

所述读写器R,用于将预先产生的第一随机数r和认证请求发送给所述标签T,及接收到标签T反馈的消息组合一(P1,M1)后,利用交叉位运算和循环校验算法生成第二验证信息Q=(P3,P4),其中P3,P4为所述第二验证消息Q的左右两部分,每部分长度为l,并将消息组合二(P1,P3,M1,r)发送给所述后端服务器S;和用于接收到所述后端服务器S反馈的第五验证信息后,所述第五验证信息为(P2',P4')或(P2”,P4')或(P2',P4”)或(P2”,P4”),基于收到的P4'或者P4”判断所述后端服务器S是否合法,如果合法,则更新所述读写器R的密钥库,并将P2'或者P2”发送给所述标签T;否则,判定认证失败,终止通信;

所述后端服务器S,用于接收到所述读写器R发送的消息组合二(P1,P3,M1,r)后,基于所述后端服务器S中存储的读写器R身份标识IDR、读写器密钥KR或者上一轮读写器密钥KRold和所述第一随机数r利用交叉位运算和循环校验算法生成第三验证信息Q'=(P3',P4')或者Q”=(P3”,P4”),其中(P3”,P4”)基于上一轮读写器密钥KRold生成,验证所述读写器R是否合法,如果合法,则更新所述读写器R的密钥库,并基于预先存储的标签假名IDS或者上一轮标签假名IDSold和所述加密信息M1计算第二随机数x,基于所述后端服务器S中预先存储的标签假名IDS或者上一轮标签假名IDSold、所述第一随机数r和所述第二随机数x利用交叉位运算和循环校验算法生成第四验证信息P'=(P1',P2'),其中P1',P2'为P'的左右两部分,每部分长度为l,或者P'=(P1”,P2”),其中P1”,P2”为P”的左右两部分,每部分长度为l,验证所述标签T是否合法,如果合法,则更新所述标签T的密钥库,并将第五验证信息发送给所述读写器R;否则,判定认证失败,终止通信;

所述标签T,用于接收到所述读写器R发送的第一随机数r和所述认证请求后,基于标签假名IDS和所述第一随机数r生成第二随机数x,并对所述第二随机数x进行加密,得到M1,并利用交叉位运算和循环校验算法生成第一 验证信息P=(P1,P2),其中P1,P2为所述第一验证消息P的左右两部分,每部分长度为l,并将消息组合一(P1,M1)发送给所述读写器R;基于接收到的P2'或者P2”判断所述后端服务器S是否合法,如果合法,则判定所述标签T、所述读写器R和所述后端服务器S之间的双向认证成功,更新所述标签T的密钥库;否则,判定认证失败,终止通信。

在本实施例中,l=128bits,所述移动射频识别系统通过在所述读写器R内部产生第一随机数r发送给所述标签T开始双向认证过程,在之后的所述读写器R、所述标签T和所述后端服务器S之间的双向认证过程中,利用交叉位运算和循环校验算法加密它们之间传输的信息,同时在认证成功后及时更新所述标签T和所述读写器R各自的密钥库,有效地隐藏了所述标签T和读写器R的身份信息,保护了读写器R与标签T的隐私信息。并且由于交叉位运算和循环校验算法的计算量小,运算速度快,在保证双向认证的目的的前提下,有效地提高了双向认证的效率。

另外,在整个双向认证过程中,大部分的计算量在所述后端服务器S进行,减小了标签T的计算量,从而降低了标签T的计算成本,并且所述标签T只需要进行简单的数据运算而不需要随机数发生器,有效地降低了对所述标签的硬件要求,从而进一步降低了所述标签T的成本。

进一步的,在所述标签T、所述读写器R和所述后端服务器S之间进行的验证信息的传输过程中,只进行部分验证信息的传输,从而使敌手无法获取隐私信息,进而确保双向认证的通信安全。

在上述实施例的基础上,在本申请的一个具体实施例中,所述后端服务器S具体用于,在收到消息组合二(P1,P3,M1,r)后,基于所述后端服务器S中存储的读写器R身份标识IDR、读写器密钥KR和所述第一随机数r生成第三验证信息Q'=(P3',P4')=Cro(KR,CRC(IDR⊕r)),并判断P3'是否等于P3,如果等于,则判定所述读写器R合法,并对读写器R的密钥库进行更新,得到读写器R更新密钥KR',KR'=IDR⊕(KR>>l/2);

如果不等于,则基于所述后端服务器S中存储的读写器R身份标识IDR、上一轮读写器密钥KRold和所述第一随机数r生成第三验证信息Q”=(P3”,P4”)=Cro(KRold,CRC(IDR⊕r)),并判断P3”是否等于P3,若等于,则判定所述读写器R合法,并更新读写器R的密钥库:KR=KRold, KR'=IDR⊕(KR>>l/2);如果P3”不等于P3,则判定所述读写器R不合法,通信立即终止;

当P3'等于P3时,利用所述后端服务器S中预先存储的标签假名IDS和所述加密信息M1计算x=M1⊕IDS,基于所述后端服务器S中预先存储的标签假名IDS、所述第一随机数r和x生成第四验证信息P'=(P1',P2')=Cro(x,CRC(IDS⊕r)),并判断P1'是否等于P1,若等于,则判定所述标签T合法,并更新标签假名,得到更新的标签假名IDS',IDS'=x⊕(IDS>>l/2),并将(P2',P4')发送给所述读写器R;若不等于,则利用所述后端服务器S中预先存储的上一轮标签假名IDSold和所述加密信息M1计算x=M1⊕IDSold,基于所述后端服务器S中预先存储的上一轮标签假名IDSold、所述第一随机数r和x生成第四验证信息P”=(P1”,P2”)=Cro(x,CRC(IDS⊕r)),并判断P1”是否等于P1,如果等于,则判定所述标签T合法,并更新标签假名:IDS=IDSold,IDS'=x⊕(IDS>>l/2),并将(P2”,P4')发送给所述读写器R;若P1”不等于P1,则判定所述标签不合法,通信立即终止;

当P3”等于P3时,利用所述后端服务器S中预先存储的标签假名IDS和所述加密信息M1计算x=M1⊕IDS,基于所述后端服务器S中预先存储的标签假名IDS、所述第一随机数r和x生成第四验证信息P'=(P1',P2')=Cro(x,CRC(IDS⊕r)),并判断P1'是否等于P1,若等于,则判定所述标签T合法,并更新标签假名,得到更新的标签假名IDS',IDS'=x⊕(IDS>>l/2),并将(P2',P4”)发送给所述读写器R;若不等于,则利用所述后端服务器S中预先存储的上一轮标签假名IDSold和所述加密信息M1计算x=M1⊕IDSold,基于所述后端服务器S中预先存储的上一轮标签假名IDSold、所述第一随机数r和x生成第四验证信息P”=(P1”,P2”)=Cro(x,CRC(IDS⊕r)),并判断P1”是否等于P1,如果等于,则判定所述标签T合法,并更新标签假名:IDS=IDSold,IDS'=x⊕(IDS>>l/2),并将(P2”,P4”)发送给所述读写器R;如果P1”不等于P1,则判定所述标签不合法,通信立即终止;

其中,Cro代表交叉位运算,CRC代表循环校验函数,⊕代表异或运算,l=128bits。

为了更清楚的对交叉位运算进行说明,本申请的一个具体实施例对交叉位运算进行了详细说明,具体地,设X和Y为两个具有偶数位L位的二进制数,X=X1X2…XL,Y=Y1Y2…YL,其中,Xi,Yi的取值范围为0或1,i=1,2…L;对X和Y进行交叉位运算是指由X的奇数位和Y的偶数位相互交叉形成新的L位数组;具体运算过程中:定义两个指针P1和P2分别指向X和Y,当P1指向X的奇数位时,把此位置上的值赋予运算结果的偶数位;当P2指向Y的偶数位时,将此位置上的值赋予运算结果的奇数位。如图2所示,例如取L=10,设X=1100101100,Y=0101101011,则Cro(X,Y)=1110010110。

为了更清楚的说明在本实施例中所述后端服务器S具体生成哪一种第五验证信息,下面将以图示进行说明,如图3所示,在图3中示出了第三验证信息、第四验证信息到第五验证信息的生成关系,其中,两种第三验证信息分别基于KR和KRold生成,两种第四验证信息分别基于IDS和IDSold生成,那么基于第三验证信息和第四验证信息的第五验证信息就会存在四种可能,具体对应关系如图3。

那么在上述实施例的基础上,在本申请的一个实施例中,相应的,所述读写器R接收到所述后端服务器S反馈的第五验证信息后,判定P4'是否和P4相等,如果P4'等于P4,则判定所述后端服务器S合法,更新读写器密钥:KR'=IDR⊕(KR>>l/2),并将P2'发送给所述标签T;如果P4”等于P4,则判定所述后端服务器S合法,更新读写器密钥:KR=KRold,KR'=IDR⊕(KR>>l/2),并将P2”发送给所述标签T,如果P4'或P4”均与P4不相等,则判定所述后端服务器不合法,通信终止。

相应的,所述标签T接收到P2'或者P2”后,判定P2'或者P2”是否等于P2,如果P2'等于P2,则判定所述后端服务器S合法,并判定所述标签T、所述读写器R和所述后端服务器S之间的双向认证成功,更新标签假名IDS',IDS'=x⊕(IDS>>l/2);如果P2”等于P2,则判定所述后端服务器S合法,并判定所述标签T、所述读写器R和所述后端服务器S之间的双向认证成功,进行数据更新:IDS=IDSold,IDS'=x⊕(IDS>>l/2);如果P2'或者P2”均不等于P2,则判定所述后端服务器S不合法,并判定所述标签T、所述读写器R和所述后端服务器S之间的双向认证失败。

在上述实施例的基础上,在本申请的一个优选实施例中,所述读写器R还包括:随机数生成器;

所述随机数生成器,用于生成第一随机数r。

需要说明的是,在本实施例中,所述读写器R利用随机数生成器生成第一随机数r而不用随机数生成函数MIXBITS(X,Y)生成第一随机数r的原因是:如果所述读写器R通过MIXBITS(X,Y)函数来生成第一随机数r,则代入其中的参数X和Y相对应的值为所述读写器R的身份标识IDR和密钥KR,而后需要将所述第一随机数r发送给所述标签T,从而有可能会存在泄漏所述读写器R的信息的问题。因此在本实施例中优选采用随机数生成器生成第一随机数r。

在上述实施例的基础上,在本申请的又一个优选实施例中,所述标签T通过随机数生成函数MIXBITS生成第二随机数x,x=MIXBITS(IDS,r),IDS为所述标签假名、r表示所述第一随机数。

需要说明的是,在本实施例中,所述标签T利用随机数生成函数MIXBITS生成所述第二随机数x,而不采用随机数生成器生成第二随机数x的原因是:

由于第二随机数x的生成参数中包括了一个不确定的第一随机数r,则不会存在读写器R利用MIXBITS函数生成第一随机数r时存在的身份信息泄露的问题。并且,利用所述随机数生成函数MIXBITS生成所述第二随机数x,只需要将MIXBITS函数功能嵌到标签T里面即可实现,而不需要内置随机数生成器,进一步降低了所述标签T的成本。同时,由于本实施例中的标签假名是通过所述标签T产生的随机数进行更新,而每次认证中的标签T所产生的随机数均不同,一端标签T的所有权发生转移,旧拥有者不能获得标签T的新的身份信息,从而无法访问该标签T,进而保证所述标签T的所有权转移的安全性。具体地,利用MIXBITS函数生成随机数的具体过程如图4所示。

经过安全性分析,所述移动射频识别系统能够抵抗追踪攻击、重放攻击、假冒攻击、中间人攻击、去同步化攻击、暴力破解攻击等恶意攻击,同时实现所述标签T和读写器R的匿名性和标签T所有权转移的安全性。在计算量方面,由于将大部分计算过程都转移到所述后端服务器S中,所述标签T只通过MIXBITS函数保持数据的随机性,使标签T具有不需要随机数产生器也能产生随机数的功能,降低了所述标签T的硬件成本。

综上所述,本申请实施例提供了一种移动射频识别的双向认证方法及移 动射频识别系统,其中,所述移动射频识别的双向认证方法通过在所述读写器R内部产生第一随机数r发送给所述标签T开始双向认证过程,在之后的所述读写器R、所述标签T和所述后端服务器S之间的双向认证过程中,利用交叉位运算和循环校验算法加密它们之间传输的信息,同时在认证成功后及时更新所述标签T和所述读写器R各自的密钥库,有效地隐藏了所述标签T和读写器R的身份信息,保护了读写器R与标签T的隐私信息。并且由于交叉位运算和循环校验算法的计算量小,运算速度快,在保证双向认证的目的的前提下,有效地提高了双向认证的效率。

另外,在整个双向认证过程中,大部分的计算量在所述后端服务器S进行,减小了标签T的计算量,从而降低了标签T的计算成本,并且所述标签T只需要进行简单的数据运算而不需要随机数发生器,有效地降低了对所述标签的硬件要求,从而进一步降低了所述标签T的成本。

进一步的,在所述标签T、所述读写器R和所述后端服务器S之间进行的验证信息的传输过程中,只进行部分验证信息的传输,从而使敌手无法获取隐私信息,进而确保双向认证的通信安全。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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