②汉明重量W(v)≥d时,恢复图像中该像素点为黑色;W(v)③重复上述过程即可得恢复图像。
2 基于视觉密码的RFID认证协议
2.1 预置信息
在基于视觉密码的RFID认证协议中,后台数据库为每个标签存储一条记录(ID、S1、Rr、Pointer),ID是标签的唯一标识符,Rr是系统生成的随机数,由Rr构造一幅黑白二值图像P;S1是对P作(2,2)视觉密码分解所得的影子图像。Pointer是数据记录关联指针,其作用是保证认证过程中的同步安全。标签中存储ID标识符和标签对应的另一个影子图像S2。读写器含有随机数发生器,并为每个标签存储一条记录(Hash(ID||R)、ID),Hash(ID||R)是标签ID与随机数的哈希值。后端系统和标签共用Hash()和Ard(),Hash()是哈希函数,Ard()为猫脸变换函数,用来对影子图像进行加密与恢复。 初始化时,为每个标签随机生成一幅二值图像P,使用视觉密码将P分解为影子图像S1和S2,将这些信息分别存入后台系统和标签中,如图1所示。
2.2 协议认证过程
(1)读写器向标签发送认证请求Query和随机数R后,更新读写器中记录的Hash(ID||R)值。
(2)标签计算Hash(ID||R),对影子图像S2加密,将信息Hash(ID||R)和EN(S2)发送给读写器。
(3)读写器以Hash(ID||R)为索引搜索表中的记录,若找到则将记录中的ID和EN(S2)转发给后端系统;否则,会话结束。
(4)后台以ID为索引搜索数据库。若找到,取出记录中的S1与解密后的S2作视觉密码运算得到恢复图像P`,系统检测P`中的信息与Rr是否一致,一致则对标签通过认证。后端系统随机生成新的随机数Rrnew和对应的二值图像Pnew,对Pnew作视觉密码分解得到新的影子图像S1new、S2new,生成随机数R,并计算Hash(ID||R),将Hash(ID||R)、R和EN(S2new)发送给读写器。读写器收到后转发给标签。若P`中检测的信息与Rr的信息不一致,则会话结束。