1.一种基于交叉位运算和循环校验函数的RFID双向认证方法,其特征在于,包括下述步骤:
(1)读写器向标签发送认证请求命令;
(2)标签向读写器发送TID作为响应;
(3)读写器验证标签的真伪,再计算A和B的值,并将A和B的值传给标签,其中
(4)标签先通过计算得到R1,R1表示读写器产生的一个随机数,再通过B来验证读写器的真伪,接着再计算D的值,最后将D的值传给读写器;
(5)读写器再次验证标签的真伪,再计算E和F的值,并将E和F的值传给标签,同时读写器更新密钥,其中
(6)标签先通过计算得到R2,R2表示读写器产生的另一个随机数,通过F再次验证读写器的真伪,最后标签根据接收到的消息更新密钥。
2.根据权利要求1所述基于交叉位运算和循环校验函数的RFID双向认证方法,其特征在于,步骤(1)中,首先读写器向标签发送一个“Hello”信号,并发起认证请求。
3.根据权利要求2所述基于交叉位运算和循环校验函数的RFID双向认证方法,其特征在于,步骤(2)中,标签在收到读写器发送来的认证请求之后,将自身存放的TID作为响应,发送给读写器。
4.根据权利要求3所述基于交叉位运算和循环校验函数的RFID双向认证方法,其特征在于,读写器在收到标签发送来的TID之后,开始查询存放的信息中是否存在TID,若不存在,说明标签是伪造的,认证立刻停止;若存在,读写器接着产生一个长度为L位的随机数R1,然后用与之相对应的ID、K1来计算A的值,用K1、K2、ID、R1来计算B的值,最后将A和B的值都传给标签。
5.根据权利要求4所述的利用交叉位运算和循环校验函数来实现RFID双向认证的方法,其特征在于,标签在收到读写器传来的A和B之后,标签首先用自身存放的ID、K1来计算从而可以得到随机数R1,然后用计算出来的R1,以及自身存放的K1、K2、ID来计算B`,并将B`与B进行对比,若不相等,说明读写器是伪造的,认证立刻停止;若相等,说明读写器合法,接着标签用计算出来的R1,以及自身存放的K1、K2、ID来计算D的值,最后将D的值传给读写器,其中:
6.根据权利要求5所述的基于交叉位运算和循环校验函数的RFID双向认证方法,其特征在于,读写器在收到标签发送来的D之后,读写器首先用自身产生的随机数R1以及自身存放的K1、K2、ID来计算D`,并将D`与D进行对比,若不相等,说明标签是伪造的,认证立刻停止;若相等,说明标签合法,读写器接着产生一个长度为L位的随机数R2,然后用自身存放的K1、K2来计算E的值,用K1、K2、R1、R2来计算F的值,并将E和F的值都传给标签,最后读写器更新密钥,其中,
7.根据权利要求6所述基于交叉位运算和循环校验函数的RFID双向认证方法,其特征在于,标签在收到读写器传来的E和F之后,标签首先用自身存放的K2、K1来计算从而可以得到随机数R2,然后用计算出来的R2、R1,以及自身存放的K1、K2来计算F`,并将F`与F进行对比,若不相等,说明读写器是伪造的,认证立刻停止;若相等,说明读写器合法,然后标签开始更新自身的密钥,其中,