一种读写器与标签卡之间的动态认证方法及实现装置的制作方法

文档序号:6355611阅读:156来源:国知局
专利名称:一种读写器与标签卡之间的动态认证方法及实现装置的制作方法
技术领域
本发明涉及到射频识别技术,尤其涉及一种基于高度自治RFID读写器与标签卡 之间的动态ID认证方法及实现装置。
背景技术
射频识别(RFID)是一种非接触式的自动识别技术,它通过射频信号自动识别目 标对象并获取相关数据。该技术无需人工干预,可在复杂的环境中工作,且该技术的显著优 点是不需要物理上接触。目前,RFID产品已被广泛应用于零售,自动收费,动物识别,物流, 仓储,图书馆管理等领域。RFID基本组成包括读写器(reader),RFID标签(tag)以及后台数据库(DB)。一 般情况下,电子标签是由天线和标签专用芯片组成。每个标签有唯一的电子编码,附在目标 对象上。读写器是对标签进行读写操作的设备,主要包括射频模块和数字信号处理单元两 部分。读写器的基本功能就是提供与标签进行数据传输的途径。后台数据库主要是存储信 息,是一个数据库管理系统,包含了系统中所有标签的数据和认证信息。RFID系统的标签设备具有一些局限性,例如有限的存储空间、有限的计算能力等 等,所以设计高效、安全、低成本的RFID安全认证方法成为了一个新的具有挑战性的问题。 目前实现RFID安全性机制所采用的方法主要有物理机制和密码机制两种。物理机制,需要 附加较多的物理元件和设备,增加标签的成本,不适用低成本标签的RFID系统,所以在最 近的RFID安全研究中提出较多的是基于密码技术的安全机制,而基于Hash函数的RFID安 全认证的设计更是备受关注。目前基于密码技术的RFID安全认证大致可以分为两类基于 静态ID机制的和基于动态ID机制的。所谓“基于静态ID机制”方法是指标签的ID在认证 过程中不会进行更新,一直保持不变,一般用于安全需求相对较低的场合,不能满足前向安 全性;而“基于动态ID机制”方法是指标签的标识信息在认证会话中可以进行更新,这样即 使攻破标签的当前时刻的状态,也无法推测之前任意时刻的状态或者将之前获得的状态与 之关联起来。常用于存储可写的标签卡、安全需求较高的场合,能够满足前向安全性需求。在传统的认证方法中,其认证方法基本模型如图1所示,首先读写器向标签发起 认证请求,标签接收到后,给读写器返回一个响应包,读写器接受到这个包后,不进行任何 操作,直接将响应数据包转传给后台数据库,由后台数据库根据响应包对读写器和标签进 行认证,若认证成功,则后台数据库将标签的相关信息传给读写器,由读写器做相应处理。传统方法的一个重要的缺点是它有很强的可靠性假设,它要求读写器与后台数据 库之间时时保持连接,并认为读写器与后台数据库之间的连接是安全的。也就是说如果读 写器与后台数据库之间不能连接,则不能进行认证,也就不能够进行相应的操作处理。但是 在现实生活中,读写器与后台数据库之间的信道不能达到真正的安全,并且随着RFID技术 在移动设备上的广泛应用,就不能保证读写器与后台数据库之间的实时连接。还有保持实 时的链接费用也会很高,阻碍了这种技术的广泛应用。

发明内容
有鉴于此,本发明的主要目的在于提供一种读写器与标签卡之间的动态认证方法 及实现装置,用于解决传统认证方法必须依赖于与后台数据库的实时在线、可靠安全地连 接,无法高度自治地由读写器对标签卡进行认证的技术问题。为达到上述目的,本发明的技术方案是这样实现的一种读写器与标签卡的动态认证方法,该方法包括在认证数据库中生成(id^metalD。」,index」,Cj),为授权的读写器下发(metaIDraJ, h(ri; index」),,为标签卡下载(metaID。tj,index」,ctj),其中id」为标签卡Tj的唯一标 识,metalD。」、metaIDcrJ, metaIDctJ分别为id」经过Cj、crJ, ctJ次哈希运算后所得值,Indexj 为与标签卡对应的索引值,r,为读写器氏的唯一标识,h(ri; Indexj)为认证数据库生成的 用于在读写器的哈希表Li中查找标签信息的位置值,h为哈希函数;读写器氏生成随机数IV然后向标签卡Tj发送携带A和的请求;标签卡Tj生 成随机数 nt,并计算 HRI = hOv indeXj),IN=h ( r,., ηΓ, η,) HRI, ME = h(metaIDctJ, nr, nt),然后向读写器氏反馈IN、ME、ctJ和nt ;读写器氏计算h (ri; nr, nt)的值,并与IN异或得到HRI值,然后在哈希表 中查找是否存在与HRI值相等的标签信息,若存在且满足条件 .- .^ 0,则计算 metaID = hCti"Cri( metaIDCrj),否则对标签卡的验证失败;读写器氏计算h(metaID,n,,nt)值,然后判断所得值与ME是否相等,若相等,则读 写器对标签的验证成功。进一步地,所述方法还包括如下标签卡Tj对读写器氏的认证步骤读写器氏计算M = h (h (metaID),nr, nt)值,并将M值发送给标签卡;标签卡Tj收到M后,计算h O1(HietaIDctj),nr, nt),然后比较所得值是否与M相等, 若相等,则标签卡对读写器的认证成功,否则对读写器的认证失败。进一步地,所述方法还包括更新的步骤在读写器氏对标签卡Tj认证成功后,执行HietaIDetj = metaID, crJ = Ctj的赋值操 作;在标签卡Tj对读写器氏认证成功后,执行metaID。tj = h (metaIDctJ),ctJ = ctJ+1 的操作。进一步地,读写器氏在获得HRI值后,在哈希表中查找是否存在与HRI值相等的 标签信息的方法为计算h(ri,Indexj) % maxL求余得到对应标签所在哈希表中的地址,然后在该地址 对应的线性链表中查找节点值与hOv indexj)相等的节点,若找到则表示存在与HRI值相 等的标签信息,否则表示不存在与HRI值相等的标签信息。基于本发明实施例,本发明还提供一种搜索标签卡的方法,该方法包括读写器Ri向多个标签卡广播IN、a、IN= [h(h(ri index」),η》]m,其中,巧为 读写器的唯一标识,r^为读写器生成的随机数,Indexj为所要查找的标签卡L的唯一索引, []m表示取所得哈希值的前m位;标签卡接收到广播后,每个标签卡计算[h(h(ri,ownindex), rO]m并与IN值做 比较,若二者不相等,则不做响应,否则标签卡生成伪随机数nt,计算TM = h(metaIDctJ, nr,nt),及TC=h(r,., ηΓ, η,) Cij-,然后将TM、TC及nt反馈给读写器;读写器Ri通过反异或得到Ctj,然后计算metaID= het|、( metaIDC|),及h (metaID,
nr, nt),并将所得值与接收的TM比对,若二者相等,则表示读写器氏查找标签卡L成功,否 则查找失败。进一步地,所述搜索标签卡的方法还包括在查找成功时,读写器氏执行HietaIDetj = metaID, crJ = Ctj的赋值操作;读写器氏发送查找成功信息给标签卡Tj,标签卡Tj对读写器氏认证成功后,执行 metaIDctJ = h (metaIDctJ),ctJ = ctJ+l 的操作。基于本发明实施例,本发明还提供一种射频识别RFID读写器,该读写器包括获取标签信息模块,用于认证数据库对读写器氏的合法性认证及向认证数据库请 求下载标签卡 Tj 的信息(metaIDCTj,h(ri,Indexj),crJ);随机数生成模块,用于生成随机数;认证请求模块,用于向标签卡Tj发送携带A和的请求,以及接收标签卡发送的 携带IN、ME、ctJ和nt值的响应消息;位置查找模块,用于计算h nr, nt)的值,并与IN异或得到HRI值,然后在哈希 表中查找是否存在与HRI值相等且满足ctj-c _ ^ 0的标签信息,若存在,则通知认证响应模 块认证失败;否则通知标签标识认证模块查找成功;标签标识认证模块,在位置查找模块查找成功时计算h (metaID, nr, nt)值,然后判 断所得值与ME是否相等,若相等,则通知认证响应模块认证成功,否则通知认证响应模块 认证失败;认证响应模块,用于向标签卡发送认证失败信息,或发送携带M = h(h(metaID), nr, nt)值的认证成功信息;存储模块,用于存储哈希表、随机数、读写器标识信息,所述哈希表中存储认证数 据库下发的标签信息(metaID。rj,h(ri,index」),crJ)。进一步地,该读写器还包括更新模块,用于在读写器氏对标签卡Tj认证成功后,执行HietaIDetj = metaID, Crj =ctJ的赋值操作。基于本发明实施例,本发明还提供一种标签卡,该标签卡包括存储模块,用于存储从认证数据库下载的标签信息(metaID。tj,Indexj, ctJ);随机数生成模块,用于生成随机数nt ;认证响应模块,用于接收读写器氏发送的携带A和η,的请求,并计算HRI =h(ri indeXj)JN=h (r,., ηΓ, η,) HRI,ME = h(metaIDctJ, nr, nt),然后向读写器 Ri 反馈携 带IN、ME、ctJ和nt值的响应消息;读写器认证模块,用于在接收到读写器氏发送的携带M值的请求消息时,计算 h (h (metaIDctJ),nr, nt),然后比较所得值是否与M相等,若相等,则标签卡对读写器的认证成 功,否则对读写器的认证失败。进一步地,该标签卡还包括更新模块,用于在标签卡L对读写器氏认证成功后,执行metaID。tJ = h (HietaIDctj),ctJ = ctJ+1 的操作。
本发明技术方案与现有传统标签认证方法相比,有以下一些有益效果(1)读写器不需要与后台数据库实时保持连接,对标签卡的认证不在数据库侧完 成,本发明所述的认证数据库只负责维护和提供认证信息,在向合法的读写器和标签卡下 载了认证信息后,由读写器和标签卡独立进行相互认证,不再依赖后台数据库来在线认证 标签卡,方便了用户的使用。(2)从安全角度进行分析,本发明采用授权访问机制,只有合法的读写器才能从认 证数据库中获取对应标签的初始ID值,也只有合法的读写器才能认证或者更新相应的标 签的状态;本发明还采用双向认证机制,只有合法的标签才可以被合法的读写器处理;本 发明采用单向hash函数,并提供了 ID的动态更新机制,保证了前向安全性;读写器采用哈 希表存储标签卡信息,提高了认证速率;通过计数值的方式巧妙实现数据同步;使用随机 数,保证每次认证时,都使用不同的数据包,能够很好防止窃听攻击、假冒攻击等等,并且可 以有效的隐藏标签的位置信息。根据分析得知,本发明提供的认证方法具有很好的安全特 性。


图1为传统的RFID认证方法流程图;图2为本发明实施例读写器中的哈希表的存储结构示意图;图3为本发明实施例提供的基于高度自治RFID读写器的动态ID认证方法流程 图;图4为本发明实施例提供的RFID读写器的功能模块组成示意图;图5为本发明实施例提供的标签卡的功能模块组成示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚明白,以下举实施例并参照附图,对 本发明进一步详细说明。本发明实施例中的h(.)为密码学意义上的摘要函数{0,1}*—⑷,丨广其中丄为 RFID系统的安全参数,此处为本发明标签卡的ID的长度。假设系统中有m个读写器Ri, 1彡i彡m,和η个标签卡Τ」,1彡j彡η,其中m,η为大于等于1的正整数;图3为本发明实施例提供的基于高度自治RFID读写器的动态ID认证方法的步骤 流程图,详细步骤如下步骤S400、进行认证数据库、读写器氏和标签卡Tj的初始化,在认证数据库中生 成(id」,metalD。」,index」,Cj = 1),为授权的读写器下发(metaID crj = idjj h (rj, indeXj), crJ = 0),为标签卡下载(metaIDctJ, Indexj, ctJ = 1, nt);当标签卡Tj加入系统使用时,认证数据库初始化生成并存储标签卡Tj的信息 (idj,metaIDcJ, Indexj, Cj),其中id」为标签卡Tj的唯一标识,metaID。」为id」经过Cj次哈希 运算后所得到值,本发明实施例中设Cj的初始值为1,即初始HietaIDej = h(idj) ;Indexj为 与标签卡对应的索引值,该值用于在读写器的存储模块中快速的搜索对应标签卡的信息, 该值为一个隐私值,只在认证数据库和标签卡存储,对读写器隐藏;初始情况下,在标签卡Tj中存储(metaID。tj,index」,ctJ, nt),其中metaID。tj为id」经过Ctj次哈希运算后所得到值,在以后的验证过程中通过hash函数用类似于Hash链的方 法更新标签卡中的HietaIDc^值;本发明实施例中初始情况下Cw = 1 ;nt是一个随机数,该 实施例中由认证数据库下发nt,用于在认证过程中由标签卡产生伪随机数,为了提供更好 的安全性,也可在标签卡中提供随机数生成模块,由标签卡独立生成随机数nt。初始情况下,每个读写器氏都分配有一个唯一的标识值当合法读写器氏向认 证数据库申请对标签卡Tj的访问许可时,认证数据库向氏授权,并将信息(metalD。,」,h (ri index,.), crJ)存储到读写器中用于存储标签信息的哈希表中。特别注意的是h(ri,index」) 是一个由认证数据库在授权时计算好的值,并非是一个式子,该值可以理解为标签卡信息 存储在读写器中的位置标识信息。Crj初始化为0,metaID。rj表示标签的idj经过Crj次哈希 运算后的结果值,当(^初始化为0时,相应地HietaIDraj = idJO本发明实施例中,在初始化时及以后的动态认证过程中,任何一个读写器的始 终小于等于标签卡的Cu,否则读写器认为标签是不合法的。本发明将h Indexj)作为标签信息的存储位置标识的目的在于,通过哈希运算 将读写器的唯一标识A和标签卡的唯一标识indeXj关联起来,隐藏了 indeXj,并使得同一 个标签卡的信息在不同的读写器中存储地址不同;在本发明一优选实施例中,建立如图2的数据结构来存储标签信息,通过h(ri, Indexj)对哈希表Li的最大存储空间个数maxL取余的方式确定标签信息在哈希表中的存 储位置,通过线性链表来存储h(ri; Indexj) % maxL值相同的所有标签信息。本发明实施例中,读写器包含一个伪随机数发生器用于生成还包含一个与标 签卡中Hash函数模块相同的Hash函数模块用于执行对等的哈希运算。为了提供更好的安 全性,读写器也可设置一个独立的随机数生成模块,用于生成~。步骤S401、读写器氏生成随机数η,,然后向标签卡Tj发送请求,请求中携带有读 写器氏的标识值A和读写器生成的随机数r^ ;步骤S402、标签卡收到认证请求后,标签卡Tj先利用hash函数计算出一个新的伪 随机数nt = h(nt),并将新的值保存,然后利用读写器发送的ri和本地保存的计算HRI = h(ri Indexj),IN=h (r,., nr, η,) HRIME = h (metaIDctJ, nr, nt),在获得上述计算结果后,标签卡向读写器反馈(IN,ME, ctJ, nt);在上述步骤中,读写器向标签卡发出认证请求中包含一个随机数标签收到一 个认证请求后,根据认证数据库下发的随机数通过调用哈希函数生成一个伪随机数nt。两 个随机数保证每次读写器与标签之间的传输的数据都是不同的。为了降低标签卡的成本, 在实际标签卡中没有随机数发生器,标签生成的随机数是一个伪随机数,当然也可为标签 卡提供一个随机数生成模块,用于独立生成随机数,以提供更好的安全性。本发明实施例中 提前往标签卡中写入一个随机数,以后的随机数是根据hash函数计算生成的伪随机数。步骤S403、读写器收到标签的响应,首先解析数据包分别得到IN、ME、cw和nt。然 后利用本端的A和r^及接收到的nt计算h nr, nt),并使用所得值与IN异或得到标签 卡计算的h(ri; index」)值,即步骤S402中的HRI,然后再用h(ri; index」)% maxL求余得到 对应标签所在哈希表中的地址,用h (ri; Indexj)与线性表中每个节点的h_indeX_r值比较,h_index_r就是读写器从数据库中下载的h (ri; index」)。步骤S404、如果步骤S403在哈希表中找到与h(ri,index」)相等的节点,并且 ctJ-c .彡0,则标签位置查找成功,然后执行步骤S405 ;否则读写器对标签的认证失败,跳至 步骤410。步骤S405、读写器根据Ctj推算标签的当前metaID值,计算方法如下metaID= hCtJ"Cri( metaIDCj)metaIDcrJ和为已知值,读写器通过差值次数的哈希运算获得零时的 metaID 值;步骤S406、读写器计算h(metaID,nr, nt),并判断所得值与ME是否相等,若相等, 则读写器对标签的验证成功,此时读写器认为标签是合法的,然后执行步骤S407 ;否则读 写器认证失败,执行步骤S409 ;步骤S407、当步骤S406认证成功后,该步更新读写器中的数据,更新为当前认证 时标签的metaID。tj和Ctj值,即执行metaID。tj = metaID, crJ = ctJ的赋值操作;步骤S408、读写器通过如下方法计算M,并将M发送给标签卡,用于标签对读写器 的认证,然后执行S411 ;M = h(h(metaID),nr, nt)步骤S409、当步骤406读写器对标签认证失败时,读写器向标签发送认证失败信 息包;步骤S410、在步骤404中标签位置查找失败,则本发明认为认证失败,此时标签可 能是假的,或者该标签不是阅读器授权认证的标签,读写器向标签发送认证失败信息包;步骤S411、标签收到读写器的响应后,解析数据,若是认证失败的响应包,则标签 停止计算;若不是认证失败的响应包,则解析得到的数据M,并计算h (h (metaIDctJ),nr, nt), 判断所得结果是否等于M,若相等,则标签卡对读写器认证成功。步骤S412、若步骤411中认证成功后,标签卡同样更新数据,HietaIDetj做一次哈希 运算,ctJ 自增力口 1,即执行 metaIDctJ = h(metaIDctJ),ctJ = ctJ+10本发明实施例步骤S407和步骤S412为读写器和标签卡分别进行更新的步骤,更 新信息是读写器和标签各自更新自己的信息,并没有互传其中的信息,保证信息的安全。而 且本发明允许即使在合法认证时出现认证失败的情况,有部分信息更新,导致读写器与标 签之间没有同时更新信息,该合法的读写器与标签之间依然能够在下一次认证中相互认 证,而不需要同时存储新旧密码。基于本发明提供基于高度自治RFID读写器的动态ID认证方法,本发明还提出一 种使用本发明提供的读写器对标签卡进行搜索的方法,很多时候,需要从很多个标签中寻 找某一个标签。如果只是用本发明的认证方法对每个标签验证,从其中找到系统需要的标 签,显然效率很差,不实用。因此本发明在认证方法的基础上提出了搜索(karch)方法。搜索的目的是让授权读写器在许多标签中找到授权访问的一个标签,相应标签能 够回应读写器。理想的状态时,只有这个标签会做出响应,并将自己的信息传送给授权读写 器。对于读写器氏,直观的方法是氏向所有标签广播请求id」,当某个标签Tj自己的ID满 Mownid== idj条件时,向阅读器返回应答信息。这种简单的方法不能提供任何的安全保障,极易被窃听、仿冒,这样的广播方法尤其不能很好的抵御跟踪攻击。攻击者首先可以窃听读写器的广播包,然后用这个包频繁的 访问标签,因为只有正确合法的标签才会做出响应,所以响应包可能会暴露标签的位置信 息。因此,在本发明的认证方法的基础上提出了如下的安全搜索方法步骤501、读写器向标签卡广播IN、ri、r^ ;其中,IN=[h (h Ovinde^cj),nr)]m,即 IN 为 h(h (ri; index」),nr)哈希值的前 m 位; 只发送前m位的原因是缩小匹配的精度,在多个标签卡中,可能存在标签计算结果是一样 的多个卡,所以往往会有多个标签对广播做出响应,可以在很大程度上防止跟踪攻击为 读写器氏的唯一标识,nr为读写器&生成的随机数。步骤502、标签卡接收到读写器的广播后,每个标签卡计算[h(h(ri,ownindex), n,)]m并与IN值做比较,若二者相等,则执行步骤503,否则不做响应;步骤503、标签卡生成伪随机数nt,计算TM = h(metaID。tj,nr, nt),以及计算 TC=h(r,., ηΓ, η,) ctj ,然后将ΤΜ、TC及nt反馈给读写器;步骤504、当读写器接收到标签卡发送的反馈信息后,先计算h(ri,nr, nt)然后与 TC异或后得到Ctj,计算当前metaID=/i4_ (metdID、),然后计算h (metaID,nr,nt),并
将所得值与接收的数据h(metaID。tj,nr, nt)比对,若二者相等,则表示读写器找到了所需的 标签卡Ir否则表示查找失败。查找成功后,读写器还要再发送查找成功信息,以便标签进 行数据更新,这些步骤就与之前认证方法的过程相同(参考步骤401至步骤41 。可以看 出,搜索方法是基于本发明之前提出的认证方法,所以仍属于本发明的技术方案的保护范 围内。除上述步骤外,本发明所述方法还包括以下系统维护的步骤认证数据库负责生 成、安装、部署标签,为标签卡生成系统内唯一 id值和摘要值index,为读写器生成系统内 唯一的标识r值,管理系统中读写器和标签的数据以及认证信息,并可以将这些数据下载 到合法的读写器标签中。本发明使用的环境是假设多个读写器对同一个标签都有合法的操作权限。例如在 行李自动识别系统中,本发明希望行李所在机场的工作人员授权的读写器能够对行李识别 并确认其中信息,同时假设了旅客的手机中包含有一个RFID读写器,这样行李的主人可以 通过自己的手机对行李进行搜索、识别以及确认其中信息。因为有多个读写器都能对行李 识别,所以本发明将标签的ID值设计为动态变化的。本发明中的方法可分为两部分,认证 方法和更新方法。但是由于在行李识别系统中,对一个标签的认证不会过于频繁,因此在行 李系统中可选择在每次认证成功都对数据进行更新。图4为本发明实施例提供的一种用于实现本发明提供的认证方法的RFID读写器 的功能模块组成结构示意图,该读写器400包括以下功能模块获取标签信息模块401,用于认证数据库对读写器氏的合法性认证及向认证数据 库请求下载标签卡Tj的信息(metaIDCTj,h(ri,index」),crJ);随机数生成模块402,用于生成随机数& ;认证请求模块403,用于向标签卡Tj发送携带A和η,的请求,以及接收标签卡发 送的携带IN、ME、ctJ和nt值的响应消息;位置查找模块404,用于计算h(ri,nr, nt)的值,并与IN异或得到HRI值,然后在 哈希表中查找是否存在与HRI值相等且满足条件^ 0的标签信息,若存在,则通知认证响应模块认证失败;否则通知标签标识认证模块查找成功;标签标识认证模块405,在位置查找模块查找成功时计算h (metaID, nr, nt)值,然 后判断所得值与ME是否相等,若相等,则通知认证响应模块认证成功,否则通知认证响应 模块认证失败;认证响应模块406,用于向标签卡发送认证失败信息,或发送携带M = h(h (metaID),nr, nt)值的认证成功信息;存储模块407,用于存储哈希表、随机数、读写器标识信息,所述哈希表中存储认证 数据库下发的标签信息(metaID。rj,h(ri,index」),crJ)。更新模块408,用于在读写器氏对标签卡Tj认证成功后,执行HietaIDetj = metaID, crJ = ctJ的赋值操作。图5为本发明实施例提供的一种用于实现本发明提供的认证方法的标签卡,该标 签卡500包括以下功能模块存储模块501,用于存储从认证数据库下载的标签信息(metaID。tj,Indexj, ctJ);随机数生成模块502,用于生成随机数nt ;认证响应模块503,用于接收读写器氏发送的携带A和η,的请求,并计算HRI = h^andexpjN^h (r;·, nr, nt) HRI,ME = h(metaIDctJ,nr,nt),然后向读写器 Ri 反 馈携带IN、ME、ctJ和nt值的响应消息;读写器认证模块504,用于在接收到读写器氏发送的携带M值的请求消息时,计算 h (h (metaIDctJ),nr, nt),然后比较所得值是否与M相等,若相等,则标签卡对读写器的认证成 功,否则对读写器的认证失败。更新模块505,用于在标签卡Tj对读写器氏认证成功后,执行metaID。tJ = h (HietaIDctj),ctJ = ctJ+1 的操作。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1.一种读写器与标签卡的动态认证方法,其特征在于,该方法包括在认证数据库中生成(id」,metaIDCJ, index」,Cj),为授权的读写器下发(metaIDraJ, h(ri; index」),,为标签卡下载(metaID。tj,index」,ctj),其中id」为标签卡Tj的唯一标 识,metalD。」、metaIDcrJ, metaIDctJ分别为id」经过Cj、crJ, ctJ次哈希运算后所得值,Indexj 为与标签卡对应的索引值,r,为读写器氏的唯一标识,h(ri; Indexj)为认证数据库生成的 用于在读写器的哈希表Li中查找标签信息的位置值,h为哈希函数; 读写器氏生成随机数然后向标签卡L发送携带α和的请求; 标签卡 Tj 生成随机数 nt,并计算 HRI = h(ri; index」),IN=h ( r,., nr, nt) HRI, ME =h(metaID⑴,nr,nt),然后向读写器Ri反馈IN、ME、Cu和nt ;读写器氏计算h (ri; nr, nt)的值,并与IN异或得到HRI值,然后在哈希表中 查找是否存在与HRI值相等的标签信息,若存在且满足条件(^.- ^ 0,则计算 metaID = hCtrCr|( metaIDCj),否则对标签卡的验证失败;读写器Ri计算h (metaID,nr, nt)值,然后判断所得值与ME是否相等,若相等,则读写器 对标签的验证成功。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括如下标签卡L对读写器 Ri的认证步骤读写器氏计算M = h (h (metaID),nr, nt)值,并将M值发送给标签卡; 标签卡Tj收到M后,计算h (h (metaIDctJ),nr, nt),然后比较所得值是否与M相等,若相 等,则标签卡对读写器的认证成功,否则对读写器的认证失败。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括更新的步骤在读写器氏对标签卡Tj认证成功后,执行HietaIDetj = metaID, crJ = Ctj的赋值操作; 在标签卡Tj对读写器氏认证成功后,执行HietaIDetj = h (HietaIDetj),ctJ = ctJ+1的操作。
4.根据权利要求1所述的方法,其特征在于,读写器氏在获得HRI值后,在哈希表中查 找是否存在与HRI值相等的标签信息的方法为计算h (ri; Indexj) % maxL求余得到对应标签所在哈希表中的地址,然后在该地址对应 的线性链表中查找节点值与h(ι·” Indexj)相等的节点,若找到则表示存在与HRI值相等的 标签信息,否则表示不存在与HRI值相等的标签信息。
5.一种搜索标签卡的方法,其特征在于,该方法包括读写器Ri向多个标签卡广播IN、巧、η。IN= [h(h(ri; indeXj),rO]m,其中,巧为读写 器的唯一标识,nr为读写器生成的随机数,Indexj为所要查找的标签卡的唯一索引,[]m 表示取所得哈希值的前m位;标签卡接收到广播后,每个标签卡计算[h(h(ri,ownindex),n,)]m并与IN值做比较, 若二者不相等,则不做响应,否则标签卡生成伪随机数nt,计算TM = h(metaID。tj,n,,nt),及 TC=h(r,., ηΓ, η,) Cij-,然后将TM、TC及nt反馈给读写器;读写器Ri通过反异或得到Ctj,然后计算metaID= hCt|"Cr|( metaIDC |),及h (metaID, nr,nt),并将所得值与接收的TM比对,若二者相等,则表示读写器Ri查找标签卡L成功,否则 查找失败。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括在查找成功时,读写器氏执行HietaIDetj = metaID, crJ = Ctj的赋值操作;读写器氏发送查找成功信息给标签卡Tj,标签卡Tj对读写器氏认证成功后,执行 metaIDctJ = h (metaIDctJ),ctJ = ctJ+l 的操作。
7.一种射频识别RFID读写器,其特征在于,该读写器包括获取标签信息模块,用于认证数据库对读写器氏的合法性认证及向认证数据库请求下 载标签卡 Tj 的信息(metaID。rj,hOv Indexj),crJ);随机数生成模块,用于生成随机数r^ ;认证请求模块,用于向标签卡Tj发送携带ri和r^的请求,以及接收标签卡发送的携带 IN、ME、ctJ和nt值的响应消息;位置查找模块,用于计算h nr, nt)的值,并与IN异或得到HRI值,然后在哈希表中 查找是否存在与HRI值相等且满足^ 0的标签信息,若存在,则通知认证响应模块认 证失败;否则通知标签标识认证模块查找成功;标签标识认证模块,在位置查找模块查找成功时计算h (metaID, nr, nt)值,然后判断所 得值与ME是否相等,若相等,则通知认证响应模块认证成功,否则通知认证响应模块认证 失败;认证响应模块,用于向标签卡发送认证失败信息,或发送携带M = h (h (metaID),nr,nt) 值的认证成功信息;存储模块,用于存储哈希表、随机数、读写器标识信息,所述哈希表中存储认证数据库 下发的标签信息(metaIDcrJ, h(ri7 index」),crJ)。
8.根据权利要求7所述的读写器,其特征在于,该读写器还包括更新模块,用于在读写器氏对标签卡Tj认证成功后,执行HietaIDetj = metaID, crJ = ctJ的赋值操作。
9.一种标签卡,其特征在于,该标签卡包括存储模块,用于存储从认证数据库下载的标签信息(metaID。⑴inde\,ctJ);随机数生成模块,用于生成随机数nt ;认证响应模块,用于接收读写器氏发送的携带A和的请求,并计算HRI = h(ri; indeXj)JN=h (r,., nr, nt) HRI,ME = h(metaIDctJ, nr,nt),然后向读写器 Ri 反馈携 带IN、ME、ctJ和nt值的响应消息;读写器认证模块,用于在接收到读写器氏发送的携带M值的请求消息时,计算 h (h (metaIDctJ),nr, nt),然后比较所得值是否与M相等,若相等,则标签卡对读写器的认证成 功,否则对读写器的认证失败。
10.根据权利要求9所述的标签卡,其特征在于,该标签卡还包括更新模块,用于在标签卡Tj对读写器氏认证成功后,执行HietaIDetj = h (metaIDctJ),Ctj =ctJ+1的操作。
全文摘要
本发明公开了一种读写器与标签卡之间的动态认证方法及实现装置,用于解决传统认证方法必须依赖于与后台数据库的实时在线、可靠安全地连接,无法高度自治地由读写器对标签卡进行认证的技术问题。本发明中只有合法的读写器才能从认证数据库中获取对应标签认证信息,才能认证或者更新相应的标签的状态;只有合法的标签才可以被合法的读写器处理;认证过程中标签ID采用动态更新机制,保证了前向安全性,读写器采用哈希表存储标签卡信息,提高了认证速率;通过计数值的方式巧妙实现数据同步;使用随机数,保证每次认证时,都使用不同的数据包,有效的隐藏标签的位置信息,提供了很好的安全特性。
文档编号G06K17/00GK102136079SQ201110054430
公开日2011年7月27日 申请日期2011年3月7日 优先权日2011年3月7日
发明者刘传益, 刘惠, 刘树君, 杜军朝, 薛涛, 贺文, 邓清哲, 郭江坤, 陈文婧 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1