发明名称 椭圆曲线上轻量级的RFID相互认证方法
摘要 本发明提供一种椭圆曲线上轻量级的RFID相互认证方法。本发明基于椭圆曲线上离散对数困难问题,该算法在相同的安全强度条件下,具有更短的密钥长度,而且运算速度快,存储空间小。考虑到标签的运算能力弱,认证过程中的运算仅涉及生成随机数、Hash运算、点乘、加法以及异或。本发明保护了标签的身份信息,并且实现了标签和服务器的相互认证,达到了一定的安全和隐私要求。
申请公布号 CN104363097A 申请公布日期 2015.02.18
申请号 CN201410650371.4 申请日期 2014.11.14
申请人 电子科技大学 发明人 许春香;金春花;张晓均
分类号 H04L9/32(2006.01)I;H04L29/06(2006.01)I 主分类号 H04L9/32(2006.01)I
代理机构 电子科技大学专利中心 51203 代理人 邹裕蓉
主权项 椭圆曲线上轻量级的RFID相互认证方法,其特征在于,包括以下步骤:1)服务器预处理步骤:服务器选择q,n两个大素数,两个哈希函数H<sub>1</sub>与H<sub>2</sub>,一个n阶生成元P;服务器确定椭圆曲线E为y<sup>2</sup>=x<sup>3</sup>+ax+b,其中椭圆曲线常数a,b∈Z<sub>q</sub>,Z<sub>q</sub>为长度为q的有限域;服务器产生随机数<img file="FDA0000607837830000011.GIF" wi="178" he="98" />作为其私钥,并计算其公钥P<sub>S</sub>=x<sub>S</sub>P,生成其公私钥对(P<sub>S</sub>,x<sub>S</sub>),<img file="FDA0000607837830000012.GIF" wi="64" he="77" />为大素数n的整数模的乘法群;服务器为每个标签选择身份信息X<sub>T</sub>,X<sub>T</sub>为0、1字符串,将身份信息X<sub>T</sub>作为秘密值存储在服务器中,同时存储到对应标签的内存中;2)相互认证步骤:2‑1)服务器选择一个随机数<img file="FDA0000607837830000013.GIF" wi="171" he="75" />计算挑战信息R<sub>1</sub>=r<sub>1</sub>P发送给标签T<sub>i</sub>;2‑2)标签T<sub>i</sub>选择随机数<img file="FDA0000607837830000014.GIF" wi="170" he="77" />计算中间数R<sub>2</sub>=r<sub>2</sub>P,利用服务器公钥计算中间数TK<sub>T</sub>=r<sub>2</sub>P<sub>S</sub>,再将挑战信息R<sub>1</sub>与中间数TK<sub>T</sub>作为哈希函数H<sub>1</sub>的输入,将标签身份信息X<sub>T</sub>与哈希函数H<sub>1</sub>的输出值进行异或得到结果<img file="FDA0000607837830000015.GIF" wi="696" he="84" />最后把响应数据(Auth<sub>T</sub>,R<sub>2</sub>)返回给服务器;2‑3)服务器收到响应数据(Auth<sub>T</sub>,R<sub>2</sub>)后,首先利用服务器私钥计算中间数TK<sub>s</sub>=x<sub>S</sub>R<sub>1</sub>,将本地生成的挑战信息R<sub>1</sub>与中间数TK<sub>s</sub>输入哈希函数H<sub>1</sub>,将响应数据中的数据Auth<sub>T</sub>与哈希函数H<sub>1</sub>的输出值进行异或得到的结果作为标签身份信息X′<sub>T</sub>,<img file="FDA0000607837830000016.GIF" wi="698" he="88" />服务器在它自己的数据库中查找X′<sub>T</sub>,若查找到标签身份信息X′<sub>T</sub>,则视为合法标签,并将挑战信息R<sub>1</sub>、标签身份信息X′<sub>T</sub>、中间数R<sub>2</sub>输入哈希函数H<sub>2</sub>得到哈希函数值e=H<sub>2</sub>(R<sub>1</sub>,X′<sub>T</sub>,R<sub>2</sub>),再利用服务器私钥x<sub>S</sub>与哈希函数值e相乘,得到响应值s≡s<sub>R</sub>e+r<sub>1</sub>modn,并将响应值s发送给标签T<sub>i</sub>;2‑4)标签T<sub>i</sub>收到响应值s后,首先将接收到的挑战信息R<sub>1</sub>、本地的标签身份信息X<sub>T</sub>、本地产生的中间数R<sub>2</sub>输入哈希函数H<sub>2</sub>得到哈希函数值e′=H<sub>2</sub>(R<sub>1</sub>,X<sub>T</sub>,R<sub>2</sub>),再验证sP≡e′P<sub>S</sub>+R<sub>1</sub>modn是否成立,若成立,则为合法的服务器,否则为非法服务器。
地址 611731 四川省成都市高新区(西区)西源大道2006号