发明名称 一种RFID双向认证协议方法
摘要 本发明涉及一种RFID双向认证协议方法,包括以下三个阶段:标签识别阶段,阅读器向标签发出请求,标签收到后,向阅读器返回假名<i>IDS</i>;双向认证阶段,阅读器识别<i>IDS</i>后,作相关于字合成运算的异或运算得到<i>A</i>、<i>B</i>并发送至标签,标签通过接收的<i>A</i>||<i>B</i>认证阅读器后,作相关计算得到<i>C</i>并发送给阅读器,阅读器对标签进行认证;更新阶段,阅读器验证<i>C</i>成功后,即更新其内部假名<i>IDS</i>和密钥<i>K</i><sub>1</sub>、<i>K</i><sub>2</sub>,随后计算<i>D</i><i>、</i><i>E</i>,并发送至标签,标签验证<i>E</i>通过后,更新其假名和密钥。本发明只存在简单的字合成及异或运算。由此产生这样的有益效果:能够有效降低标签的计算量和存储空间,并可抵抗假冒、重传、跟踪和拒绝服务等多种攻击,提供前向安全性。
申请公布号 CN103078741B 申请公布日期 2016.04.20
申请号 CN201310004394.3 申请日期 2013.01.07
申请人 南通大学 发明人 章国安;杜宗印;袁红林;包志华;徐晨;季彦呈;邱恭安
分类号 H04L9/32(2006.01)I;G06K17/00(2006.01)I 主分类号 H04L9/32(2006.01)I
代理机构 南京汇盛专利商标事务所(普通合伙) 32238 代理人 吴静安
主权项 一种RFID双向认证协议方法,包括标签识别阶段、双向认证阶段和标签假名与密钥更新阶段,其特征在于:所述认证阶段:阅读器识别由标签发送的假名IDS后,生成随机数N<sub>1</sub>,该随机数N<sub>1</sub>与所述标签假名IDS对应的密钥K<sub>1</sub>、K<sub>2</sub>进行不同设定的相关于字合成运算的异或运算,分别得到A、B,并发送A||B至标签;标签根据A||B,获取所述随机数N<sub>1</sub>,用N<sub>1</sub>与密钥K<sub>1</sub>、K<sub>2</sub>进行设定的相关于字合成运算的异或运算得到B’,若B’≠B,标签认证阅读器失败,协议终止,若B’=B,则认证阅读器成功,对密钥K<sub>1</sub>、K<sub>2</sub>与随机数N<sub>1</sub>作设定的相关于字合成运算的异或运算,得到C,并将C返回给阅读器,所述相关于字合成运算Syn(X,Y)定义为:具有L位的X、Y两二进制数组进行由Y的后M位与X的前L‑M位的合成运算;所述M设定为Y的汉明重量Hw(Y),或X的汉明重量Hw(X),或X与Y的汉明距离Hd(X,Y),所述得到A、B的相关于字合成运算的异或运算为:<math><![CDATA[<mrow><mi>A</mi><mo>=</mo><mi>S</mi><mi>y</mi><mi>n</mi><mrow><mo>(</mo><msub><mi>K</mi><mn>1</mn></msub><mo>,</mo><msub><mi>K</mi><mn>2</mn></msub><mo>)</mo></mrow><mo>&CirclePlus;</mo><msub><mi>N</mi><mn>1</mn></msub><mo>;</mo></mrow>]]></math><img file="FDA0000842452090000011.GIF" wi="430" he="71" /></maths><math><![CDATA[<mrow><mi>B</mi><mo>=</mo><mi>S</mi><mi>y</mi><mi>n</mi><mrow><mo>(</mo><msub><mi>K</mi><mn>1</mn></msub><mo>&CirclePlus;</mo><msub><mi>K</mi><mn>2</mn></msub><mo>,</mo><msub><mi>N</mi><mn>1</mn></msub><mo>)</mo></mrow><mo>&CirclePlus;</mo><mi>S</mi><mi>y</mi><mi>n</mi><mrow><mo>(</mo><msub><mi>K</mi><mn>2</mn></msub><mo>,</mo><msub><mi>K</mi><mn>1</mn></msub><mo>)</mo></mrow><mo>:</mo><msup><mi>B</mi><mo>,</mo></msup><mo>=</mo><mi>S</mi><mi>y</mi><mi>n</mi><mrow><mo>(</mo><msub><mi>K</mi><mn>1</mn></msub><mo>&CirclePlus;</mo><msub><mi>K</mi><mn>2</mn></msub><mo>,</mo><msub><mi>N</mi><mn>1</mn></msub><mo>)</mo></mrow><mo>&CirclePlus;</mo><mi>S</mi><mi>y</mi><mi>n</mi><mrow><mo>(</mo><msub><mi>K</mi><mn>2</mn></msub><mo>,</mo><msub><mi>K</mi><mn>1</mn></msub><mo>)</mo></mrow><mo>;</mo></mrow>]]></math><img file="FDA0000842452090000012.GIF" wi="1428" he="75" /></maths>阅读器接收到C后,使用自身存储的密钥K<sub>1</sub>、K<sub>2</sub>和随机数N<sub>1</sub>,进行相同于C的所述运算,获得C’,若C’≠C,阅读器认证标签失败,协议终止,若C’=C,则认证标签成功;所述更新阶段:阅读器成功认证标签后,生成随机数N<sub>2</sub>并对标签假名IDS和密钥K<sub>1</sub>、K<sub>2</sub>进行更新,若更新后的标签假名IDS与数据库中一个标签假名IDS相同,则重新生成随机数N<sub>2</sub>并进行对应的IDS和密钥K<sub>1</sub>、K<sub>2</sub>更新,直到数据库中原存储的各IDS不相同为止;阅读器用随机数N<sub>1</sub>、N<sub>2</sub>与更新前的密钥K<sub>1</sub>、K<sub>2</sub>进行不同设定的相关于字合成运算的异或运算,分别得到D、E,并发送D||E至标签;标签接收所述D||E信号并从中获取随机数N<sub>2</sub>,用N<sub>1</sub>、N<sub>2</sub>进行相同于E的运算得到E’,若E’≠E,标签内不进行更新,若E’=E,则对标签假名IDS和密钥K<sub>1</sub>、K<sub>2</sub>进行更新,丢弃原来使用的假名和密钥。
地址 226019 江苏省南通市啬园路9号南通大学电子信息学院