一种基于CRC编码的RFID轻量级双向认证方法,该方法由标签提取自身固有的CRC码和提供随机数发生器,利用简单的逻辑运算和CRC编码运算,将阅读器和标签各自产生的随机数Rr和Rt、标签临时标识符IDT以及密钥信息K1和K2进行加密生成随机动态变化的密文,以此作为阅读器和标签的身份认证信息,从而实现两者的相互认证过程。本发明方法新颖实用简单,不需要通过传统大规模数据加密或HASH运算,适用于硬件或计算能力有限的RFID系统,同时能较好地实现高隐私安全和低标签成本的结合。
一种基于CRC编码的RFID轻量级双向认证方法,其特征是首先对RFID系统进行初始化:在后端数据库和标签端都为每个标签存储一条记录(IDT,ID,K1,K2),其中ID为电子标签唯一的身份识别码,定义其位数为64位,且其在认证过程中保持不变;IDT是在认证过程中为了保证ID的机密性而代替其运算的一个64位的标签临时标识符,在每轮认证过程中,其与ID保持一一对应关系,并在协议认证成功后,后端数据库和标签端都会对其进行同步更新;K1、K2为阅读器和标签共享的1行64列的密钥矩阵;其认证步骤如下:
S01:阅读器产生一个随机数Rr,并向电子标签发送Rr和一个认证请求命令Query;
S02:标签收到阅读器发来的Query||Rr后,首先产生一个随机数Rt,并提取存储在自身的密钥矩阵K1、K2以及标签ID和临时标识符IDT,再结合阅读器所转发的随机数Rr计算下列等式
得到A、B后,将B与Rt进行异或运算,并对运算后的结果进行CRC编码,编码结束后再与IDT、K1进行异或运算:
S03:标签端的加密运算结束后,标签将A||IDT||M1一起发送给阅读器;
S04:阅读器收到标签发送的信息A||IDT||M1后,存储信息并将IDT转发给后端数据库;
S05:后端数据库收到阅读器的转发信息IDT后,根据IDT搜索阅读器和标签共享的密钥矩阵K1、K2和标签ID,并一起发回给阅读器;
S06:阅读器收到后端数据库转发来的消息K1||ID||K2后,首先通过等式
求出Rt",再计算
计算完毕后,再比较M1"和M1是否相等,如果它们不相等,则说明阅读器对标签认证失败,结束认证过程;如果相等,则阅读器对标签认证成功,继续计算
S07:阅读器计算M2"后,将其转发给标签;
S08:标签接收到M2"后,计算
并比较M2和M2";如果两者不相等,则表示标签对阅读器认证失败,停止认证过程;如果两者相等,则表示阅读器和标签相互认证成功,结束认证过程,同时标签端的密钥矩阵K1、K2及标签临时标识符IDT进行下列更新:
S09:阅读器和标签相互认证成功后,标签发送认证成功命令success给阅读器;
S10:阅读器收到success命令后,将自身产生的随机数Rr和计算得到的标签随机数Rt一起发送给后端数据库;S11:后端数据库接收到阅读器发送的Rr||Rt后,将自身存储的K1、K2及标签临时标识符IDT根据S08的三个等式进行更新,使其与标签端的K1、K2、IDT保持同步。