传输数据的方法、数据提供和接收设备以及通信系统的制作方法

文档序号:7952544阅读:325来源:国知局
专利名称:传输数据的方法、数据提供和接收设备以及通信系统的制作方法
技术领域
本发明涉及用于传输数据的方法、计算机程序产品、数据提供设备、数据接收设备和通信系统,特别涉及关于在一个或多个射频识别读取器和一个或多个射频识别应答器(transponder)之间提供的数据的鉴别(authentication)和验证(verification)。
背景技术
在很多使用射频识别(RFID)技术的应用情形中,存储在RFID-应答器(RFID标签)上的数据应当被保护以防止未经授权的访问。访问RFID标签的实体已知为RFID-读取器。RFID-读取器能够经由通过特定无线信道发送的消息远程调用在RFID标签中实现的功能。例如,RFID标签能够作为报警器或防盗设备在仓库(warehouse)中使用。RFID标签可以附加在衣物等之上,并且在例如通过仓库出口的特定检测器时,只要该标签处于激活(active)状态,就能够触发警报。
而且,RFID标签在图书馆中被用来以容易和快速的方式管理和识别多种书籍。RFID标签还能够被作为护照的一部分来提供,例如,用于存储护照持有者的生物测定数据(biometric data)。使用RFID标签,而不是将生物测定数据平白地写入护照提供了以下优点当加密以后,这些数据将只能被特定人物所看到。而且,能够在RFID标签上存储多种数据,并且当数据发生变化,例如,需要存储附加的数据时,也可以对该数据进行修改。
而且,RFID标签能够被用于自动跟踪和识别人和/或物体。例如,个人可以携带RFID标签,其上存储有个人识别号。当进入和离开工作场所时,自动化机器触发该RFID标签,读取个人识别号,并且存储进入/离开时间。这样就能够容易地登记那个人的工作时间。
而且,RFID标签被用于总览(overview)和/或控制供应链。在供应链的不同设施(institution)中,配备有RFID-读取器。当贴有RFID标签的货物经过各个RFID-读取器或者进入各个RFID-读取器可达到的距离时,通过在RFID标签和RFID-读取器之间的通信,能够识别该贴有标签的货物。因此能够容易地获得对处理线路(process-way)或者是贴有RFID标签的货物的递送的监测(survey)。
而且,一次性的识别物品,诸如入场门票,也可以配备有RFID标签。例如,允许进入美式足球场的入场门票可以配备有包含与门票的所有人有关的数据的RFID标签。这样,销售假门票或者在黑市倒卖门票将非常困难。
传统上,RFID-读取器可被用于访问RFID标签。RFID-读取器能够传输消息数据,所述消息数据可以包括关键字或软件代码或程序,例如用来去激活(deactivate)RFID标签。而且,RFID-读取器可以被用于创建、读取、修改或删除存储在RFID标签上的数据。因此,避免对RFID标签的未经授权的访问是很重要的。
通常,通过使用例如R.S.A.加密方法,对例如必须传送给RFID-读取器的RFID标签的唯一识别号进行加密来提供在两个设备之间的安全通信。然而,这种加密经常是耗时并且需要一定计算能力的,而RFID标签通常不具有这样的计算能力。
其它为了安全地提供例如RFID标签的唯一识别号的常用技术是散列-加锁(hash-lock)模型。根据散列-加锁模型,RFID标签向RFID-读取器发送一个随机数和一个确认号(validation number),其中该确认号是使用散列函数计算的,并将该随机数和RFID标签的唯一识别号作为该散列函数的参数和变量。利用随机数和确认号,RFID-读取器可以从数据库中推断出唯一识别号,在该数据库中存储有RFID标签的唯一识别号。

发明内容
本发明的一个目的是提供一种用于控制诸如RFID标签的电子设备的安全和有效的方法。这个目的被所附独立权利要求的特征解决了。
根据本发明的一个方面,提供了一种用于从诸如射频识别读取器的数据提供设备向诸如射频识别应答器的数据接收设备传送数据的方法,该方法具有(a)初始化步骤,包括-提供初始真实性-指示符;-在数据提供设备提供初始变量数,作为当前数据-提供-设备-变量-数;
-特别使用单向函数(one-way-function),在该数据提供设备提供作为当前数据-提供-设备-变量-数和初始真实性-指示符的函数的当前数据-提供-设备-真实性-指示符;-在数据接收设备将初始真实性-指示符设置为前一数据-接收-设备-真实性-指示符;-在数据接收设备提供当前数据-接收-设备-真实性-指示符;(b)提供数据提供步骤,包括-特别使用单向函数,在数据提供设备作为提供数据的函数的确定数据-真实性-指示符;-在数据接收设备提供数据-真实性-指示符和提供数据。
由此,根据本发明的一个方法,提供了初始真实性-指示符,其可以是伪-随机产生的变量。伪-随机产生意味着初始真实性-指示符可以使用诸如C/C++编程语言中的函数rand()的已知的伪-随机数生成器来生成。而且,单向函数可以是一种当只给出函数的输出时,难于获得其反函数(inversefunction)的函数。而且,单向函数基本上(substantially)是防止重复的(collisionresistant)。换句话说,当使用不同的输入变量时,单向函数基本上总是生成不同的输出值。具体来说,使用传统上所知的单向函数,使用两个不同的输入变量而生成相同输出值的统计概率低于大约10-10,特定情况低于大约10-20。
而且,可以在数据提供设备或数据接收设备生成初始真实性-指示符,并且,在初始化步骤期间,初始真实性-指示符可以在数据提供设备和数据接收设备之间交换。而且,提供初始真实性-指示符的步骤以及在数据接收设备将初始真实性-指示符设置为前一数据-接收-设备-真实性-指示符的步骤,示范性地可以被作为一个步骤执行。从而,在初始化步骤期间,可以使用传统上所知的伪-随机数生成器来创建前一数据-接收-设备-真实性-指示符。这样生成的前一数据-接收-设备-真实性-指示符可以随后被传送到数据提供设备,并作为当前数据-提供-设备-变量-数存储在那里。而且,将被从数据提供设备传送到数据接收设备的数据-真实性-指示符特别在传送提供数据之前的一个短时间内生成。
作为一个例子,提供数据可以从射频识别读取器传送到射频识别应答器。在发送提供数据前已经产生了数据-真实性-指示符。并且该数据-真实性-指示符可以从射频识别读取器发送到射频识别应答器。数据-真实性-指示符可以例如用于在提供数据的提供步骤期间验证该提供数据是否被通过第三方改变了。
具体来说,提供数据包括至少下列之一-消息数据,-下一数据-提供-设备-真实性-指示符,-当前数据-提供-设备-变量-数,-数据提供设备识别数据,和-数据接收设备识别数据。
因此,通过提供提供数据(providing the provision data),由例如关键字、软件代码、计算机程序等等组成的消息数据,可以被从RFID-读取器发送到RFID-标签。
而且,提供设备识别数据可以在数据接收设备提供。从而,有可能可以从多个数据提供设备向一个数据接收设备提供提供数据。每个数据提供设备都具有各自的数据提供设备识别数据。因此,数据接收设备能够区分出从不同的数据提供设备发送的提供数据。
换句话说,提供数据可能包括数据提供设备识别数据,以便数据接收设备可以将提供数据和特定的数据提供设备联系起来。而且,通过在数据接收设备提供数据提供设备识别数据,能够验证提供数据是否是从真正应当与数据接收设备进行通信的数据提供设备提供的。
根据一个示范性实施例,在数据接收设备提供提供数据的步骤包括提供下一数据-提供-设备-真实性-指示符,作为下一数据-接收-设备-真实性-指示符,以及提供当前数据-提供-设备-变量-数,作为当前数据-接收-设备-变量-数。
于是,提供数据被从数据提供设备传送到数据接收设备,并且在数据接收设备将下一数据-提供-设备-真实性-指示符设置为下一数据-接收-设备-真实性-指示符,并且将当前数据-提供-设备-变量-数设置为当前数据-接收-设备-变量-数。
根据本发明的再一个示范实施例,所述提供步骤(b)还包括在数据提供设备提供新的变量数,作为下一数据-提供-设备-变量-数,其中,该变量数是例如使用伪随机数发生器生成的。
具体来说,该提供数据提供步骤(b)还包括
特别使用单向函数在数据提供设备确定作为当前数据-提供-设备-真实性-指示符和下一数据-提供-设备-变量-数的函数的下一数据-提供-设备-真实性-指示符。
而且,在数据接收设备提供提供数据的步骤具体来说包括提供下一数据-提供-设备-真实性-指示符,作为下一数据-接收-设备-真实性-指示符,以及提供当前数据-提供-设备-变量-数,作为当前数据-接收-设备-变量-数。
因此,在本发明的一个示范实施例中,提供数据至少包括下一数据-提供-设备-真实性-指示符和当前数据-提供-设备-变量-数,其允许在数据提供设备和数据接收设备之间的连续通信。此外,提供数据还可以包括消息数据和/或数据-提供-设备-识别-数据和/或数据-接收-设备-识别-数据。
具体来说,提供步骤(b)还包括在数据提供设备将下一数据-提供-设备-变量-数设置为当前数据-提供-设备-变量-数以及将下一数据-提供-真实性-指示符设置为当前数据-提供-设备-真实性-指示符。
换句话说,在于数据接收设备提供提供数据后,特别地由新的伪随机数来替代当前数据-提供-设备-变量-数。使用所述新的伪随机数,重新(newly)生成当前数据-提供-设备-真实性-指示符。
在再一个示范实施例中,所述方法在提供提供数据的步骤(b)后包括(c)数据验证和鉴别步骤,包括-在数据接收设备进行下列比较--数据-真实性-指示符与在数据接收设备确定的作为提供数据的函数的测试-数据-真实性-指示符的比较,和--当前数据-接收-设备-真实性-指示符与在数据接收设备确定的作为前一数据-接收-设备-真实性-指示符和当前数据-接收-设备-变量-数的函数的测试真实性-指示符的比较。
换句话说,在数据接收设备,从由数据提供设备传送到数据接收设备的提供数据中创建测试-数据-真实性-指示符。随后测试-数据-真实性-指示符被和数据-真实性-指示符进行比较。在数据-真实性-指示符和测试-数据-真实性-指示符相等的情况下,则在提供步骤(b)期间的提供数据未被改变。由此,提供了一种在数据接收设备容易地从数据提供设备提供提供数据的方法,并且能够验证在数据接收设备接收的提供数据是否与从数据提供设备提供的提供数据相同。
而且,测试-真实性-指示符是特别使用当前数据-接收-设备-变量-数来创建的。因此,即使在从数据提供设备到数据接收设备的提供数据的传输被第三方监测(survey)的情况下,该第三方也只能在当前数据-接收-设备-变量-数在数据接收设备被提供的时候了解当前数据-接收-设备-变量-数。
因此,由于第三方在提供数据的提供之前不知道当前数据-接收-设备-变量-数,因此第三方除了原始的提供数据外不能提供改变的提供数据。
换句话说,在提供数据被提供到数据接收设备后,如果第三方对提供数据的提供进行了监测,则第三方只了解当前数据-接收-设备-变量-数的值,该值同时被数据接收设备所知,并只与当前发送的提供数据组合使用。
为了进一步鉴别从数据提供设备提供到数据接收设备的提供数据,在进行提供的时候提供一个新的伪随机数,作为提供数据的一个成员(member)。再次,在数据接收设备,可以通过比较数据-真实性-指示符和测试-数据-真实性-指示符来验证提供数据是否发生了改变。而且,通过将提供的当前数据-接收-设备-真实性-指示符和在数据接收设备创建的测试-真实性-指示符进行比较,可以验证提供数据是否是由正确的数据提供设备提供的。
其优点在于,给定某个时间量,对于数据提供设备的安全鉴别和数据提供设备的安全鉴别/验证是可能的,而不需要使用双方都知道并且易于被解密的密码(password)。而且,可以避免对密码进行加密是本发明的一个优点。于是,由于缺少加密的密码,即使当第三方监测在数据提供设备和数据接收设备之间的通信时,该通信也不能被破坏(corrupted),即,从提供设备提供的提供数据既不能被从第三方提供的数据所替代,也不能在提供期间被修改,而不被数据接收设备发现。从而,可以避免对提供数据进行耗时的加密。根据本发明,提供了安全的识别;在数据接收设备接收的提供数据是否是由授权的数据提供设备提供的,以及所提供的数据是否是原始的提供数据。
具体来说,由于改变了用于验证数据-提供-设备的正确身份(correctidentity)的当前数据-接收-设备-变量-数,以及由于当前数据-接收-设备-变量-数只能被用来鉴别与其一起发送的提供数据,因此由第三方提供假的提供数据是不可能的。因此,在初始化后,由于在提供数据的提供期间提供的下一数据-提供-设备-真实性-指示符的成分不能自第三方导出,因此建立了数据的经过鉴别的提供。
具体来说,数据验证和鉴别步骤(c)还包括在数据接收设备将当前数据-接收-设备-真实性-指示符设置为前一数据-接收-设备-真实性-指示符,以及将下一数据-接收-设备-真实性-指示符设置为当前数据-接收-设备-真实性-指示符。
根据再一个示范性实施例,步骤(b)和(c)被重复地执行。
换句话说,有可能步骤(b)和(c)被连续地重复,从而根据步骤(b)来提供提供数据,并根据步骤(c)来马上验证和鉴别所述提供数据的提供。
然而,还可能通过重复地执行步骤(b)来提供多个提供数据,而且在执行步骤(b)一定次数后,特别执行步骤(c)同样次数,以便验证和鉴别不同数量的提供数据。或者,能够由数据提供设备生成大量的提供数据以及相应的数据-真实性-指示符。从而,可以只提供提供数据,而不需要连续地产生数据-真实性-指示符和相应的提供数据,诸如提供-数据-变量-数和/或提供-设备-真实性-指示符和/或消息数据。
如上所述,为了鉴别提供数据,必须提供当前数据-接收-设备-变量-数和前一数据-接收-设备-真实性-指示符。因此,第三方可以从第一次提供数据在数据接收设备提供时就开始对提供数据的提供进行监测。然而,由于本发明的方法被初始化,使用初始真实性-指示符,他将永远不能计算当前数据-接收-设备-真实性-指示符。因为第一提供-设备-变量-数是秘密的,并且只为数据提供设备所知。而且,特别是在发送第一提供数据之前,第一提供-设备-变量-数只为数据提供设备所知,即,不被数据接收设备所知。
具体来说,在每一步骤(b),能够在数据接收设备提供新的消息数据。因此,有可能通过在每个数据提供步骤提供不同的消息数据,以指示数据接收设备执行各种动作。
根据本发明的方法的再一个示范性实施例,当前数据-提供-设备-真实性-指示符和/或下一数据-提供-设备-真实性-指示符和/或数据-真实性-指示符和/或测试-数据-真实性-指示符和/或测试-真实性-指示符是使用单向函数来计算的,具体来说是用至少下列之一来计算PDAIi=h1(PDVNi,AI0),PDAIi+1=h1(PDVNi+1,PDAIi),DataAI=h2(DataP),DataAItest=h2(DataP)和
AItest=h1(RDVNi,RDAIi-1)其中,AI0表示初始-真实性-指示符,PDVNi表示当前数据-提供-设备-变量-数,PDVNi+1表示下一数据-提供-设备-变量-数,DataP表示提供数据,RDAIi-1表示前一数据-接收-设备-真实性-指示符,RDVNi表示当前数据-接收-设备-变量-数,PDAIi表示当前数据-提供-设备-真实性-指示符,PDAIi+1表示下一数据-提供-设备-真实性-指示符,DataAI表示数据-真实性-指示符,DataAItest表示测试-数据-真实性-指示符,AItest表示测试-真实性-指示符,以及h1和h2表示单向函数。
典型地,h1和h2可以表示不同的单向函数。然而,也有可能,h1和h2表示相同的单向函数。
再具体来说,该单向函数是散列函数,特别是从至少包括SHA-1、SHA-224、SHA-256、SHA-384、SHA-512、MD2、MD4、MD5和RIPEMD-160、GOST-Hash、CRC-32、Ghash-3、Snefru、Tiger和Whirlpool的散列函数组中选择的单向函数。前面提到的散列函数具体来说是传统已知的散列函数,例如是在网页www.wikipedia.org中描述并例如在已知程序中实现的,如网页www.wikipedia.org所参考的,计算散列函数的输出值。根据本发明,散列函数是从任意长度的消息产生固定长度的数据串的函数。该函数对于每个单一输入消息产生基本上的唯一的值。换句话说,散列函数从基本上任意的输入变量计算出一个特定长度的输出,其中,如果仅仅给定输出,不可能推断出输入变量。而且,基本上不存在这样的两个输入变量,当分别用作散列函数的参数(arguments)或变量时,能计算出相同的输出。这意味着,散列函数基本上是防止重复的(collision resistant),即给定两个不同的输入变量,使用传统上已知的散列函数来创建出两个相同的输出变量的统计概率典型地低于大约10-10,特定情况低于大约10-20。
而且,更具体地讲,当前提供-设备-变量-数和下一提供-设备-变量-数的长度在位的顺序上(in bit sequence)与散列函数的输出的长度一样长,即当前提供-设备-变量-数的位数和下一提供-设备-变量-数的位数,可以分别与散列函数的输出的位数一样长,例如与当前数据-提供-设备-真实性-指示符或者下一当前数据-提供-设备-真实性-指示符的位数一样长。
因此,如上已经指出的,在由第三方监测提供数据的提供的情况下,不可能从例如在提供数据的提供期间提供的当前提供-设备-真实性-指示符推断出初始真实性-指示符。因此,由于以前一提供-设备-真实性-指示符和提供-设备-变量-数作为散列函数的参数或变量,即,伪随机数,使用散列函数来计算连续的提供-数据-真实性-指示符,监测提供数据的提供的第三方不能确定任何进一步的提供-数据-真实性-指示符。由数据提供设备对提供-设备-变量-数保密,直到其与提供数据同时被提供给数据接收设备,其中,鉴别和验证就是针对提供数据而执行的。
具体来说,消息数据包括要由数据接收设备执行的计算机程序代码。
根据再一个示范实施例,向数据接收设备提供提供数据的步骤包括经由无线信道发送提供数据。示范性地,用于提供数据的频率能够是包含大约在125kHZ和134kHZ之间、大约在400MHZ和930MHZ之间、大约在13.56MHZ、大约2.45GHZ和大约5.8HZ的范围组中的至少一个。
因此,特别地数据提供设备包含射频发射机,而数据接收设备包含射频接收机。
本发明的再一个方面在于提供一种计算机程序产品,特别是存储在计算机可读存储介质上的计算机程序产品,该计算机程序产品当被加载到数据提供设备上时,执行根据前述权利要求中的任何一个的方法。
根据本发明的再一个方面,提供了一种能够将提供数据发送到数据接收装置的数据提供设备,该数据提供设备包括-变量数生成设备;-数据-提供-设备-真实性-指示符生成设备,能够产生数据-提供-设备-真实性-指示符,特别是使用单向函数;-数据-真实性-指示符生成设备,能够产生数据-真实性-指示符,特别是使用单向函数;和-提供数据提供设备。
具体来说,该数据提供设备还包括消息数据提供设备,能够用于提供消息数据。该消息数据提供设备能够用于例如产生消息数据和/或从再一个输入设备,诸如键盘,接收消息数据。而且,该消息数据提供设备能够从数据库提供消息数据,其中该数据库可以是外部数据库或内部数据库。
具体来说,提供数据提供设备包括射频发射机。
根据本发明的再一个方面,提供了一种能够从数据提供设备接收提供数据的数据接收设备,包括-提供数据接收设备;-测试-数据-真实性-指示符生成设备,能够产生测试-数据-真实性-指示符,特别是使用单向函数;-测试-真实性-指示符生成设备,能够产生测试-真实性-指示符,特别是使用单向函数。
具体来说,数据接收设备还包括比较设备,其适用于进行以下比较-数据-真实性-指示符与测试-数据-真实性-指示符的比较,和-当前数据-接收-设备-真实性-指示符与测试-真实性-指示符的比较。
示范性地,提供数据接收设备包括射频接收机。
本发明的再一个方面包括一种通信系统,该通信系统包括根据本发明的数据提供设备和根据本发明的数据接收设备。


下面将考虑附图来描述本发明的示范实施例。
图1是根据本发明的一个实施例的数据提供设备和数据接收设备的示意图;图2是数据提供设备的操作的流程图;图3是数据接收设备的操作的流程图。
附图标记说明10RFID读取器12用户14地表面16RFID标签18射频通信
20天线22夹克PDID、RDID唯一识别号MD消息数据AI0初识真实性-指示符PDVNi、RDVNiPDVN1、RDVN1第一变量数PDVNi+1PDVN2下一变量数PDAIi、RDAIiPDAI1、RDAI1当前真实性-指示符PDAI1+1、RDAI1+1PDAI2、RDAI2下一真实性-指示符RDAIi-1RDAI0前一真实性-指示符DataAI数据-真实性-指示符DataAItest测试数据-真实性-指示符AItest测试真实性-指示符具体实施方式
图1示出了射频识别读取器10(下文中为RFID-读取器)的示范形式的数据提供设备。RFID-读取器10可以由用户12手持。然而,RFID-10可以安装在墙上(未示出)或者是地表面14上。RFID-读取器10经由射频,如线18所示,与射频识别应答器16(下文中为RFID-标签)进行通信(单向或双向)。为了建立适当的通信,RFID-读取器10和RFID-标签16都包括天线20。而且,RFID-标签16如所示可以被附加在例如夹克22的衣物的产品上。夹克22例如可以在仓库(未示出)中销售。然而,RFID-标签16可以被附加或安装在任何其它物体或产品或实体上,特别是必须是安全的或者必须提供了其与RFID-读取器10的通信的可移动的物体上。
RFID-读取器10和RFID-标签16不是必须经由射频通信18通信。而是,可以使用任何其它通信方法,即,它们可以经由电子连接、USB连接、光学连接、蓝牙连接或是任何其它通过其它单向、双向或多向系统(例如因特网)的通信来相互连接。
RFID-读取器10可以被例如用于在RFID-标签16上存储数据或者在RFID-标签16提供命令,以便在RFID-标签16能够执行特定动作。例如,RFID-读取器10能够在RFID-标签16提供消息数据,以致RFID-标签16将其自身置于激活状态(condition)或去激活状态。例如,当在仓库销售夹克22时,当扫描夹克22的价格时,RFID-读取器能够同时去激活RFID-标签16。这样,客户(未示出)带着付过款的夹克22离开仓库时,就不会触发警报。在这种情况下,可以在接近收银台(cash-desk)的任何地方配备RFID-读取器10,其例如可以被包括在用于扫描价格的扫描设备或包括在夹克22被装进包中的桌子里。
然而,在夹克22被拿出仓库而未事先去激活RFID-标签16的情况下,作为示范性结果的操作,警报将被触发。而且,提供数据可以是这样,在从RFID-读取器10接收了提供数据之后,RFID-标签16将向RFID-读取器10发送RFID-标签16的唯一识别号。于是,提供了一种容易的方法,建立在RFID-读取器10的范围内的RFID-标签16的数量的一个快速总览。而且,也可以例如区分不同的RFID-标签16,从而区分与各个的RFID-标签16相关的货物。例如,可以提供一个数据库,包括RFID-标签16的各个识别号以及衣物的类型、颜色、尺寸等,并且RFID标签以此来排列。例如,利用RFID读取器10,其能够与在仓库中的全部RFID标签通信并且能够访问所述数据库,就能够容易和快速地提供货物,例如存储在仓库中的衣物的快速库存列表。
而且,甚至不需要从RFID-读取器10向RFID-标签16提供特定消息数据。相反,只要在RFID-标签16提供RFID-读取器10的唯一识别号PDID就足够了。当向RFID-标签16提交识别号PDID时,在鉴别和验证了该识别号PDID后,RFID-标签16可以自动使自己进入激活或去激活状态,或者存储在RFID-标签16上的数据能够被提供给再一个设备。例如,RFID-读取器10可以代替传统的条形码扫描器。例如,当客户购买夹克22时,RFID标签16可以由RFID-读取器10来去激活,并且同时,存储在RFID-标签16上的夹克22的价格信息可以被提供给收银台。在这种情况下,价格信息可以从RFID-标签16传输到RFID-读取器10。或者,还可以在收银台附近再布置一个RFID-读取器(未示出)与收银台进行通信。
在RFID-读取器10和RFID-标签16之间的通信进一步利用在图2和3中示出的流程图来描述。
图2和图3示出RFID-读取器10(作为示范性的数据提供设备)和RFID-标签16(作为示范性的数据接收设备)的操作的流程图。为了对在RFID-标签16和RFID-读取器10之间的通信进行适当的鉴别和验证,需要初始化RFID-读取器10和RFID-标签16。具体来讲,为了鉴别和验证提供数据的身份识别(identification),需要初始化RFID-读取器10和RFID-标签16(步骤STR 1到STR 4和步骤STT 1和STT 2)。
在初始化期间,或是RFID-读取器10或是RFID-标签16创建一个初始真实性-指示符AI0(步骤STR 1、STT 1)。特别是,该初始真实性-指示符AI0可以由RFID-读取器10来生成并被烧入RFID-标签16存储器(未示出)。该初始真实性-指示符AI0可以是伪-随机生成的比特序列。伪-随机生成意味着使用诸如被结合到C/C++编程语言中的函数rand()的随机数生成器来生成。作为例子,初始真实性-指示符AI0具有下面的值AI0=61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61初始真实性-指示符AI0在RFID-读取器和RFID-标签之间以一种安全方式来交换。例如,在初始化期间,可能需要使RFID-读取器10和RFID-标签16进行物理接触或提供在安全环境中经由射频通信18交换。初始真实性-指示符AI0可以由RFID-读取器10提供并在RFID-标签16的制作(production)期间烧入RFID-标签16的存储器中(未示出)。
而且,在初始化期间,RFID-读取器10生成第一变量-数PDVNi(作为示范性的当前数据-提供-设备-变量-数)。例如,当发送第一消息,即i=1时,第一变量-数PDVNi具有下列值PDVN1=31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31(步骤STR2)而且,在初始化期间,当前真实性-指示符PDAI1(作为示范性的数据-提供-设备-真实性-指示符)使用诸如传统已知的散列函数的单向函数来生成。利用散列函数,以及作为散列函数的参数和变量的初始真实性-指示符AI0和第一变量-数PDVN1,来计算当前真实性-指示符PDAI1(步骤STR 3)。随后或是当前真实性-指示符PDAI1或是第一变量-数PDVN1被以安全的方式发送到RFID-标签16(步骤STR 4)。在初始化RFID-标签16期间当前真实性-指示符PDAI1可以在RFID-标签16提供。例如,在制造RFID-标签16时,在RFID-标签16提供初始-真实性-指示符AI0和当前真实性-指示符PDAI1。它们可以被烧入RFID-标签16的存储器(未示出)。进一步执行上述的例子,举例来说,当前真实性-指示符PDAIi是从初始真实性-指示符AI0和第一变量数PDVN1,使用作为散列函数的传统已知的MD5来计算的。当前真实性-指示符PDAI1被计算为PDAI1=hMD5(PDVN1,AI0)=hMD5(31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31,61 61 6161 61 61 61 61 61 61 61 61 61 61 61 61)=93 69 7F 1F D9 8F CC 70 E1 36 6A 29 2C 61 83 7D然后完成了RFID-读取器10的初始化。
因此,在RFID-标签16初始化期间,或是在RFID-标签16创建初始真实性-指示符(AI0),或是在RFID-标签16从RFID-读取器10接收初始真实性-指示符(AI0)(步骤STT 1)。进一步,在RFID-标签16接收当前真实性-指示符PDAIi,并且该PDAIi在RFID-标签16被称为RDAIi(作为示范性的当前接收-设备-真实性-指示符)。因此根据本例子,在RFID-标签16,当前真实性-指示符指的是RDAI1。
RDAI1=93 69 7F 1F D9 8F CC 70 E1 36 6A 29 2C 61 83 7D或者,可以向RFID-标签16发送第一变量数PDVN1,并使用散列函数,以及作为其参数或变量的第一变量数PDVN1和初始真实性指示符AI0,在RFID-标签16计算当前真实性-指示符RDAI1(步骤STT 2)。然后完成了RFID-标签16的初始化。
下面对RFID-读取器10提供提供数据进行描述(步骤STR 5到STR 9)。在从RFID-读取器10向RFID-标签16发送提供数据之前,创建数据-真实性-指示符DataAI,其中,使用传统的散列函数及以下的量中的一个或多个作为散列函数的参数或变量来计算数据-真实性-指示符,所述可作为散列函数的参数或变量的量包括RFID-读取器10的唯一识别号PDID(作为示范性的数据提供设备识别数据)、RFID-标签16的唯一识别号RDID(作为示范性的数据接收设备识别数据)、能够例如包括计算机程序代码的消息数据MD、第一变量数PDVN1和下一真实性-指示符PDAIi+1(作为示范性的下一提供-设备-真实性-指示符)。由于在本例中i=1,所以下一真实性-指示符PDAIi+1指的是PDAI2。
在本例中,RFID-读取器10的唯一识别号PDID被选择为PDID=A,RFID-标签16的唯一识别号RDID被选择为RDID=B,消息数据MD被选择为MD=“Read EPC”。
其中,EPC可以是附加有RFID-标签16的物品的电子产品号。
如下所述,给出了第一变量数PDVN1PDVN1=31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31,为了提供数据,执行下列步骤为了提供下一真实性-指示符PDAI2,必须由RFID-读取器10生成下一变量数PDVNi+1(作为示范性的下一提供-设备-变量-数),该下一变量数PDVNi+1可以是伪-随机数。根据上述的术语,在本例子中,下一变量数PDVNi+1指的是PDVN2。
具体来说,在本例子中,下一变量数PDVN2等于PDVN2=32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32作为替代,可以从包括特别大量的变量的数据库中取出下一变量数。该变量或是可以实质上独立于所存储的变量的次序来选择或是所存储的变量实质上被随机存储在数据库中,其中,所述变量可以互相都不同。也可以提供几次相同的变量(步骤STR 5)。
使用散列函数和作为该散列函数的参数或变量的下一变量数PDVN2和当前真实性指示符PDAI1来生成下一真实性-指示符PDAI2。因此,下一真实性-指示符PDAI2等于PDAI2=hMD5(PDVN2,PDAI1)=hMD5(32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32,93 69 7F1F D9 8F CC 70 E1 36 6A 29 2C 61 83 7D)=B5 E5 EF 6E 6C 50 C5 D6 52 D1 D6 C1 57 59 63 FB(步骤STR 6)随后,在RFID-读取器10产生数据-真实性-指示符DataAI。数据-真实性-指示符DataAI是从提供数据的散列函数计算的。该提供数据可以包括消息数据MD、RFID-读取器10的唯一识别号PDID、RFID-标签16的唯一识别号RDID、第一变量数PDVN1和下一真实性-指示符PDAI2。在这个例子中,数据-真实性-指示符被计算为DataAI=hMD5(MD,PDID,RDID,PDVN1,PDAI2)=hMD5(“Read EPC”,A,B,31 31 31 31 31 31 31 31 31 31 31 31 3131 31 31,B5 E5 EF 6E 6C 50 C5 D6 52 D1 D6 C1 57 59 63 FB)=8E 02 9F 77 F2 7D 50 49 D3 B3 76 E0 03 5D 97 BF(步骤STR 7)提供数据和数据-真实性-指示符DataAI随后在RFID-标签16提供(步骤STR 8)。
在应当从RFID-读取器10向RFID-标签16提供进一步的消息数据MD的情况下,下一变量数PDVN2被用作第一变量数PDVN1。此外,在RFID-读取器10,下一真实性-指示符PDAI2被用作当前真实性-指示符PDAIi(步骤STR 9)。然后就完成了提供数据的一次循环。为了提供进一步的提供数据,步骤STR 5到步骤STR 9可以随后被重复执行。
接下来,描述在RFID-标签16的鉴别和验证(步骤STT 3到STT 5)。
在被发送到RFID-标签16后,当前真实性-指示符PDAI1称为当前真实性-指示符RDAI1(作为示范性的当前接收-设备-真实性-指示符),下一真实性-指示符PDAI2被称为下一真实性-指示符RDAI2(作为示范性的下一接收-设备-真实性-指示符),并且第一变量数PDVN1被称为第一变量-数RDVN1。因此,RDAI1=PDAI1=93 69 7F 1F D9 8F CC 70 E1 36 6A 29 2C 61 83 7D,RDAI2=PDAI2=B5 E5 EF 6E 6C 50 C5 D6 52 D1 D6 C1 57 59 63 FB,RDVN1=PDVN1=31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31接下来,在RFID-标签16,数据-真实性-指示符DataAI被与测试数据-真实性-指示符DataAItest进行比较。因此,在RFID-标签16,测试数据-真实性-指示符DataAItest被和在RFID-读取器16的数据-真实性-指示符DataAI的计算类似地计算(见步骤STR 7),但是作为替代使用提供的提供数据。换句话说,测试数据-真实性-指示符DataAItest是使用散列函数及作为其参数或变量的元素计算的,所述元素与用于当前数据-真实性-指示符DataAI的元素相同,但是已经被从RFID-读取器10提供到RFID-标签16。因此,所述测试数据-真实性-指示符DataAItest等于DataAItest=hMD5(MD,PDID,RDID,RDVN1,RDAI2)=hMD5(“Read EPC”,A,B,31 31 31 31 31 31 31 31 31 31 31 31 3131 31 31,B5 E5 EF 6E 6C 50 C5 D6 52 D1 D6 C1 57 59 63 FB)=8E 02 9F 77 F2 7D 50 49 D3 B3 76 E0 03 5D 97 BF(步骤STT 3)在数据-真实性-指示符DataAI和测试数据-真实性-指示符DataAItest匹配的情况下,由RFID-标签16执行进一步的步骤。
在RFID-标签16,使用散列函数及其参数或变量来计算测试真实性-指示符AItest,所述参数或变量包括前一真实性-指示符RDAIi-1(作为示范性的前一接收-设备-真实性-指示符)和第一变量-数RDVN1。根据本例子,前一真实性-指示符指的是RDAI0。当发送第一消息时,前一真实性-指示符RDAI0的值等于初始真实性-指示符AI0的值。根据上述例子,AItest=hMD5(RDAI0,RDVN1)。在发送第一消息后,如下计算测试真实性-指示符AItestAItest=hMD5(AI0,RDVN1)=hMD5(61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61,31 31 31 3131 31 31 31 31 31 31 31 31 31 31 31)=93 69 7F 1F D9 8F CC 70 E1 36 6A 29 2C 61 83 7D将当前真实性-指示符RDAI1和测试真实性-指示符AItest进行比较。在当前真实性-指示符RDAIi和测试真实性-指示符AItest匹配的情况下,接受消息数据MD,并且例如可以在RFID-标签16执行相应的程序代码或者从RFID-标签16执行相应的动作(步骤STT 4)。执行特定的动作还可以包括发送数据到再一个设备,该设备可以不是RFID-读取器10。根据本例子,RFID-标签16将执行命令“Read EPC”,即,RFID-标签16可以向RFID-读取器10提供EPC。
在应当在RFID-标签16接收更多的提供数据的情况下,则前一真实性-指示符RDAI0的值被当前真实性-指示符RDAIi的值替代,并且之后,当前真实性-指示符RDAI1的值被下一真实性-指示符RDAI2(由RFID-标签16在STR8期间作为下一真实性-指示符PDAI2提供)替代(STT 5)。然后就完成了提供数据的鉴别和验证。
因此,任何更多数量的消息数据都能够被从RFID-读取器10发送到RFID-标签16,即,任何更多数量的动作都可以由RFID-标签16执行,当发送第二消息时,将计数(count number)i的值加1,即,i=2。
这样,,即使不需要耗时的对(消息)数据的加密/解密,在RFID-读取器10和RFID-标签16之间的通信也是非常安全的-。相反,该(消息)数据能够由第三方来监测/读取。然而,RFID-标签16执行例如并非由RFID-读取器10提供的程序代码是不可能的。
本发明并不局限于上述的实施例。而是,很多其它的实施例也是可以的。例如,代替RFID-读取器10和RFID-标签16,需要通信和特别是连续地交换数据的任何其它电子发射机和接收机都是可以使用的。而且,还有可能RFID-标签16从RFID-读取器10接收数据,并以上述的方式进一步将该数据提供给再一个RFID设备。随后,该RFID-标签16起到再一个设备的RFID-读取器的作用,然后它再起REID-标签的作用。这样的链接可以被延伸,以便各种RFID-标签能够同时也起到RFID-读取器的作用。
权利要求
1.一种用于将数据从诸如射频识别读取器(10)的数据提供设备(PD)传送到诸如射频识别应答器(16)的数据接收设备(RD)的方法,包括下列步骤(a)初始化步骤,包括-提供(STR 1;STT 1)初始真实性-指示符(AI0);-在所述数据提供设备(PD)提供(STR 2)初始变量数,作为当前数据-提供-设备-变量-数(PDVNi);-特别使用单向函数在所述数据提供设备(PD)提供(STR 3)作为该当前数据-提供-设备-变量-数(PDVNi)和该初始真实性-指示符(AI0)的函数的当前数据-提供-设备-真实性-指示符(PDAIi);-在所述数据接收设备(RD)将该初始真实性-指示符(AI0)设置为前一数据-接收-设备-真实性-指示符(RDAIi-1);-在所述数据接收设备(RD)提供(STT 2)当前数据-接收-设备-真实性-指示符(RDAIi);(b)提供数据(DataP)提供步骤,包括-特别使用单向函数在所述数据提供设备(PD)确定(STR 7)作为提供数据(DataP)的函数的数据-真实性-指示符(DataAI);-在所述数据接收设备(RD)提供(STR 8)数据-真实性-指示符(DataAI)和提供数据(DataP)。
2.如权利要求1所述的方法,其中,所述提供数据(DataP)包括至少下列之一-消息数据(MD),-下一数据-提供-设备-真实性-指示符(PDAIi+1),-当前数据-提供-设备-变量-数(PDVNi),-数据提供设备识别数据(PDID)和-数据接收设备识别数据(RDID)。
3.如前述权利要求中的任何一个所述的方法,其中,所述提供步骤(b)还包括在所述数据提供设备(PD)提供(STR 5)新的变量数,作为下一数据-提供-设备-变量-数(PDVNi+1)。
4.如权利要求3所述的方法,其中,所述提供步骤(b)还包括特别使用单向函数在所述数据提供设备(PD)确定(STR 6)作为当前数据-提供-设备-真实性-指示符(PDAIi)和下一数据-提供-设备-变量-数(PDVNi+1)的函数的下一数据-提供-设备-真实性-指示符(PDAIi+1)。
5.如权利要求4所述的方法,其中,所述在数据接收设备(RD)提供提供数据(DataP)的步骤包括提供下一数据-提供-设备-真实性-指示符(PDAIi+1),作为下一数据-接收-设备-真实性-指示符(RDAIi+1),以及提供当前数据-提供-设备-变量-数(PDVNi),作为当前数据-接收-设备-变量-数(RDVNi)。
6.如权利要求5所示的方法,其中,所述提供步骤(b)还包括在所述数据提供设备(PD)将下一数据-提供-设备-变量-数(PDVNi+1)设置(STR 9)为当前数据-提供-设备-变量-数(PDVNi),以及将下一数据-提供-设备-真实性-指示符(PDAIi+1)设置为当前数据-提供-设备-真实性-指示符(PDAIi)。
7.如在先权利要求中任何一个所述的方法,在所述提供提供数据(DataP)的步骤(b)之后,包括(C)数据鉴别和验证步骤,包括-在所述数据接收设备(RD)进行如下的比较--将数据-真实性-指示符(DataAI)和特别使用单向函数在数据接收设备确定的作为提供数据的函数的测试-数据-真实性-指示符(DataAItest)进行比较(STT 3);和--将当前数据-接收-设备-真实性-指示符(RDAIi)和特别使用单向函数在数据接收设备确定(STT 4)的作为前一数据-接收-设备-真实性-指示符(RDAIi-1)和当前数据-接收-设备-变量-数(RDVNi)的函数的测试-真实性-指示符(AItest)进行比较。
8.如权利要求7所述的方法,其中,所述步骤(c)还包括在数据接收设备将当前数据-接收-设备-真实性-指示符(RDAIi)设置(STT5)为前一数据-接收-设备-真实性-指示符(RDAIi-1),以及将下一数据-接收-设备-真实性-指示符(RDAIi+1)设置为当前数据-接收-设备-真实性-指示符(RDAIi)。
9.如前述权利要求中的任何一个所述的方法,其中,所述步骤(b)和(c)被重复执行。
10.如权利要求9所述的方法,其中,在每个步骤(b),都能够在所述数据接收设备(RD)提供新的消息数据(MD)。
11.如前述权利要求中的任何一个所述的方法,其中,所述当前数据-提供-设备-真实性-指示符(PDAIi)和/或所述下一数据-提供-设备-真实性-指示符(PDAIi+1)和/或所述数据-真实性-指示符(DataAI)和/或所述测试-数据-真实性-指示符(DataAItest)和/或所述测试-真实性-指示符(AItest)是使用单向函数(h1,h2,h3,h4,h5)计算的,特别是使用至少下列之一计算的PDAIi=h1(PDVNi,AI0),PDAIi+1=h1(PDVNi+1,PDAIi),DataAI=h2(DataP),DataAItest=h2(DataP)和AItest=h1(RDVNi,RDAIi-1),其中,AI0表示初始-真实性-指示符,PDVNi表示当前-数据-提供-设备-变量-数,PDVNi+1表示下一数据-提供-设备-变量-数,DataP表示提供数据,RDAIi-1表示前一数据-接收-设备-真实性-指示符,RDVNi表示当前数据-接收-设备-变量-数,PDAIi表示当前数据-提供-设备-真实性-指示符,PDAIi+1表示下一数据-提供-设备-真实性-指示符,DataAI表示数据-真实性-指示符,DataAItest表示测试-数据-真实性-指示符,AItest表示测试-真实性-指示符,和h1和h2表示单向函数。
12.如权利要求11所述的方法,其中,所述单向函数是散列函数。
13.如权利要求11或12所述的方法,其中,所述单向函数是从散列函数组中选择的,该散列函数组至少包括SHA-1、SHA-224、SHA-256、SHA-384、SHA-512、MD2、MD4、MD5、RIPEMD-160、Snefru、Tiger和Whirlpool。
14.如前述权利要求中的任何一个所述的方法,其中,所述消息数据(MD)包括要由数据-接收-设备(RD)执行的计算机程序代码。
15.如前述权利要求中的任何一个所述的方法,其中,所述向数据接收设备(RD)提供提供数据(DataP)的步骤包括经由无线信道发送提供数据(DataP)。
16.如前述权利要求中的任何一个所述的方法,其中,所述数据提供设备(PD)包括射频发射机。
17.如前述权利要求中的任何一个所述的方法,其中,所述数据接收设备(RD)包括射频接收机。
18.一种计算机程序产品,特别是存储在计算机-可读存储介质上的计算机程序产品,其在被加载到数据提供设备(PD)时,执行根据前述任何一个权利要求所述的方法。
19.一种能够向数据接收设备(RD)发送提供数据(DataP)的数据提供设备(PD),包括-变量数生成设备;-数据-提供-设备-真实性-指示符生成设备,用于特别使用单向函数来产生数据-提供-设备-真实性-指示符;-数据-真实性-指示符生成设备,用于特别使用单向函数来产生数据-真实性-指示符;以及-提供数据提供设备。
20.如权利要求19所述的数据提供设备(PD),还包括能够提供消息数据(MD)的消息数据提供设备。
21.如权利要求19或20所述的数据提供设备(PD),其中,所述提供数据提供设备包括射频发射机。
22.一种能够从数据提供设备(PD)接收提供数据(DataP)的数据接收设备(RD),包括-提供数据接收设备;-测试-数据-真实性-指示符生成设备,用于特别使用单向函数来产生测试-数据-真实性-指示符;-测试-真实性-指示符生成设备,用于特别使用单向函数来产生测试-真实性-指示符。
23.如权利要求22所述的数据接收设备(RD),还包括比较设备,其适合于进行以下比较-数据-真实性-指示符(DataAI)与测试-数据-真实性-指示符(DataAItest)的比较;以及-当前-数据-接收-设备-真实性-指示符(RDAIi)与测试-真实性-指示符(AItest)的比较。
24.如权利要求22或权利要求23所述的数据接收设备(RD),其中,所述提供数据接收设备包括射频接收机。
25.一种包括根据权利要求19至21中的任何一个所述的数据提供设备(PD)和根据权利要求22至24中的任何一个所述的数据接收设备(RD)的通信系统。
全文摘要
本发明涉及用于将数据从诸如射频识别读取器(10)的数据提供设备(PD)传送到诸如射频识别应答器(16)的数据接收设备(RD)的方法以及计算机程序产品、数据提供设备、数据接收设备和通信系统。所述方法具有初始化步骤;和提供数据的提供步骤。所述数据提供设备包括变量数生成设备;数据-提供-设备-真实性-指示符生成设备;数据-真实性-指示符生成设备;和提供数据提供设备。所述数据接收设备包括提供数据接收设备;测试-数据-真实性-指示符生成设备;和测试-真实性-指示符生成设备。
文档编号H04L9/00GK1822020SQ20061000679
公开日2006年8月23日 申请日期2006年1月28日 优先权日2005年2月4日
发明者佐尔坦·诺赫塔 申请人:Sap股份公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1