1.基于云的中草药溯源平台RFID协议方法,其特征在于,分为初始阶段、认证阶段和更新阶段;
认证阶段以及更新阶段包括如下步骤:
步骤一:阅读器第一次传递消息Query和TR到标签,然后标签生成随机数N,并计算MT1=PRNG(TRÅSID||N||TR)ÅSID,MT2=PRNG((xÅTR)||N|| TR),发送第2次响应消息M2={N,MT1,MT2}到阅读器;Query代表查询消息;TR代表阅读器在某一时间的时间戳;||代表连接符号;PRNG代表伪随机数生成函数;SID代表标签当前的伪标识符;x代表标签当前的密钥,x的长度至少为1024位;Å代表异或符号;
步骤二:阅读器验证消息M2,如果验证成功,计算MR1=PRNG(TRÅSRID)ÅSRID,y’=y2mod n,MR2=PRNG(y’ÅTR),然后发送第3次响应消息M3={ MR1,MR2,MT1,TR,N}给云端;SRID代表阅读器当前的伪标识符;y代表阅读器当前的密钥,y的长度至少为1024位;n代表大整数,n = p×q; p和q代表两个大素数,每个大素数的长度至少为512位;mod代表除法运算后取余运算;
步骤三:云端验证消息M3,如果验证成功,发送第4次响应消息M4={ x’Åy’,TC }给阅读器;其中,x' = x2 mod n;TC代表云端当前时间;
步骤四:阅读器验证消息M4,如果验证成功,计算MT3,MT3=PRNG(x⊕N||TC||TR),并发送第5次响应消息M5={ MT3, TC }给标签;
步骤五:标签验证消息M5,计算M’T3=PRNG(x⊕N||TC||TR)并检查是否M’T3=MT3,如果相等,则标签成功地验证阅读器,认证阶段结束,准备进入更新阶段;
步骤六:标签计算SIDnew,xnew,AT1,B,并发送第6次响应消息M6={AT1,B }发送给阅读器;SIDnew代表标签的下一个伪标识符;xnew代表标签的下一个密钥;AT1代表标签加密信息,AT1=PRNG(SIDnew⊕TR);B代表标签验证信息,B=PRNG(AT1||TC);
步骤七:阅读器验证消息M6,如果验证成功,计算AT5,AT2,AR1,AR2,发送第7次响应消息M7={AT5,AT2,AR1,AR2}发送到云端;
阅读器接收到标签发送的消息M6后,计算B’=PRNG(AT1||TC),如果B=B’,计算xnew=PRNG(x⊕TC)⊕TC和x’new=x2newmod n,AR2=PRNG(TR||SRIDnew||N||TC)⊕SRIDnew⊕y’new,AT2=PRNG(TR⊕SRIDnew||N||TC)⊕x’new,AT5= PRNG(SIDnew⊕TR||AT2),AR1=PRNG(y’new⊕SRIDnew⊕TR||AR2);SRIDnew代表阅读器的下一个伪标识符;y’new代表ynew更新后的下一轮密钥;
步骤八:云端验证消息M7,如果验证成功,计算AT3,AR3,AT3=PRNG(SIDnew⊕N|| TR||TC)⊕PRNG(x’new⊕TR||N||TC),AR3=PRNG(y’new⊕SRIDnew⊕TR|| AT3);并将消息M8={AT3,AR3}发送到阅读器;其中,y’new= AR2⊕PRNG(TR||SRIDnew||N||TC)⊕SRIDnew;
步骤九:云端验证收到的消息M8,如果验证成功,计算AT4,AT4=AT3⊕PRNG(x’new⊕TR||N||TC),并将消息M9={AT4}发送给标签;
步骤十:标签验证收到的消息M9,如果验证成功,更新标签的索引数据表;
步骤十的具体内容为:标签接收到阅读器发送来的消息M9后,检查是否PRNG(SIDnew⊕N|| TR||TC)=AT4;如果相等,则意味着云端成功地更新标签索引数据表,SID←SIDnew,x’←x’new,更新阶段结束;
云端计算:AT3=PRNG(SIDnew⊕N|| TR||TC)⊕PRNG(x’new⊕TR||N||TC);
阅读器端计算:AT4=AT3⊕PRNG(x’new⊕TR||N||TC)
= PRNG(SIDnew⊕N|| TR||TC)
标签端使用PRNG函数和已知参数(SIDnew⊕N|| TR||TC)来计算,并且和接收的AT4值进行比较,如果相等,PRNG(SIDnew⊕N|| TR||TC)=AT4,则继续执行协议。