EPC卡的用户数据写入与读取方法和系统与流程

文档序号:11134799阅读:3405来源:国知局
EPC卡的用户数据写入与读取方法和系统与制造工艺

本发明涉及无线射频识别技术领域,特别是涉及一种EPC卡的用户数据写入与读取方法和系统。



背景技术:

EPC卡(Electronic Product Code,电子产品码)使用了射频识别(RFID,Radio Frequency Identification)标签技术,超高频第二代空中接口标准(UHF Gen2)的EPC卡已经在物联网(Internet of Things)广泛应用。EPC卡的存储空间划分为保留区(Reserved)、电子产品码区(EPC)、标签区(TID,Tag Identifier)和用户区(User)四部分。其中,保留区(Reserved)用于存储控制信息,包括销毁密码(Kill Password)和访问密码(Access Password);电子产品码区(EPC)用于存储控制信息和商业数据,包括循环冗余校验码(CRC,Cyclic Redundancy Check)、协议控制位(PC,Protocol Control)、扩展协议控制位(XPC,eXtended Protocol Control)和EPC码;标签区(TID)用于存储标签制造信息;用户区(User)用于存储商业数据。

EPC码用于标识EPC卡对应的产品,具有可变性。现有的EPC编码方案如表1所示,包括EPC-64、EPC-96、EPC-256,长度分别为64位、96位、256位。EPC代码由版本号、域名管理、对象分类和序列号四部分组成。EPC卡在实际应用时不一定需要EPC码,即使需要,所需的EPC码长度(例如,64位)也不一定需要占满EPC卡的EPC码存储空间(例如,256位)。

表1 EPC编码结构

TID码(Tag Identifier)用于标识EPC卡本身,具有唯一性。有用户区EPC卡可以在用户区存储用户数据,无用户区EPC卡需要将用户数据存储在系统用户数据查找表或数据库中,对用户数据进行读写时,需要在海量数据的用户数据查找表中查找或在数据库中检索,读写效率较低。



技术实现要素:

基于此,有必要针对上述问题,提供一种EPC卡的用户数据写入与读取方法和系统。

一种EPC卡的用户数据写入与读取方法,包括以下步骤:

根据EPC卡的TID码、项目标识符和待写入的用户数据生成明文;

对所述明文进行加密生成密文,将所述密文写入所述EPC卡的电子产品码区,并将所述电子产品码区的读写保护状态设置为带密码可写或永久性不可写;

在读取所述EPC卡的用户数据时,对所述电子产品码区的密文进行解密,获取解密数据,根据从标签区读取到的TID码以及预存的项目标识符对所述解密数据进行校验,在校验成功之后,从所述解密数据中读取所述用户数据。

一种EPC卡的用户数据写入与读取系统,包括:

明文生成模块,用于根据EPC卡的TID码、项目标识符和待写入的用户数据生成明文;

写入模块,用于对所述明文进行加密生成密文,将所述密文写入所述EPC卡的电子产品码区,并将所述电子产品码区的读写保护状态设置为带密码可写或永久性不可写;

读出模块,用于在读取所述EPC卡的用户数据时,对所述电子产品码区的密文进行解密,获取解密数据,根据从标签区读取到的TID码以及预存的项目标识符对所述解密数据进行校验,在校验成功之后,从所述解密数据中读取所述用户数据。

上述EPC卡的用户数据写入与读取方法和系统,将用户数据存储在电子产品码区中,用户数据从EPC卡读取,无需查找用户数据查找表或检索数据库,加快了处理速度。在存储前对用户数据进行了加密处理,并将电子产品码区的读写保护状态设置为带密码可写或永久性不可写,在读出数据时,需要先对用户数据进行解密和校验,只有在校验成功后,才从所述EPC码存储空间中读取所述用户数据保证了用户数据在EPC区的安全性。

附图说明

图1为一个实施例的用户数据写入与读取方法流程图;

图2为一个实施例的用户数据写入与读取系统的结构示意图。

具体实施方式

下面结合附图对本发明的技术方案进行说明。

图1为一个实施例的用户数据写入与读取方法流程图。如图1所示,所述用户数据写入与读取方法可包括以下步骤:

S1,根据EPC卡的TID码、项目标识符和待写入的用户数据生成明文;

在本步骤中,写入用户数据之前,可以首先根据EPC卡的TID码、项目标识符和所述用户数据生成明文,从而为后续操作做准备。所述明文是未经加密的信息,人类可以读懂的信息。

生成明文的方式可以是将所述EPC卡的TID码、项目标识符和用户数据拼接生成。例如,假设TID码为AAA,项目标识符为BBB,用户数据为CCC,则明文可以是AAABBBCCC。也可以根据其他方式生成明文。

S2,对所述明文进行加密生成密文,将所述密文写入所述EPC卡的电子产品码区,并将所述电子产品码区的读写保护状态设置为带密码可写或永久性不可写;

其中,所述密文是将所述明文打乱后的消息。如表1所示,EPC卡在实际应用时不一定需要EPC码,即使需要,所需的EPC码长度(例如,64位)也不一定需要占满EPC卡的EPC码存储空间(例如,256位)。因此,对于无用户区EPC卡,可将用户数据存储在电子产品码区。为了防止用户数据被窃听,在本步骤中,可以对所述明文进行加密生成密文。

在加密时,可以获取具有随机性、不可预测性以及不可重现性的随机事件对应的数值信息;根据所述随机事件对应的数值信息,并根据所述项目标识符和/或所述EPC卡的TID码生成第一密钥;根据所述第一密钥对所述明文进行加密生成密文。其中,所述随机事件包括半导体噪声、不相干的振荡器、系统时间、按键的时间间隔、鼠标移动和/或硬盘的磁头位置等。进一步地,为了提高密钥机密性,可根据所述数值信息中随机性较佳,更好的不可预测性也较佳的一者生成第一密钥。为了进一步提高密钥的机密性,还可以根据所述数值信息中更好的不可重现性也较佳的一者生成第一密钥。其中,所述随机性简单来说就是看上去杂乱无章的性质;所述不可预测性是指攻击者在知道过去生成的伪随机数列的前提下,依然无法预测出下一个生成出来的伪随机数的性质;所述不可重现性是指无法重现和某一随机数列完全相同的数列的性质。也可以根据所述项目标识符和/或所述EPC卡的TID码生成第一密钥,根据所述第一密钥对所述明文进行加密生成密文。每张EPC卡的TID码均不相同,如果密钥生成因子包含TID码,则每张EPC卡对应的密钥均不相同。还可以根据所述数值信息中随机性最大,不可预测性最佳且不可重现性最佳的一者和所述EPC卡的TID码生成第一密钥。通过这种方式生成的密钥安全性较高,其数值和变化规律不容易被窃听者获取到。TID码是公开的,有的随机数的数值空间有限。多个随机数值组合,再组合该项目对应的项目标识符(保密的),密钥生成算法会更复杂,密钥空间更大,机密性更好,更难破解。相比于只用TID码生成密钥的方式,本发明避免了一旦密钥生成算法公开,就可以破解所有卡的密钥的情况。

以根据系统时间生成第一密钥为例。假设当前时间为2016年01月02日03:04:05.678,在上述时间中,年份的变化频率为每年变化一次,月份的变化频率为每个月变化一次,日的变化频率为每日变化一次(分布规律与操作者工作日相关);时数的变化频率为每小时一次,其数值存在24种可能性(分布规律与操作者工作时间相关,上下午数值可能性较大,分布不均匀);分数的变化频率为每分一次,其数值存在60种可能性(分布均匀程度应介于时数与秒数之间);秒数的变化频率为每秒一次,其数值存在60种可能性且分布较均匀;毫秒数的变化频率为每毫秒一次,其数值存在1000种可能性且分布很均匀。由此,可以根据月日时分秒和毫秒数值(此处为01、02、03、04、05、678)生成所述第一密钥。密钥生成算法可包括单向散列函数,散列运算具有模糊和扩散密钥,均匀分布密钥的作用。可以通过单向散列函数的单向性和密码的机密性来保证不可预测性。可以通过从不可重现的物理现象(即上述半导体噪声、不相干的振荡器等随机事件)中获取信息来保证不可重现性。

在一个具体的实施例中,可以根据系统启动至今的毫秒数、上位机软件按键输入用户名的时间间隔毫秒数和鼠标移动选择单选框或复选框或菜单的时间间隔毫秒数生成一个随机数,再将该随机数与系统时间秒数、(硬盘磁道号+1)*(扇区号+1)等多个随机变量进行组合运算,对组合运算的结果进行散列处理。

另外,为了进一步提高用户数据的安全性,在根据所述第一密钥对所述明文进行加密生成密文之前,可以对用户数据进行前置加密;在根据所述第一密钥对所述明文进行加密生成密文之后,可以对用户数据进行后置加密。具体地,可以根据前置加密使用的第二密钥对所述明文进行加密,生成第一加密数据;根据所述第一密钥对所述第一加密数据进行加密,生成第二加密数据;根据后置加密使用的第三密钥对所述第二加密数据进行加密,生成密文;其中,所述第二密钥和第三密钥均与所述第一密钥不同。前置加密和后置加密可以使用现有加密技术,例如异或加密;或者同类算法不同密钥,所述第二密钥可以采用与第一密钥类似的方式生成,所述第三密钥也可以采用与第一、二密钥类似的方式生成。

例如,首先用对称加密算法的加密函数和密钥1加密(前置加密),接着用所述对称加密算法的解密函数和密钥2解密(主加密),最后用所述对称加密算法的加密函数和密钥3加密(后置加密)。密钥1和密钥2应当为不同的密钥,密钥2和密钥3应当为不同的密钥。

进一步地,在加密前,还可以采用第一生成算法生成所述明文对应的第一消息验证码;相应地,在解密后,可根据所述第一生成算法对所述明文生成第二消息验证码,并将所述第二消息验证码与解密数据中的第一消息验证码进行对比,如果所述第二消息验证码与所述第一消息验证码相同,且所述TID码与项目标识符均校验成功,则判定解密数据合法有效,否则,判定解密数据非法无效。

进一步地,还可以采用第二生成算法生成所述密文对应的第三消息验证码,将所述密文和第三消息验证码组合后写入EPC卡的电子产品码区。相应地,在解密时根据所述第二生成算法对所述密文生成第四消息验证码;将所述第四消息验证码与写入电子产品码区的第三消息验证码进行对比;如果所述第四消息验证码与所述第三消息验证码相同,且所述TID码与项目标识符均校验成功,则判定加密数据合法有效,否则,判定加密数据非法无效。

为了进一步提高安全性,防止被破解,所述各个密钥生成算法可以设置为互不相关(无相关性),各个加密算法可以设置为互不相关(无相关性),各个生成算法可以设置为互不相关(无相关性)。

S3,在读取所述EPC卡的用户数据时,对所述电子产品码区的密文进行解密,获取解密数据,根据从标签区读取到的TID码以及预存的项目标识符对所述解密数据进行校验,在校验成功之后,从所述解密数据中读取所述用户数据。

若校验成功,可以从所述解密数据中读取所述用户数据,并可以执行有效卡处理指令(例如,门禁、电梯系统执行放行并记录的指令)。若校验失败,则可以执行无效卡处理操作(例如,拒绝所述无效卡的请求、记录读卡时间、所述无效卡的EPC码和TID码,以及发出报警指令)。例如,2016年1月2日03:04:05时,有一张无效卡试图解锁,则可以记录读卡时间,该无效卡的EPC码和TID码等内容,并可以发出报警指令,门禁系统可以根据该报警指令发出警报。

下面以具体的实施例对本发明的技术方案进行说明。

例1,EPC-64方案II型卡,EPC码存储空间共64位,可用散列函数MurmurHash()生成TID码的32位散列值,追加32位的用户权限信息拼接为64位二进制数作为明文,可用块加密算法DES加密后生成64位密文,写入到EPC码存储空间。

例2,EPC-96方案I型卡,EPC码存储空间共96位,可使用EPC-64II型编码方案的EPC码,可用异或运算(XOR)生成TID码的16位散列值,追加16位的用户权限信息拼接为32位二进制数作为明文,可用流加密算法RC4加密后生成32位密文,写入到EPC码存储空间。

例3,EPC-256方案I型卡,EPC码的域名管理字段可设置为本系统厂商,对象分类字段可设置为自定义编码方案类型,序列号字段长度160位,可将其高32位用于存储序列号,低128位用于存储加密信息,TID码与项目标识符异或运算后用散列函数MurmurHash()生成32位散列值,追加96位的用户数据与项目标识符散列值进行异或运算的结果,拼接为128位二进制数作为明文,用块加密算法AES-128加密后生成128位密文,写入到EPC码存储空间。优点:进入其它EPC卡系统读卡范围不会误识别厂商和对象分类,TID码和32位序列号足够区分本系统的每一张卡。

本发明具有以下优点:

(1)无用户区EPC卡利用EPC码存储空间写入用户数据,提高了利用率;

(2)管理和应用操作均与现有技术产品相同,管理员技能要求低;

(3)系统无需用户数据查找表或数据库,建设成本低;

(4)用户数据从EPC卡读取,无需查找用户数据查找表或检索数据库,加快了处理速度;

(5)TID码、项目标识符、逻辑运算、散列、加密和校验等技术手段的有机结合,以及设置EPC区读写保护状态为带密码可写或永久性不可写,不能通过读写数据的方式对用户数据和系统进行非法进入、使用、泄密、破坏、修改、检视、销毁、制造伪卡,保证了信息安全性(机密性、完整性、可用性)和可靠性;加密防止窃听,保证了机密性;单向散列函数防止篡改,保证了完整性;消息认证码防止篡改和伪装,保证了完整性和认证。

(6)现有的产品和系统可通过修改软件来实现本方法,改造成本低,有利于推广。

如图2所示,本发明还提供一种用户数据写入与读取系统。所述用户数据写入与读取系统可包括:

明文生成模块10,用于根据EPC卡的TID码、项目标识符和待写入的用户数据生成明文;

在写入用户数据之前,可以首先根据EPC卡的TID码、项目标识符和所述用户数据生成明文,从而为后续操作做准备。所述明文是未经加密的信息,人类可以读懂的信息。

生成明文的方式可以是将所述EPC卡的TID码、项目标识符和用户数据拼接生成。例如,假设TID码为AAA,项目标识符为BBB,用户数据为CCC,则明文可以是AAABBBCCC。也可以根据其他方式生成明文。

写入模块20,用于对所述明文进行加密生成密文,将所述密文写入所述EPC卡的电子产品码区,并将所述电子产品码区的读写保护状态设置为带密码可写或永久性不可写;

其中,所述密文是将所述明文打乱后的消息。如表1所示,EPC卡在实际应用时不一定需要EPC码,即使需要,所需的EPC码长度(例如,64位)也不一定需要占满EPC卡的EPC码存储空间(例如,256位)。因此,对于无用户区EPC卡,可将用户数据存储在电子产品码区。为了防止用户数据被窃听,可以对所述明文进行加密生成密文。

在加密时,可以获取具有随机性、不可预测性以及不可重现性的随机事件对应的数值信息;根据所述随机事件对应的数值信息,并根据所述项目标识符和/或所述EPC卡的TID码生成第一密钥;根据所述第一密钥对所述明文进行加密生成密文。其中,所述随机事件包括半导体噪声、不相干的振荡器、系统时间、按键的时间间隔、鼠标移动和/或硬盘的磁头位置等。进一步地,为了提高密钥机密性,可根据所述数值信息中随机性较佳,更好的不可预测性也较佳的一者生成第一密钥。为了进一步提高密钥的机密性,还可以根据所述数值信息中更好的不可重现性也较佳的一者生成第一密钥。其中,所述随机性简单来说就是看上去杂乱无章的性质;所述不可预测性是指攻击者在知道过去生成的伪随机数列的前提下,依然无法预测出下一个生成出来的伪随机数的性质;所述不可重现性是指无法重现和某一随机数列完全相同的数列的性质。也可以根据所述项目标识符和/或所述EPC卡的TID码生成第一密钥,根据所述第一密钥对所述明文进行加密生成密文。每张EPC卡的TID码均不相同,如果密钥生成因子包含TID码,则每张EPC卡对应的密钥均不相同。还可以根据所述数值信息中随机性最大,不可预测性最佳且不可重现性最佳的一者和所述EPC卡的TID码生成第一密钥。通过这种方式生成的密钥安全性较高,其数值和变化规律不容易被窃听者获取到。TID码是公开的,有的随机数的数值空间有限。多个随机数值组合,再组合该项目对应的项目标识符(保密的),密钥生成算法会更复杂,密钥空间更大,机密性更好,更难破解。相比于只用TID码生成密钥的方式,本发明避免了一旦密钥生成算法公开,就可以破解所有卡的密钥的情况。

以根据系统时间生成第一密钥为例。假设当前时间为2016年01月02日03:04:05.678,在上述时间中,年份的变化频率为每年变化一次,月份的变化频率为每个月变化一次,日的变化频率为每日变化一次(分布规律与操作者工作日相关);时数的变化频率为每小时一次,其数值存在24种可能性(分布规律与操作者工作时间相关,上下午数值可能性较大,分布不均匀);分数的变化频率为每分一次,其数值存在60种可能性(分布均匀程度应介于时数与秒数之间);秒数的变化频率为每秒一次,其数值存在60种可能性且分布较均匀;毫秒数的变化频率为每毫秒一次,其数值存在1000种可能性且分布很均匀。由此,可以根据月日时分秒和毫秒数值(此处为01、02、03、04、05、678)生成所述第一密钥。密钥生成算法可包括单向散列函数,散列运算具有模糊和扩散密钥,均匀分布密钥的作用。可以通过单向散列函数的单向性和密码的机密性来保证不可预测性。可以通过从不可重现的物理现象(即上述半导体噪声、不相干的振荡器等随机事件)中获取信息来保证不可重现性。

在一个具体的实施例中,可以根据系统启动至今的毫秒数、上位机软件按键输入用户名的时间间隔毫秒数和鼠标移动选择单选框或复选框或菜单的时间间隔毫秒数生成一个随机数,再将该随机数与系统时间秒数、(硬盘磁道号+1)*(扇区号+1)等多个随机变量进行组合运算,对组合运算的结果进行散列处理。

另外,为了进一步提高用户数据的安全性,在根据所述第一密钥对所述明文进行加密生成密文之前,可以对用户数据进行前置加密;在根据所述第一密钥对所述明文进行加密生成密文之后,可以对用户数据进行后置加密。具体地,可以根据前置加密使用的第二密钥对所述明文进行加密,生成第一加密数据;根据所述第一密钥对所述第一加密数据进行加密,生成第二加密数据;根据后置加密使用的第三密钥对所述第二加密数据进行加密,生成密文;其中,所述第二密钥和第三密钥均与所述第一密钥不同。前置加密和后置加密可以使用现有加密技术,例如异或加密;或者同类算法不同密钥,所述第二密钥可以采用与第一密钥类似的方式生成,所述第三密钥也可以采用与第一、二密钥类似的方式生成。

例如,首先用对称加密算法的加密函数和密钥1加密(前置加密),接着用所述对称加密算法的解密函数和密钥2解密(主加密),最后用所述对称加密算法的加密函数和密钥3加密(后置加密)。密钥1和密钥2应当为不同的密钥,密钥2和密钥3应当为不同的密钥。

进一步地,在加密前,还可以采用第一生成算法生成所述明文对应的第一消息验证码;相应地,在解密后,可根据所述第一生成算法对所述明文生成第二消息验证码,并将所述第二消息验证码与解密数据中的第一消息验证码进行对比,如果所述第二消息验证码与所述第一消息验证码相同,且所述TID码与项目标识符均校验成功,则判定解密数据合法有效,否则,判定解密数据非法无效。

进一步地,还可以采用第二生成算法生成所述密文对应的第三消息验证码,将所述密文和第三消息验证码组合后写入EPC卡的电子产品码区。相应地,在解密时根据所述第二生成算法对所述密文生成第四消息验证码;将所述第四消息验证码与写入电子产品码区的第三消息验证码进行对比;如果所述第四消息验证码与所述第三消息验证码相同,且所述TID码与项目标识符均校验成功,则判定加密数据合法有效,否则,判定加密数据非法无效。

为了进一步提高安全性,防止被破解,所述各个密钥生成算法可以设置为互不相关(无相关性),各个加密算法可以设置为互不相关(无相关性),各个生成算法可以设置为互不相关(无相关性)。

读出模块30,用于在读取所述EPC卡的用户数据时,对所述电子产品码区的密文进行解密,获取解密数据,根据从标签区读取到的TID码以及预存的项目标识符对所述解密数据进行校验,在校验成功之后,从所述解密数据中读取所述用户数据。

若校验成功,可以从所述解密数据中读取所述用户数据,并可以执行有效卡处理指令(例如,门禁、电梯系统执行放行并记录的指令)。若校验失败,则可以执行无效卡处理操作(例如,拒绝所述无效卡的请求、记录读卡时间、所述无效卡的EPC码和TID码,以及发出报警指令)。例如,2016年1月2日03:04:05时,有一张无效卡试图解锁,则可以记录读卡时间,该无效卡的EPC码和TID码等内容,并可以发出报警指令,门禁系统可以根据该报警指令发出警报。

下面以具体的实施例对本发明的技术方案进行说明。

例1,EPC-64方案II型卡,EPC码存储空间共64位,可用散列函数MurmurHash()生成TID码的32位散列值,追加32位的用户权限信息拼接为64位二进制数作为明文,可用块加密算法DES加密后生成64位密文,写入到EPC码存储空间。

例2,EPC-96方案I型卡,EPC码存储空间共96位,可使用EPC-64II型编码方案的EPC码,可用异或运算(XOR)生成TID码的16位散列值,追加16位的用户权限信息拼接为32位二进制数作为明文,可用流加密算法RC4加密后生成32位密文,写入到EPC码存储空间。

例3,EPC-256方案I型卡,EPC码的域名管理字段可设置为本系统厂商,对象分类字段可设置为自定义编码方案类型,序列号字段长度160位,可将其高32位用于存储序列号,低128位用于存储加密信息,TID码与项目标识符异或运算后用散列函数MurmurHash()生成32位散列值,追加96位的用户数据与项目标识符散列值进行异或运算的结果,拼接为128位二进制数作为明文,用块加密算法AES-128加密后生成128位密文,写入到EPC码存储空间。优点:进入其它EPC卡系统读卡范围不会误识别厂商和对象分类,TID码和32位序列号足够区分本系统的每一张卡。

本发明具有以下优点:

(1)无用户区EPC卡利用EPC码存储空间写入用户数据,提高了利用率;

(2)管理和应用操作均与现有技术产品相同,管理员技能要求低;

(3)系统无需用户数据查找表或数据库,建设成本低;

(4)用户数据从EPC卡读取,无需查找用户数据查找表或检索数据库,加快了处理速度;

(5)TID码、项目标识符、逻辑运算、散列、加密和校验等技术手段的有机结合,以及设置EPC区读写保护状态为带密码可写或永久性不可写,不能通过读写数据的方式对用户数据和系统进行非法进入、使用、泄密、破坏、修改、检视、销毁、制造伪卡,保证了信息安全性(机密性、完整性、可用性)和可靠性;加密防止窃听,保证了机密性;单向散列函数防止篡改,保证了完整性;消息认证码防止篡改和伪装,保证了完整性和认证。

(6)现有的产品和系统可通过修改软件来实现本方法,改造成本低,有利于推广。

本发明的用户数据写入与读取系统与本发明的用户数据写入与读取方法一一对应,在上述用户数据写入与读取方法的实施例阐述的技术特征及其有益效果均适用于用户数据写入与读取系统的实施例中,特此声明。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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