1.一种轻量级的移动RFID系统认证方法,其特征包含于以下步骤:(1)读写器产生随机数r1,并向标签发送认证请求命令及r1;
(2)标签计算M1,M2_L,M2_R的值,并向读写器发送M1,M2_R;
(3)读写器根据M1,M2_R验证标签的真伪,为真,进行步骤(4);否则,协议终止;
(4)读写器计算M3,M4_L,M4_R的值,并向标签发送M3,M4_R;
(5)标签根据M3,M4_R验证读写器的真伪,为真,进行步骤(6);否则,协议终止;
(6)标签向读写器发送确定指令;
(7)读写器向后台数据库发送M2_R,M4_R,r1;
(8)后台数据库根据M4_R验证读写器的真伪,为真,进行步骤(9);否则,进行步骤(10);
(9)后台数据库根据M2_R验证标签的真伪,为真,进行步骤(11);否则,进行步骤(10);
(10)后台数据库用上一轮的共享密钥K_old再次验证读写器及标签的真伪,两者同时为真,进行步骤(11);否则,协议终止;
(11)后台数据库产生随机数r2,计算M5,M6,M7,同时更新共享密钥,并向读写器传送M5,M6,M7;
(12)读写器根据M5,M7验证后台数据库的真伪,为真,进行步骤(13);否则,协议终止;
(13)读写器向标签传送M6,M7,并读写器更新共享密钥;
(14)标签根据M6,M7验证后台数据库的真伪,为真,进行步骤(15);否则,协议终止;
(15)标签更新共享密钥,到此后台数据库、读写器、标签三方认证顺利结束;
其中,
ID_T:标签T的标识符;IDR:读写器R的标识符;
K_L:本轮认证的共享密钥K的左半部分;
K_R:本轮认证的共享密钥K的右半部分;
K:本轮认证的共享密钥;
K_old:上轮认证的共享密钥;
r1:读写器产生的随机数;
r2:后台数据库产生的随机数;
gK(X,Y):基于共享密钥的伪随机函数;
[gK(X,Y)]L:取gK(X,Y)运算结果的左半部分;
[gK(X,Y)]R:取gK(X,Y)运算结果的右半部分;
Syn(X,Y):字合成运算;
异或运算;
M1,M2,M3,M4,M5,M6,M7:通信消息;
读写器首先产生一个随机数r1,然后将随机数r1连同认证请求命令Request一并传送给标签;
标签在接收到读写器发送来的信息后,首先用自身存放的ID_T、K_L、K_R来计算M1,用自身存放的ID_T、K及接收到的r1来计算M2_L、M2_R;然后将M1、M2_R传送给读写器;
读写器在接收到标签发送来的信息后,首先用自身存放的K_L、K_R及接收到的M1来计算ID_T`,接着用计算得到的ID_T`、自身存放的K及自身产生的r1来计算M2_R`,然后比对计算得到的M2_R`与接收到的M2_R的值;
若两者值相等,说明标签为真,进行步骤5,同时表明计算得到的ID_T`与ID_T相同;若两者值不相等,说明标签是伪造的,协议终止,同时表明计算得到的ID_T`与ID_T不相同;
读写器用自身存放的IDR、K_L、K_R来计算M3,用自身存放的K、IDR及自身产生的r1来计算M4_L、M4_R,并向标签发送M3,M4_R;
标签在接收到读写器发送来的信息后,首先用自身存放的K_L、K_R及接收到的M3来计算IDR`,接着用计算得到的IDR`、自身存放的K及接收到的r1来计算M4_R`,然后比对计算得到的M4_R`与接收到的M4_R的值;
若两者值相等,说明读写器为真,进行步骤7,同时表明计算得到的IDR`与IDR相同;若两者值不相等,说明读写器是伪造的,协议终止,同时表明计算得到的IDR`与IDR不相同;
标签向读写器确认指令Sure;到此标签与读写器之间的双向认证结束,下面开始后台数据库与读写器、标签之间的三方认证;
读写器在接收到标签发送来的信息之后,读写器将自身产生的r1、计算得到的M4_R及接收的M2_R一并传送给后台数据库;
后台数据库在接收到读写器发送来的信息后,首先后台数据库检索自身存放的IDR``、接收到的r1及自身存放的K来计算M4_R``,然后比对计算得到的M4_R``与接收到的M4_R的值;
若两者的值相等,说明读写器为真,后台数据库验证读写器通过,进行步骤10,同时也表明计算得到的M4_R``与接收到的M4_R相同;若两者的值不相等,则进行步骤11;
接着后台数据库检索自身存放的ID_T``、接收到的r1及自身存放的K来计算M2_R``,然后比对计算得到的M2_R``与接收到的M2_R的值;若两者的值相等,说明标签为真,后台数据库验证标签通过,进行步骤12,同时也表明计算得到的M2_R``与接收到的M2_R相同;若两者的值不相等,则进行步骤11;其中后台数据库用上一轮的共享密钥K_old的值替代K重新计算M2_R```、M4_R```,然后比对计算得到的M2_R```与接收到的M2_R的值、比对计算得到的M4_R```与接收到的M4_R的值;
若M2_R```与M2_R两者值相等,且M4_R```与M4_R两者值相等,说明标签及读写器都为真,后台数据库验证标签及读写器都通过,进行步骤12;否则,说明标签及读写器两者之中至少有一方是伪造的,协议终止;其中后台数据库产生一个随机数r2,接着用接收到的M4_R、自身产生的r2来计算M5,用接收到的M2_R、自身产生的r2来计算M6,用自身存放的K_L、K_R及自身产生的r2来计算M7,同时更新共享密钥K_old=K、K=K_new,最后向读写器发送M5,M6,M7;
其中
读写器在接收到后台数据库发送来的信息后,首先读写器用自身计算得到的M4_R及接收到的M5来计算r2`,接着用计算得到的r2`、自身存放的K_L及K_R来计算M7`,然后比对计算得到的M7`与接收到的M7的值;
若两者的值相等,说明后台数据库为真,读写器验证后台数据库通过,进行步骤14;若两者的值不相等,说明后台数据库是伪造的,协议终止;其中读写器向标签传送M6,M7,同时读写器更新共享密钥标签在接收到读写器发送来的信息后,首先标签用自身计算得到的M2_R及接收到的M6来计算r2``,接着用计算得到的r2``、自身存放的K_L及K_R来计算M7``,然后比对计算得到的M7``与接收到的M7的值;
若两者的值相等,说明后台数据库为真,标签验证后台数据库通过,进行步骤16;若两者的值不相等,说明后台数据库是伪造的,协议终止;
其中
标签更新共享密钥 到此后台数据库与读写器、标签三方之间的认证结束。