一种基于交叉位运算和循环校验函数的RFID双向认证方法与流程

文档序号:12068172阅读:197来源:国知局
一种基于交叉位运算和循环校验函数的RFID双向认证方法与流程

本发明涉及射频识别的研究领域,特别涉及一种基于交叉位运算和循环校验函数的RFID双向认证方法。



背景技术:

无线射频识别技术(radio frequency identification,RFID)是一种利用射频信号实现的无接触信息传输,并且通过所传输的信息来达到识别的目的。作为一种快速、准确地收集和处理信息的高新技术,通过对实体对象的唯一有效的标识,RFID技术被广泛应用于国防、交通等各个领域中。

由于RFID技术是利用无线射频通道来交换数据的,因此很容易受到外部环境的干扰以及攻击者的恶意的攻击。如果RFID标签中存放的个人信息或者商业情报等一旦被恶意的攻击者非法获取,就会给使用者带来巨大的损失。因此设计一种安全的RFID双向认证协议具有重大的意义。

Mamun等人提出的认证方案不能抵抗主动攻击,攻击者通过不断的询问标签,来分析标签的回复信息,就可以完全推导出标签中存放的所有密钥信息(Mamun M S I,Miyaji A,Rahman M S.A secure and private RFID authentication protocol under SLPN problem[C]//Proc of the 6th Int Conf on Network and System Security.Berlin:Springer,2012:476-489.);王少辉等人提出的认证方案存在暴力破解安全缺陷,因为标签产生的随机数r2与读写器产生的随机数r1都是明文传输,且Hash函数算法是公开的,因此攻击者可以在阻断标签与读写器通信的前提下,采用穷举法使用暴力破解手段来穷举出密钥Key的值,从而获取标签存放的信息(王少辉,刘素娟,陈丹伟.满足后向隐私的可扩展RFID双向认证方案[J].计算机研究与发展,2013,50(6):1276-1284.);Peris等人提出的认证方案属于超轻量级的认证协议,该协议中没有使用计算量较大的HASH函数,而是仅仅只使用了异或等简单的位运算,但是该认证方案不能抵抗去同步化攻击,即攻击者可以阻塞最后一步认证过程,让读写器无法认证标签,导致不能更新IDS和密钥K,但是标签却已经更新了密钥K,同时,假使攻击者对标签发送Hello消息,则标签会返回当前的IDS,攻击者进而就可以跟踪标签,不能保护用户的隐私(Peris-Lopez P,Hernandez-Castro C,Estevez-Tapiador M,et al.LMAP:A real lightweight mutual authentication protocol for low-cost FID tags[C]//Proc of 2nd Workshop on RFID Security.Berlin:Springer,2006:1-12.);Berbain等人提出的认证方案在实际中实用性不大,因该协议是基于伪随机数生成器和通用HASH函数被提出的,若内部状态链的长度取值过小,则不能抵抗DoS攻击,若取值过大,则会造成读写器计算内部状态链的代价过大(Berbain C,Billet O,Etrog J,et al.An efficient forward private RFID protocol[C]//Proc of the 16th ACM Conf on Computer and Communications Security.New York:ACM,2009:43-53.);丁振华等人提出的认证方案虽然是双向认证协议,可以抵抗假冒攻击、重放攻击和去同步化攻击等攻击,但是该认证方案不具备前向安全性,因为如果当前的ID信息泄漏,则攻击者可以分析出以前的交互信息,从而跟踪标签的活动足迹(丁振华,李锦涛,冯波.基于Hash函数的RFID安全认证协议研究[J].计算机研究与发展,2009,46(4):583-592.);Ma Changshe等人提出的基于PRF提出了一种满足强不可预测性的RFID单向认证协议,但是该认证方案容易受到拒绝服务攻击,如果攻击者不断发送消息C给标签,则标签会不断的更新自己的计数CTR,导致读写器遍历查询的时间增加(Ma Changshe,Li Yingjiu,Deng R H,et al.RFID privacy:Relation between two notions,minimal condition,and efficient construction[C]//Proc of the 16th ACM Conf on Computer and Communications Security.New York:ACM,2009:54-65.);金永明等人提出的认证方案存在一定的安全隐患,读写器产生的随机数r1为明文传输,导致攻击者易获取该信息,从而使得攻击者可以采用穷举法的方法穷举出密钥K的值,最终攻击者可以获得标签存放的隐私信息(金永明,吴棋滢等.基于PRF的RFID轻量级认证协议研究[J].计算机研究与发展,2014,51(7):1506-1514.)。基于上面的叙述,因此设计一个安全的双向认证协议具有重大的实用价值意义。



技术实现要素:

本发明的主要目的在于克服现有技术的缺点与不足,提供一种基于交叉位运算和循环校验函数的RFID双向认证方法,解决了RFID系统中标签与读写器之间双向认证存在安全缺陷的问题。

为了达到上述目的,本发明采用以下技术方案:

本发明提供了一种基于交叉位运算和循环校验函数的RFID双向认证方法,包括下述步骤:

(1)读写器向标签发送认证请求命令;

(2)标签向读写器发送TID作为响应;

(3)读写器验证标签的真伪,再计算A和B的值,并将A和B的值传给标签,其中

(4)标签先通过计算得到R1,R1表示读写器产生的一个随机数,再通过B来验证读写器的真伪,接着再计算D的值,最后将D的值传给读写器;

(5)读写器再次验证标签的真伪,再计算E和F的值,并将E和F的值传给标签,同时读写器更新密钥,其中

(6)标签先通过计算得到R2,R2表示读写器产生的另一个随机数,通过F再次验证读写器的真伪,最后标签根据接收到的消息更新密钥。

作为优选的技术方案,步骤(1)中,首先读写器向标签发送一个“Hello”信号,并发起认证请求。

作为优选的技术方案,步骤(2)中,标签在收到读写器发送来的认证请求之后,将自身存放的TID作为响应,发送给读写器。

作为优选的技术方案,读写器在收到标签发送来的TID之后,开始查询存放的信息中是否存在TID,若不存在,说明标签是伪造的,认证立刻停止;若存在,读写器接着产生一个长度为L位的随机数R1,然后用与之相对应的ID、K1来计算A的值,用K1、K2、ID、R1来计算B的值,最后将A和B的值都传给标签。

作为优选的技术方案,标签在收到读写器传来的A和B之后,标签首先用自身存放的ID、K1来计算从而可以得到随机数R1,然后用计算出来的R1,以及自身存放的K1、K2、ID来计算B`,并将B`与B进行对比,若不相等,说明读写器是伪造的,认证立刻停止;若相等,说明读写器合法,接着标签用计算出来的R1,以及自身存放的K1、K2、ID来计算D的值,最后将D的值传给读写器,其中:

作为优选的技术方案,读写器在收到标签发送来的D之后,读写器首先用自身产生的随机数R1以及自身存放的K1、K2、ID来计算D`,并将D`与D进行对比,若不相等,说明标签是伪造的,认证立刻停止;若相等,说明标签合法,读写器接着产生一个长度为L位的随机数R2,然后用自身存放的K1、K2来计算E的值,用K1、K2、R1、R2来计算F的值,并将E和F的值都传给标签,最后读写器更新密钥,其中,

作为优选的技术方案,标签在收到读写器传来的E和F之后,标签首先用自身存放的K2、K1来计算E⊕CRC(Cro(K2,K1)),从而可以得到随机数R2,然后用计算出来的R2、R1,以及自身存放的K1、K2来计算F`,并将F`与F进行对比,若不相等,说明读写器是伪造的,认证立刻停止;若相等,说明读写器合法,然后标签开始更新自身的密钥,其中,

本发明与现有技术相比,具有如下优点和有益效果:

(1)本发明抛弃传统的Hash运算加密传输的方法,采用位运算方法以及循环校验码方法对传输信息进行加密,从而减少标签端及读写器端的运算量,使本发明中的协议可以达到超轻量级的级别;

(2)本发明抛弃标签端产生随机数的做法,选择由读写器端产生随机数,从而达到降低标签成本的目标;

(3)本发明充分利用标签和读写器之间共享的标签唯一的标识符ID的信息,减少信息的引入和存放,将标签的标识符ID进行加密传输,作为双向认证的凭据,从而降低标签端的存储成本。

附图说明

图1是本发明交叉位运算计算过程流程图。

图2是本发明双向认证协议示意图。

图3是本发明的双向认证方法的流程图。

具体实施方式

下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。

实施例

首先给出本协议中各符号的含义:

R:阅读器;

T:标签;

ID:标签的唯一标识符(长度为L位);

TID_new:最新标签临时身份标识(长度为L位);

TID_old:上一轮标签临时身份标识(长度为L位);

Ki_old:标签和阅读器间的上一轮共享密钥(其中i=1,2;长度为L位);

Ki_new:标签和阅读器间的最新共享密钥(其中i=1,2;长度为L位);

R1,R2:读写器产生的随机数(长度为L位);

Cro(X,Y):交叉位运算;

CRC(X):循环校验函数(用来加密X的值);

异或运算;

设X、Y是两个具有偶数位L位的二进制数,X=x1x2x3...xL,Y=y1y2y3...yL,xi,yi取值范围为{0,1},i=1,2,..L。交叉位运算Cro(X,Y)是指由X的奇数位和Y的偶数位相互交叉形成新的L位数组。交叉位运算可在标签中有效实现:定义两个指针p1和p2分别指向X和Y,当p1指向X的奇数位时,把此位置上的值赋予运算结果的偶数位;当p2指向Y的偶数位时,则把此位置上的指赋予运算结果的奇数位。这里取长度L=12,设X=011000110101,Y=011101001100,则Cro(X,Y)=101110011000,具体实现流程如图1所示。

在RFID系统中读写器与后端数据库之间通过有线传输方式进行信息的传输,一般认为两者之间的传输是安全的,因此将后端数据库和读写器看成一个整体。读写器与标签之间的双向认证具体过程如图2所示:

对图2中出现的A,B,D,E,F的说明:

如图3所示,整个协议的认证步骤描述如下:

(1)首先读写器向标签发送一个“Hello”信号,并发起认证请求;

(2)标签在收到读写器发送来的认证请求之后,将自身存放的TID作为响应,发送给读写器;

(3)读写器在收到标签发送来的TID之后,开始查询存放的信息中是否存在TID。若不存在,说明标签是伪造的,认证立刻停止;若存在,读写器接着产生一个长度为L位的随机数R1,然后用与之相对应的ID、K1来计算A的值,用K1、K2、ID、R1来计算B的值,最后将A和B的值都传给标签;

(4)标签在收到读写器传来的A和B之后,标签首先用自身存放的ID、K1来计算A⊕CRC(Cro(K1,ID)),从而可以得到随机数R1,然后用计算出来的R1,以及自身存放的K1、K2、ID来计算B`,并将B`与B进行对比。若不相等,说明读写器是伪造的,认证立刻停止;若相等,说明读写器合法,接着标签用计算出来的R1,以及自身存放的K1、K2、ID来计算D的值,最后将D的值传给读写器;

(5)读写器在收到标签发送来的D之后,读写器首先用自身产生的随机数R1以及自身存放的K1_new、K2_new、ID来计算D`,并将D`与D进行对比。若不相等,读写器再用R1、K1_old、K2_old、ID来计算D``,并将D``与D进行对比,若不相等,说明标签是伪造的,认证立刻停止;若相等,说明标签合法,读写器接着产生一个长度为L位的随机数R2,然后用自身存放的K1_old、K2_old来计算E的值,用K1_old、K2_old、R1、R2来计算F的值,并将E和F的值都传给标签,最后读写器更新密钥,更新方式如下运算:若相等,说明标签合法,读写器接着产生一个长度为L位的随机数R2,然后用自身存放的K1_new、K2_new来计算E的值,用K1_new、K2_new、R1、R2来计算F的值,并将E和F的值都传给标签,最后读写器更新密钥,更新方式如下运算:TID_old=TID_new;K1_old=K1_new;K2_old=K2_new;

(6)标签在收到读写器传来的E和F之后,标签首先用自身存放的K2、K1来计算从而可以得到随机数R2,然后用计算出来的R2、R1,以及自身存放的K1、K2来计算F`,并将F`与F进行对比。若不相等,说明读写器是伪造的,认证立刻停止;若相等,说明读写器合法,然后标签开始更新自身的密钥,更新方式如下运算:

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

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