发明名称 基于椭圆曲线的射频识别双向认证方法
摘要 本发明提出一种基于椭圆曲线的射频识别双向认证方法,主要解决现有RFID认证中标签存储资源受限、计算复杂性过高且通信安全性不足的问题。其实现步骤是:(1)阅读器将身份信息发送给标签;(2)标签根据阅读器身份在预存数据中读取会话密钥kvz,并用其加密相关认证信息,将加密结果发送给阅读器;(3)阅读器用密钥值K解密相关认证信息,验证标签身份,并发送随机数和会话密钥给标签;(4)标签收到阅读器发来的信息后验证随机数的正确性,并发送中间值给阅读器;(5)阅读器利用中间值完成最后的认证过程。本方法实现了标签与阅读器的双向认证,降低了标签的计算量和占用资源,保证了通信安全性,能更好的适用于资源受限的RFID系统。
申请公布号 CN103699920A 申请公布日期 2014.04.02
申请号 CN201410016020.8 申请日期 2014.01.14
申请人 西安电子科技大学昆山创新研究院;西安电子科技大学 发明人 董庆宽;霍玮光;陈原;谭帅帅;方建平;童嘉庆
分类号 G06K17/00(2006.01)I;H04L9/32(2006.01)I;H04L9/30(2006.01)I 主分类号 G06K17/00(2006.01)I
代理机构 陕西电子工业专利中心 61205 代理人 王品华;朱红星
主权项 1.一种基于椭圆曲线的射频识别双向认证方法,包括如下步骤:(1)可信第三方在标签中生成预存有预存储对(r<sub>i</sub>,U<sub>i</sub>),阅读器身份信息<img file="FDA0000456847600000011.GIF" wi="125" he="75" />会话密钥k<sub>ij</sub>以及可信第三方与标签之间认证所需信息的存储表;(2)阅读器在访问标签之前,先选取80bit的随机数r<sub>z</sub>,再将其身份<img file="FDA0000456847600000012.GIF" wi="98" he="76" />与该随机数r<sub>z</sub>并在一起,形成复合字符串<img file="FDA00004568476000000113.GIF" wi="168" he="66" />发送给标签;(3)标签在预存储表中查找阅读器的身份<img file="FDA0000456847600000013.GIF" wi="118" he="70" />若没有查到,则拒绝阅读器访问,丢弃阅读器的访问请求;若能查到,则进行如下操作:(3a)在预存储表中任意选取一对存储数(r<sub>v</sub>,U<sub>v</sub>),并读取阅读器<img file="FDA0000456847600000014.GIF" wi="84" he="76" />与r<sub>v</sub>对应的哈希函数值k<sub>vz</sub>其中r<sub>v</sub>为预存储在标签中的随机数,U<sub>v</sub>为r<sub>v</sub>与椭圆曲线上基点P的乘积U<sub>v</sub>=r<sub>v</sub>P,k<sub>vz</sub>是身份为<img file="FDA0000456847600000016.GIF" wi="96" he="76" />的阅读器公钥<img file="FDA00004568476000000112.GIF" wi="72" he="66" />的r<sub>v</sub>次幂的哈希函数值,<img file="FDA0000456847600000017.GIF" wi="353" he="79" />H()表示哈希函数;(3b)标签随机选取48bit的随机数r′,并将该随机数r′与阅读器选取的随机数r<sub>z</sub>以及标签的证书CERT并在一起,复合成中间值CERT||r<sub>z</sub>||r′;再用哈希函数值k<sub>vz</sub>作为密钥对该中间值CERT||r<sub>z</sub>||r′进行加密,得到秘密值C,<img file="FDA0000456847600000018.GIF" wi="537" he="82" />其中<img file="FDA0000456847600000019.GIF" wi="138" he="76" />表示加密算法,括号内的CERT||r<sub>z</sub>||r′为加密算法的输入;(3c)将该秘密值C与随机数r<sub>v</sub>和椭圆曲线上基点P的乘积U<sub>v</sub>并在一起复合成字符串C||U<sub>v</sub>发送给阅读器;(4)阅读器首先计算密钥值<img file="FDA00004568476000000110.GIF" wi="440" he="77" />其中<img file="FDA00004568476000000111.GIF" wi="66" he="57" />是阅读器私钥;用密钥值K解密标签发过来的秘密值C,即先检验随机数r<sub>z</sub>的正确性,再验证证书CERT的正确性;如果均正确,则阅读器选择32bit随机数c,并将该随机数c与密钥值K并在一起再与标签选取的随机数r′进行异或操作,将得到的中间值C′=K⊕c||r′发送给标签;(5)标签收到中间值C′后解出随机数c和r′,如果随机数r′与其发给阅读器之前的不一致,则终止认证,否则,进行如下操作:(5a)标签计算中间值y=r<sub>v</sub>+cs<sub>T</sub>,s<sub>T</sub>为标签私钥,并将该中间值y与密钥值K进行异或得到待验证值C′′=K⊕y发送给阅读器;(5b)标签再将预存储表中的密钥值K=(k<sub>vz</sub>)置为0,表示已经使用过;(6)阅读器收到标签发过来的待验证值C′′后对标签完成最后认证:(6a)阅读器从待验证值C′′中解出中间值y,并计算中间值y与椭圆曲线上基点P的乘积yP;(6b)阅读器计算随机数c与标签公钥Q<sub>T</sub>的乘积cQ<sub>T</sub>,将该乘积cQ<sub>T</sub>与随机数r<sub>v</sub>和椭圆曲线上基点P的点乘结果U<sub>v</sub>相加得到待比较值U<sub>v</sub>+cQ<sub>T</sub>;(6c)验证乘积yP与待比较值U<sub>v</sub>+cQ<sub>T</sub>是否相等,若相等则认证通过,将双方使用密钥值K作为会话密钥;若不相等,则认证失败。
地址 215347 江苏省苏州市昆山市苇城南路1699号