基于稀疏树的动态密钥更新的射频识别隐私认证方法
技术领域
本发明涉及射频识别技术,特别涉及射频识别标签认证有关的安全技术。
背景技术
射频识别(Radio Frequency Identification,简称“RFID”)是使用无线射频技术在开放系统环境中进行对象识别。这种技术的优点之一是无需物理或其它任何可见的接触。它是计算机系统和现实世界的联系纽带,为计算机感知和识别现实世界提供了一种高效、价廉的方式。
RFID具有广泛的应用前景,可用于零售、电子护照、电子钞票、个人身份证、数字图书馆管理,甚至可用于构建智能自组织网络环境,等等。零售巨头沃尔玛,美国国防部等机构均采用了RFID技术来识别和自动追踪它们的产品供应链中流转的物品。
RFID主要组成部分包括后台数据库(Back-end database,简称“DB”)、读写器(Reader)和标签(Tag)等。其中后台数据库是运行于硬件平台的数据库系统,通常认为其具有强大的计算和存储能力,同时它包含系统中所有标签的信息。读写器(Reader)是一个带有天线的无线发射与接收设 备,负责对标签中的信息进行读写。标签(tag)是带有天线的微型电路,通常没有处理器,仅由数千个逻辑门电路组成。标签中存储有唯一的身份标识(ID)和一些其它信息。整个RFID系统如图1所示。
通常认为,标签与读写器之间的信道是不安全信道。而读写器与后台数据库之间的信道是安全信道。因此,在RFID系统安全通讯协议的设计中,可以认为读写器与后台数据库是一体的(即整体看作通讯协议中的一方,另一方是标签)。因此,在本发明中,我们用“读写器”指代“读写器和后台数据库”。
RFID认证协议是典型的“请求-响应”协议,其基本模型如图2所示。读写器首先向标签发出认证请求;然后标签返回认证响应信息,比如标签ID和存储的产品信息等等。
随着应用的增多,对RFID系统提出了很高的安全需求,即保护使用者在被认证时的隐私信息不被泄漏是其中一个重要的安全需求。在可扫描范围里,恶意的读写器能运行伪造的认证过程来探测标签以得到标签中记录的敏感信息。如果没有隐私保护,任意读写器可以通过标签发出的序列号来识别和记录标签拥有者的身份和其它敏感信息。因此,一个安全的RFID系统必须满足以下两个需求。一方面,合法的读写器必须能成功地识别合法的标签;另一方面,非法的读写器不能从标签中获得任何隐私信息。
为满足安全需求,人们设计了新的RFID标签,这种标签在最简单的EPC标签基础上增加了约1600个门电路,使得标签具有计算哈希函数和生 成伪随机数的功能。这样就可以在RFID认证协议中使用加密方法。该认证方案如图3所示。每个标签与合法的读写器共享唯一的一个密钥k。读写器将认证请求和一个随机数r发送给标签,标签用一个哈希函数,比如MD-5,SHA-1等计算加密结果并返回给读写器,读写器在后台数据库中搜索k,直到找到某个密钥k,并计算h(r,k),使得计算结果与标签返回的加密消息相等为止。在这种体制中,有两个问题必须考虑,即搜索效率和密钥安全性。第一,搜索密钥过程必须效率足够高以支持大规模系统。第二,出于密钥安全性考虑,共享密钥必须随时间动态更新。
为了达到高效的隐私认证,研究者已进行了很多工作。就我们所知,目前效率最高的协议是基于平衡树结构。在这类协议模型中,如图4所示,每个标签拥有多个密钥(比如d个)而不是一个。读写器构造一棵虚拟的层次树结构(称为密钥树,我们以一棵深度为2的平衡二叉树为例,如图5所示)来组织这些密钥。树中的每个节点存储一个密钥。每个标签与唯一的叶子节点相关联。从根节点到叶子节点路径上的所有密钥就是该叶子对应的标签所掌握的密钥组。如果树的深度为d并且树的分支因子为α(密钥树设为平衡树),那么每个标签拥有d个密钥组成的密钥组,为方便起见,记标签Ti中存储的密钥组为
。整棵树能支持N=α
d个标签(即能支持N个叶子节点)。在认证协议中,标签用d个密钥分别对同一认证信息加密d次。收到标签的认证信息后,读写器在密钥树做广度优先 搜索。在每一层,读写器在α个密钥中缩小搜索范围,直到达到一个叶子节点。由上,该类协议的密钥搜索复杂度为O(log
αN)。
上述基于平衡密钥树的RFID认证协议具有效率高的特点,但是具有以下四个显著的缺点。1)由于缺少密钥更新体制,在敌手的主动攻击下是不安全的。2)标签的密钥组以平衡树结构存储会造成某些密钥组之间相关度高(即,在两个密钥组中,按同一次序,有很多密钥是相同的),在某些标签(tag)被破译的情况下,会影响在密钥树中与其相邻(例如与其互为兄弟的叶子)的标签的私密性和安全性。3)在拥有大量标签的大规模RFID系统中,由于平衡树的深度大,每个标签需要大量的存储空间以存储密钥组。4)由于平衡树自身所需的完整性,很难有效地适应RFID系统中标签的维护工作,例如删除和增加标签的工作。
为了解决上述问题,我们提供了一种基于稀疏密钥树结构的标签密钥动态更新方法。该方法较好地克服了基于平衡树的上述四个缺点。
发明内容
有鉴于此,本发明的主要目的在于提供,一种基于稀疏密钥树结构的标签密钥动态更新的射频识别隐私认证方法。
本发明中的主要优点在于:有效地实现了RFID系统中标签的隐私认证,具有很强的安全性;各标签所拥有的密钥组之间的相关度低,即使在某些标签被破译的情况下,仍不会影响其它标签的私密性和安全性;即使 在拥有大量标签的大规模RFID系统中,每个标签需要的存储空间都是很小且恒定;基于稀疏树可有效地进行RFID系统中标签的维护工作,例如删除和增加标签的工作。另外还具有高效的认证过程、动态的密钥更新、双向的身份认证(即读写器和标签都能认证对方的合法性),以及能抵抗对现有RFID系统已知的所有攻击的优点。
为达到上述特点,本发明提供了一种基于稀疏密钥树的存储敏感的RFID隐私认证协议(Storage-Aware RFID Private Authentication basedon Sparse Tree,简称“SAPAS”)。包含以下部分:
A系统初始化步骤,读写器生成所述稀疏密钥树来组织和存储各个标签的密钥;
B标签识别步骤,读写器向标签发出认证请求,标签计算并发送认证信息给读写器,该读写器收到认证信息后识别标签;
C密钥更新步骤,对标签认证完成后,读写器更新稀疏密钥树,并将同步更新认证消息发送给标签,使标签同步更新存储的密钥;
D系统维护步骤,在有标签加入或离开RFID系统时,读写器维护系统的稀疏密钥树。
在所述方法中,所述认证信息使用密码学意义上的哈希函数计算。
在所述方法中,所述标签的ID,是该标签与读写器共享的一组密钥。
在所述方法中,在所述稀疏密钥树中,每个非叶子节点的最大分支因子都相同,并且每个非叶子节点为每个可能由其引出的分支统一编码并分配一个状态位来指示该分支(也称子树)是否存在。
在所述方法中,在所述稀疏密钥树中,每条从树根到叶子的树枝(也称路径)对应于一个标签的三元密钥组:其中,第一个密钥是存储在树根的密钥,第二个密钥是从树根到叶子的路径(从树根到叶子,由路径在树的每一层的分支编码组合而成),第三个密钥是存储在叶子节点的密钥。在实际应用中,第一个和第三个密钥可根据实际的安全需要取任意长度。对于第二个密钥,为保证密钥树的稀疏度,优选采用128位以上的长度,并且随着计算机能力的增强,优选长度也随之增加。
在所述方法中,所述步骤A中,在初始化RFID系统时,读写器生成稀疏密钥树根,将随机生成的三元密钥组分配给标签,相应地根据密钥组中的第二个密钥,在稀疏密钥树中插入对应的密钥树枝,将密钥组中的第三个密钥分配给该树枝的叶子节点,并设置稀疏密钥树中各非叶子节点的状态位。
在所述方法中,所述步骤B中,所述认证信息由所述标签以其所持的密钥组中的第一个密钥、第二个密钥的每一位或每数位和第三个密钥,依次使用密码学意义上的哈希函数对所述读写器发出的认证请求重复加密产生的一串哈希链组成。
在所述方法中,所述步骤B中,所述读写器对所述稀疏密钥树,根据状态位,使用广度优先搜索来确定所述标签所使用的密钥组。
在所述方法中,所述步骤C中,所述读写器仅对本次认证中的目标标签所使用的密钥组进行更新,即对该密钥组中的密钥使用密码学意义上的哈希函数来生成新密钥,从而得到新的密钥组,并删除原密钥组在稀疏密 钥树中所对应的树枝,插入该新密钥组在稀疏密钥树中所对应的树枝,同时调整所述稀疏密钥树中相关非叶节点的状态位,从而在所述稀疏密钥树中实现目标标签的密钥组的更新。
在所述方法中,所述步骤C中,所述读写器在所述稀疏密钥树中完成更新本次认证中的目标标签的密钥组后,以所述目标标签的旧密钥组对协议预先约定的同步信息使用密码学意义上的哈希函数进行加密从而产生同步更新认证消息,接着将该同步更新认证消息发送给所述标签,标签在获得并认证通过该消息后,对其所持的密钥组中的密钥使用密码学意义上的哈希函数来生成新密钥,从而得到新的密钥组。
在所述方法中,所述步骤D中,当有新的所述标签加入所述RFID系统时,所述读写器为该标签分配新密钥组,并在所述稀疏密钥树中插入该密钥组所对应的树枝,同时调整所述稀疏密钥树中相关非叶节点状态;当所述标签从所述RF工D系统中被撤销时,所述读写器从稀疏密钥树中删除该标签所持的密钥组对应的树枝,同时调整所述稀疏密钥树中相关非叶节点状态位。
通过比较可以发现,本发明的技术方案(SAPAS)与现有技术的主要区别在于,SAPAS基于稀疏树结构,并为稀疏树结构提供了一致的动态密钥更新,在不增加硬件开销的同时,为RFID系统提供了双向认证。SAPAS能有效抵抗现有的对RFID系统的所有被动和主动攻击,特别是现有技术不能抵抗的破解攻击。与基于平衡树结构的RFID认证方法相比,大大降低了 标签端的存储开销。
附图说明
图1是RFID现有系统示意图。
图2是RFID现有系统认证协议示意图。
图3是RFID现有系统中基本的隐私认证协议示意图。
图4是RFID现有系统中基于树结构的隐私认证协议示意图。
图5是RFID现有系统中基于树结构的隐私认证协议密钥树示意图。
图6是根据本发明实施例的RFID系统稀疏密钥树示意图。
图7是根据本发明的RFID系统的简化实例的稀疏密钥树的示意图。
图8是根据本发明实施例的RFID系统隐私认证协议,读写器和标签间认证过程示意图。
图9是根据本发明实施例的RFID系统隐私认证协议,在稀疏密钥树中插入树枝的算法示意图。
图10是根据本发明实施例的RFID系统隐私认证协议,在稀疏密钥树中删除树枝的算法示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图6至10对本发明做进一步的详细描述。
设h为密码学意义上的哈希函数 其中lr为RFID系统的安全参数。假设在系统中有n个标签Ti,1≤i≤n,及读写器R。读写器R根据称为密钥树s的稀疏树存储并组织所有标签的密钥。α表示密钥树的分支因子,d表示密钥树的深度。为了清楚地说明本方案,我们仅根据二叉稀疏树来描述本策略,但是对于二叉稀疏树没有限制基于稀疏树的本方案。因此在随后的密钥树中α=2。每个标签拥有的所有密钥是一个三元密钥组(kh,km,kr),其中kh和kr分别对应于存储在密钥树S中的根节点和叶子节点中的密钥;km表示从根节点到叶子节点的路径,即km中的每位依次表示路径在树S的每层通过的子树(即0表示左子树,1表示右子树)。每个非叶子节点分配两个状态位sl和sr来指示该节点是否有左或右子树。
在RFID系统初始化时,树S为空树。当n个标签{T
1,T
2,...,T
n}加入到系统中时,首先读写器R形成树S的根节点并将随机选择的密钥KH分配给该根节点。随后,读写器R随机产生n个二元组
于每个二元组
其中1≤i≤n,依次根据
的每一位,读写器R从树的根节点将树枝(也称路径)层层插入,并将
分配给该树枝的叶子节点,从而完成将
分配给标签T
i作为它的三元密钥组
这时就有
依此类推,最后读写器完成将n个的密钥组分配n个标签并构建起一棵稀疏密钥树S来存储和组织这些密钥组,如图6所示。
读写器R和标签Ti的认证过程包括三个步骤,图8所示。在第一轮中,读写器R通过发送认证请求和当前值r1给标签Ti。在第二轮中,标签Ti收到 上述请求和r1后,标签Ti产生自己的当前值r2并且计算一串哈希链(即,标签Ti的认证序列W)
其中l指
作为二进制串的长度,而
(1≤j≤l)是指
的第j比特。在收到来自标签T
i的认证信息W后,读写器R开始使用稀疏密钥树S来认证该标签T
i。利用存在稀疏树根的K
H,读写器R首先认证W中的第一项
如果该项认证通过,读写器调用递归算法根据非叶子节点的子树状态位一层层认证W中随后的每一项。例如,为了便于更清楚地说明本发明中读写器对目标标签的认证,我们以一个包含三个标签的RFID系统的简化模型(其中第二个密钥的长度为3位,相应地稀疏密钥树的深度为3)情况来说明。在图7中,设
那么来自标签T
1的认证序列W
1表示为:
在通过计算h(K
H,r
1,r
2)成功验证M后,如果
读写器R则计算h(h(K
H,r
1,r
2),0);如果
读写器R则计算h(h(K
H,r
1,r
2),1)。接着将它们和收到的h(M,0)比较。那么,很明显h(h(K
H,r
1,r
2),0)=h(M,0),这意味着标签所持的密钥
只可能在当前节点(这时是根)的左子树中,因此读写器R根据下一组状态位
和
继续验证下一个哈稀链h(h(M,0),0)。余下 的验证步骤可依此类推直至读写器R找到标签T
1在稀疏密钥树中所对应的路径(001)。最后,用叶子节点所存的密钥验证最后的哈希链
若通过则完成了对标签T
1的认证。其中在认证过程中应注意:如果当前节点的子树状态位都为0或来自目标标签的认证信息中的哈希链和读写器相应的计算结果都不符,则读写器对目标标签的认证不通过。
接着是密钥更新,如图8所示,在读写器R通过了对目标标签T
i的认证后,同时也获得了标签T
i所持的密钥组在稀疏密钥树中对应的从根到叶子的树枝。为了生成新的密钥,读写器R仍使用哈希函数h。设
为T
i所持的旧密钥,其在读写器R的稀疏密钥树中以相应的从根到叶子的树枝存储着(其中
)。读写器R计算新密钥
接着,调用如图10所示的树枝删除算法,在密钥树中删除该旧密钥组
所对应的树枝,然后通过应用图9所示的插入树枝算法将新密钥组
对应的树枝插入密钥树。读写器R在完成更新密钥树之后,如图8所示发送同步信息
给标签T
i。在收到该消息之后,标签T
i验证
是否成立。如成立,则标签T
i同样计算新密钥
更新自己的密钥组为
这时读写器R和标签T
i又共享同一组新密钥
至于K
H的更新,我们可采用以下方法。读写器R给稀疏密钥树的根节点增加一存储单元以存储临时密钥tk。在一定条件下例如通过认证的标签次数达到了总的标签数等等,读写器R通过计算K
H′=h(K
H)来由旧密钥K
H来生成新K
H′,并且发送新的同步信息
(其中
)和附加信息П给T
i,来告诉T
i同步更新
其中,tk是用于存储旧密钥K
H,以认证并同步更新持有旧密钥K
H的标签。
在维护阶段,若在RFID系统中取消一标签Ti,则读写器R调用图10所示的删除树枝算法来删除标签Ti在稀疏密钥树中所对应的树枝即可。若在RFID系统中增加一标签Ti,则读写器R调用图9所示的插入树枝算法来在稀疏密钥树中插入标签Ti所对应的树枝即可。
虽然通过参照本发明的某个优选实施例,已经对本发明进行了图示和描述,但本领域的技术人员应该明白,可以在形式和细节上对其作各种改变,比如采用分支因子大于2的稀疏树,认证信息的格式定义等等,而不偏离本发明的精神和范围。