1.一种基于椭圆曲线密码的RFID系统双向安全认证方法,其特征是按以下步骤执行:
(S1)RFID系统初始化:RFID系统生成有限域Fq上的椭圆曲线系统参数<q,a,b,G,n,h>;其中q为一个大素数,G为椭圆曲线的基点,n为椭圆曲线的阶,h为余因子,a,b均在有限域GF(p)中,p是一个大素数;
读写器选择一个随机数RS作为其私钥,然后产生其公钥RP=RS·G;在系统的后端数据库中为每个标签分配唯一标识码ID,且保存读写器的公私钥对(RS,RP),标签内部也保存其ID和读写器的公钥RP;
(S2)读写器→标签:首先读写器在椭圆群Fq(a,b)中随机选择一点RR,然后将RR和查询命令Query发送给标签作为认证请求;
(S3)标签→读写器:当标签收到读写器的认证请求时,标签生成一个随机数rT,并计算点RT=rT·G,依据读写器的公钥RP,标签计算密钥KT=rT·RP=(xt,yt),(xt,yt)作为椭圆曲线的坐标,然后计算RFID标签ID值的加密消息C=ID·xt+yt,并将{RT,C}发给读写器作为应答消息;
(S4)读写器→后端数据库:当读写器收到消息后,将{RT,C,RR}发送给后端数据库;后端数据库根据收到的消息对标签进行合法性认证:根据读写器的私钥RS计算密钥KR=RS·RT=RS·rT·G=rT·RP=KT=(xt,yt),再由xt和yt可对加密消息C进行解密,得到标签唯一标识码ID=xt-1(C-yt),然后检索后端数据库中的ID索引表,检查后端数据库中是否存在ID′满足ID′=ID,如果不满足,则标签非法,终止认证;反之,则标签通过认证;
(S5)后端数据库→读写器:当标签认证成功后,使用点RR和RT的x坐标xR和xT,后端数据库中保存的标签身份标识码ID′,计算两个哈希值M1=H(xT||ID′)和M2=H(xR||ID),然后将一元组 发送给读写器;
(S6)读写器→标签:读写器收到消息后,将 转发给标签;标签根据自身唯一标识码ID与点RR的x坐标xR计算 可以得到M1,然后再结合点RT的x坐标xT可得到M′1=H(xT||ID),并验证M1=M′1是否成立;若不成立,则读写器认证失败,判定读写器为非法;反之,读写器通过了标签的验证,读写器认证成功。