一种离线式rfid系统读卡器与标签双向认证方法

文档序号:6372153阅读:189来源:国知局
专利名称:一种离线式rfid系统读卡器与标签双向认证方法
技术领域
本发明涉及在读卡器读取卡片之前对卡片进行双向认证的方法,更特别地说,是指一种基于对卡片的ID进行加密并进行认证的方法,通过对卡片的双向认证来提高系统的安全性。
背景技术
随着微机电系统和数字电子技术的进步诞生了 RFID (Radio Frequency Identification)技术。利用RFID技术,通过单片机控制射频模块,利用天线发出适合射频标签的共振磁场,可以有效地与射频标签实现数据通信,完成射频标签的识别和卡内数据的获取与设置。目前RFID技术已经广泛地应用于生产制造和装配、航空行李处理、邮件 /快运包裹处理、文档追踪/图书馆管理、和门禁控制/电子门票等领域。
但是RFID记录的方式有着致命的安全隐患。例如,当攻击者恶意复制一张卡片时,读卡器未认证卡片是否合法就直接修改卡片内存储的信息,这样会对RFID造成破坏。 同样,当攻击者伪造一个读卡器时,卡片未认证读卡器是的合法性就直接让读卡器读取其内部存储的数据信息,将会导致卡片内部一些重要数据信息的泄露,给用户和系统造成了巨大的损失。由于上述情况会对RFID系统以及用户信息的破坏,因此有必要对目前的RFID 系统做进一步的改进,以提高RFID系统的安全性。发明内容
为了提高RFID系统的安全性,本发明提出了读卡器双向认证的方法。它通过对读卡器和卡片的双向认证,来保证系统的安全性。通过本发明,读卡器在读取卡片之前,先认证该卡片是否合法,若认证卡片是合法时,读卡器才能读取卡片内部存储的数据,否则读卡器拒绝读取卡片内部的数据。卡片在被读卡器读取之前,也要验证该读卡器是否合法,只有在读卡器合法时,卡片信息才可以被读卡器读取,否则卡片拒绝读卡器读取其内部的数据。 为达此目的,本发明采用以下技术方案
卡片数据区初始化步骤
Stepl :对卡片内部的1-15号数据区进行初始化,每个数据区48个字节的存储空间,系统调用读卡器库函数中的写函数,将0-47数字依次写入各个数据区。
系统双向认证初始化包括卡片认证初始化和读卡器认证初始化,
卡片认证初始化步骤
Stepl :系统调用读卡器库函数中的读函数读取卡片的4字节的ID,并在其后补4 个字节的I来扩展成8字节的ExtendID ;
St印2 :系统设置密钥KeyDES来作为此次加密的密钥;
St印3 :系统使用DES加密算法,通过上一步得到的密钥KeyDES给ExtendID加密, 得到的ExtendID的密文结果为8字节的ResultDES ;
Step4:系统调用读卡器库函数中的写函数将上一步得到的8字节的ResultDES写入卡片的密码A区。
读卡器认证初始化步骤
Stepl :系统调用读卡器库函数中的读函数读取卡片的4字节的ID,并在其后补4 个字节的I来扩展成8字节的ExtendID ;
St印2 :系统设置密钥16字节的KeyTEA来作为此次加密的密钥;
St印3 :系统使用TEA加密算法,通过上一步得到的密钥KeyTEA给ExtendID加密, 得到的ExtendID的密文结果为8字节的ResultTEA ;
Step4:系统调用读卡器库函数中的写函数将上一步得到的8字节的ResultTEA写入卡片内部I号数据区的前8个字节;
Step5 :系统调用读卡器库函数中的读函数读取卡片内部1_14号数据区共672 个字节,系统调用哈希函数对这672个字节数据进行哈希运算,得到48字节的哈希值 ResultHash ;
St印6 :系统调用读卡器库函数中的写函数将上一步得到的ResultHash写入写入卡片内部15号数据区。
系统双向认证包括卡片认证和读卡器认证,
卡片认证步骤
Stepl :系统调用读卡器库函数中的读函数读取卡片的4字节的ID,并在其后补4 个字节的I来扩展成8字节的ExtendID ;
St印2 :系统使用DES加密算法,通过在卡片认证初始化中得到的密钥KeyDES给 ExtendID加密,得到的ExtendID的密文结果为8字节的ValueDES ;
St印3 :系统调用读卡器库函数中的写函数将上一步得到的ValueDES写入卡片的密码B区中。然后卡片对在卡片认证初始化写入密码A区的ResultDES与密码B区中的 ValueDES进行异或操作,若结果为0,则卡片认证读卡器合法,否则,卡片拒绝读卡器读取卡片的数据信息。
读卡器认证步骤
Stepl :系统调用读卡器库函数中的读函数读取卡片内部I号数据区前8个字节的 ResultTEA,然后使用在读卡器认证初始化中得到的密钥KeyTEA对ResultTEA进行TEA解密,得到8字节的ValueID ;
Step2 :系统调用读卡器库函数中的读函数读取卡片的4字节的ID,并在其后补4 个字节的I来扩展成8字节的ExtendID ;
Step3 :系统比较ExtendID和ValueID是否相同,若相同则表示卡片内部I号数据区前8个字节ResultTEA是在卡片认证初始化中设置的关于ExtendID的密文,读卡器将会继续执行以下步骤,否则,读卡器认为卡片不合法而拒绝读取卡片的数据信息;
Step4:系统调用读卡器库函数中的读函数读取卡片内部1_14号数据区共672 个字节,系统调用哈希函数对这672个字节数据进行哈希运算,得到48字节的哈希值 ValueHash ;
Step5:系统调用读卡器库函数中的读函数读取卡片内部15号数据区48个字节的 ResultHash,并与上一步得到的ValueHash进行比较,若两者相同,读卡器认为卡片合法, 若不相同,则表示该卡片修改了其内部I号数据区前8个字节的ResultTEA,读卡器认为卡片不合法而拒绝读取卡片的数据信息。
本发明的离线式RFID系统读卡器与标签双向认证的优点在于
(I)采用了本发明的技术方法,系统分别对读卡器和卡片进行认证,只有在两者都认证成功的情况下,读卡器才可以读取卡片内的数据,卡片也允许读卡器读取其内部数据, 从而保证了系统的安全性。
(2)采用了本发明的技术方法,可以通过离线认证方式,而不需要通过读取数据库的信息进行安全认证。
(3)本发明考虑到卡片的运算能力较弱的特点,所以卡片在认证过程中的操作只是对在卡片认证初始化阶段得到的ResultDES和在卡片认证阶段得到的ValueDES进行异或操作;由于读卡器与计算机相连,有比较好的计算能力,所以在读卡器认证步骤中分别采用了 TEA加密算法和哈希函数运算进行认证。
(4)本发明能够识别攻击者通过伪造卡片或者伪造读卡器对系统进行攻击。当攻击者通过复制合法卡片的信 息来伪造卡片时,那么伪造卡片内部I号数据区前8个字节存储的数据ResultTEA是合法卡的ExtendID的TEA加密密文,而伪造卡片的ExtendID与合法卡片的ExtendID不同,则伪造卡片内部存储的ResultTEA与用其ExtendID的TEA加密密文不一致而被读卡器认证为非法卡片。由于卡片内部15号数据区存储的数据是关于 ResultTEA的哈希函数的哈希值,若攻击者通过修改伪造卡片内部I号数据区前8个字节存储的数据ResultTEA来使其与伪造卡的ExtendID相一致时,贝U可以通过卡片内部15号数据区存储的哈希值观察到而被读卡器认证为非法卡片;同样当攻击者试图复制读卡器来窃取卡片信息时,由于伪造读卡器不知DES加密密钥,所以卡片认证读卡器非法而拒绝读卡器读取其内容。


图I是系统初始化流程图。
图2是系统双向认证流程图。
具体实施方式
下面将结合附图对本发明做进一步的详细说明。
本发明技术方案包括卡片认证初始化过程、读卡器认证初始化过程、卡片认证过程和读卡器认证过程。系统初始化流程如图I所示,主要包括卡片认证初始化和读卡器认证初始化,系统双向认证流程如图2所示,主要包括卡片认证和读卡器认证。
(I)系统初始化
当系统中需要产生一新卡片时,需要对卡片进行初始化,包括卡片数据区初始化, 卡片认证初始化和读卡器认证初始化。
I)卡片数据区初始化步骤
Stepl :对卡片内部的1_15号数据区进行初始化,每个数据区48个字节的存储空间,系统调用读卡器库函数中的写函数,将0-47数字依次写入各个数据区。
2)卡片认证初始化步骤
Stepl :系统调用读卡器库函数中的读函数读取卡片的4字节的ID,并在其后补4个字节的I来扩展成8字节的ExtendID ;
St印2 :系统设置密钥KeyDES来作为此次加密的密钥;
St印3 :系统使用DES加密算法,通过上一步得到的密钥KeyDES给ExtendID加密,
a、初始置换
初始置换在第一轮运算之前执行,对输入分组实施如下表所示的变换。此表应从左向右、从上向下读。例如,初始置换把明文的第58位换到第I位的位置,把第50位换到第2位的位置,把第42位换到第3位的位置,等等。
权利要求
1.离线式RFID系统读卡器与标签双向认证方法,其特征在于,包括系统认证初始化过卡片数据区初始化步骤Stepl :对卡片内部的1-15号数据区进行初始化,每个数据区48个字节的存储空间,系统调用读卡器库函数中的写函数,将0-47数字依次写入各个数据区的各个字节中。
2.根据权利要求I所述的离线式RFID系统读卡器与标签双向认证方法,其特征在于, 还包括系统双向认证初始化过程系统双向认证初始化包括卡片认证初始化和读卡器认证初始化,卡片认证初始化步骤Stepl :系统调用读卡器库函数中的读函数读取卡片的4字节的ID,并在其后补4个字节的I来扩展成8字节的ExtendID ;Step2 :系统设置密钥KeyDES来作为此次加密的密钥;St印3 :系统使用DES加密算法,通过上一步得到的密钥KeyDES给ExtendID加密,得到的ExtendID的密文结果为8字节的ResultDES ;St印4 :系统调用读卡器库函数中的写函数将上一步得到的8字节的ResultDES写入卡片的密码A区。读卡器认证初始化步骤Stepl :系统调用读卡器库函数中的读函数读取卡片的4字节的ID,并在其后补4个字节的I来扩展成8字节的ExtendID ;Step2 :系统设置密钥16字节的KeyTEA来作为此次加密的密钥;St印3 :系统使用TEA加密算法,通过上一步得到的密钥KeyTEA给ExtendID加密,得到的ExtendID的密文结果为8字节的ResultTEA ;Step4 :系统调用读卡器库函数中的写函数将上一步得到的8字节的ResultTEA写入卡片内部I号数据区的前8个字节;Step5 :系统调用读卡器库函数中的读函数读取卡片内部1-14号数据区共672个字节, 系统调用哈希函数对这672个字节数据进行哈希运算,得到48字节的哈希值ResultHash ; St印6 :系统调用读卡器库函数中的写函数将上一步得到的ResultHash写入写入卡片内部15号数据区。
3.根据权利要求I所述的离线式RFID系统读卡器与标签双向认证方法,其特征在于, 还包括系统双向认证初始化过程系统双向认证包括卡片认证和读卡器认证,卡片认证步骤Stepl :系统调用读卡器库函数中的读函数读取卡片的4字节的ID,并在其后补4个字节的I来扩展成8字节的ExtendID ;Step2 :系统使用DES加密算法,通过在卡片认证初始化中得到的密钥KeyDES给 ExtendID加密,得到的ExtendID的密文结果为8字节的ValueDES ;St印3 :系统调用读卡器库函数中的写函数将上一步得到的ValueDES写入卡片的密码 B区中。然后卡片对在卡片认证初始化写入密码A区的ResultDES与密码B区中的ValueDES 进行异或操作,若结果为0,则卡片认证读卡器合法,否则,卡片拒绝读卡器读取卡片的数据信息。读卡器认证步骤Stepl :系统调用读卡器库函数中的读函数读取卡片内部I号数据区前8个字节的 ResultTEA,然后使用在读卡器认证初始化中得到的密钥KeyTEA对ResultTEA进行TEA解密,得到8字节的ValueID ;Step2 :系统调用读卡器库函数中的读函数读取卡片的4字节的ID,并在其后补4个字节的I来扩展成8字节的ExtendID ;St印3 :系统比较ExtendID和ValueID是否相同,若相同则表示卡片内部I号数据区前 8个字节ResultTEA是在卡片认证初始化中设置的关于ExtendID的密文,读卡器将会继续执行以下步骤,否则,读卡器认为卡片不合法而拒绝读取卡片的数据信息;Step4 :系统调用读卡器库函数中的读函数读取卡片内部1-14号数据区共672个字节, 系统调用哈希函数对这672个字节数据进行哈希运算,得到48字节的哈希值ValueHash ; Step5 :系统调用读卡器库函数中的读函数读取卡片内部15号数据区48个字节的 ResultHash,并与上一步得到的ValueHash进行比较,若两者相同,读卡器认为卡片合法, 若不相同,则表示该卡片修改了其内部I号数据区前8个字节的ResultTEA,读卡器认为卡片不合法而拒绝读取卡片的数据信息。
4.根据权利要求I所述的离线式RFID系统读卡器与标签双向认证方法,其特征在于, 系统初始化流程如图I所示。
5.根据权利要求I所述的离线式系统双向认证流程如图2所示。RFID系统读卡器与标签双向认证方法,其特征在于,
全文摘要
本发明公开了一种在RFID系统中对读卡器和卡片进行双向认证的方法。在读卡器读取卡片数据之前,读卡器需要认证卡片的合法性,同样卡片也需要认证读卡期的合法性,只有双方都认证合法的情况下,读卡器才可以读取卡片信息,卡片也允许读卡器读取其信息。通过本方法,可以有效的保证RFID系统的安全性。
文档编号G06K17/00GK102945379SQ20121021483
公开日2013年2月27日 申请日期2012年6月27日 优先权日2012年6月27日
发明者芦效峰, 李剑, 袁明 申请人:无锡北邮感知技术产业研究院有限公司, 北京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1