发明名称 一种基于分级密钥的RFID询问-应答安全认证方法
摘要 本发明涉及一种基于分级密钥的RFID询问-应答安全认证方法。本发明提出的认证方法引入分级密钥机制,不仅能够有效解决RFID系统前向空中接口和后向通信链路的数据安全问题,而且实现了不同用户之间的访问权限控制,能够有效抵抗典型的主动和被动攻击,满足了系统的安全和隐私保护要求。同时,本协议将复杂的加密、解密和验证运算主要交由后台数据库和读写器完成,降低了标签的计算负载和存储负载,节约了标签的成本和功耗,提高了系统的安全性,适合于系统资源受限且要求高安全性和隐私鉴权保护的RFID应用场景。
申请公布号 CN101882197B 申请公布日期 2012.07.04
申请号 CN201010195382.X 申请日期 2010.05.31
申请人 北京航空航天大学 发明人 宁焕生;刘虹
分类号 G06K7/00(2006.01)I;G06K17/00(2006.01)I 主分类号 G06K7/00(2006.01)I
代理机构 北京慧泉知识产权代理有限公司 11232 代理人 王顺荣;唐爱华
主权项 1.一种基于分级密钥的RFID询问-应答安全认证方法,其特征在于:在RFID系统中,有M个读写器R<sub>i</sub>,其中i=1,2,...,M;N个标签T<sub>j</sub>,其中j=1,2,...,N;和后台数据库DB,将所有的读写器划分为三个访问权限等级,在不同权限的读写器和标签之间分别具有指定的认证密钥K<sub>*,j</sub>用于读写器根据权限等级授权访问标签中部分或全部数据信息;标签通过预设的密钥标识符<img file="FSB00000745348300011.GIF" wi="82" he="72" />对认证密钥K<sub>*,j</sub>进行权限鉴定;在所有读写器和数据库之间具有唯一的共享密钥K<sub>u</sub>;RFID系统初始化时,在标签Tj的内存中存储所有密钥标识符<img file="FSB00000745348300012.GIF" wi="82" he="74" />,其中包括<img file="FSB00000745348300013.GIF" wi="322" he="82" />所有认证密钥K<sub>*,j</sub>,其中包括K<sub>1,j</sub>,K<sub>2,j</sub>,K<sub>3,j</sub>;以及不同认证密钥所对应的标签部分或全部数据信息<img file="FSB00000745348300014.GIF" wi="121" he="83" />其中包括<img file="FSB00000745348300015.GIF" wi="370" he="79" />在读写器R<sub>i</sub>的内存中存储特定密钥标识符<img file="FSB00000745348300016.GIF" wi="112" he="78" /><img file="FSB00000745348300017.GIF" wi="89" he="74" />或<img file="FSB00000745348300018.GIF" wi="121" he="78" />特定认证密钥K<sub>1,j</sub>,K<sub>2,j</sub>或K<sub>3,j</sub>、共享密钥K<sub>u</sub>和读写器数据信息<img file="FSB00000745348300019.GIF" wi="119" he="66" />在数据库中存储所有标签和读写器的数据信息<img file="FSB000007453483000110.GIF" wi="93" he="83" />和<img file="FSB000007453483000111.GIF" wi="124" he="69" />认证密钥K<sub>*,j</sub>和共享密钥K<sub>u</sub>;RFID系统的通信认证协议步骤如下:(1)R<sub>i</sub>→T<sub>j</sub>:读写器R<sub>i</sub>首先产生随机数r<sub>R</sub>,并通过自己的认证密钥K<sub>*,j</sub>加密<img file="FSB000007453483000112.GIF" wi="93" he="68" />得到密文<img file="FSB000007453483000113.GIF" wi="230" he="103" />然后将<img file="FSB000007453483000114.GIF" wi="228" he="105" />r<sub>R,</sub><img file="FSB000007453483000115.GIF" wi="86" he="72" />作为询问请求发送给标签T<sub>j</sub>;(2)T<sub>j</sub>→R<sub>i</sub>:标签T<sub>j</sub>收到请求后,首先通过鉴定密钥等级标识符<img file="FSB000007453483000116.GIF" wi="84" he="80" />判断读写器的权限等级,将<img file="FSB000007453483000117.GIF" wi="86" he="71" />作为索引指向认证密钥K<sub>*,j</sub>的具体形式,其中包括K<sub>1,j</sub>,K<sub>2,j</sub>或K<sub>3,j</sub>,进而读取相应的标签部分或全部信息<img file="FSB000007453483000118.GIF" wi="124" he="79" />其中包括<img file="FSB000007453483000119.GIF" wi="254" he="86" />或<img file="FSB000007453483000120.GIF" wi="119" he="89" />然后对密文<img file="FSB000007453483000121.GIF" wi="200" he="105" />进行解密得到<img file="FSB000007453483000122.GIF" wi="121" he="66" />最后通过生成的随机数r<sub>T</sub>计算<img file="FSB000007453483000123.GIF" wi="455" he="114" />将<img file="FSB000007453483000124.GIF" wi="421" he="115" />和r<sub>T</sub>作为应答发送给读写器R<sub>i</sub>;(3)R<sub>i</sub>→DB:读写器R<sub>i</sub>收到标签的应答后,将<img file="FSB000007453483000125.GIF" wi="422" he="117" />进行异或逆运算得到<img file="FSB00000745348300021.GIF" wi="291" he="115" />同时计算<img file="FSB00000745348300022.GIF" wi="279" he="89" />将<img file="FSB00000745348300023.GIF" wi="289" he="115" />r<sub>T</sub>,<img file="FSB00000745348300024.GIF" wi="283" he="89" />r<sub>R</sub>发送给后台数据库DB进行身份验证;(4)DB:数据库DB将存储的<img file="FSB00000745348300025.GIF" wi="94" he="79" />和接收的r<sub>T</sub>进行Hash运算得到<img file="FSB00000745348300026.GIF" wi="287" he="115" />存储的<img file="FSB00000745348300027.GIF" wi="95" he="66" />和接收的r<sub>R</sub>进行Ha sh运算得到<img file="FSB00000745348300028.GIF" wi="281" he="88" />通过比较计算值是否等于接收值来验证标签和读写器身份的合法性和有效性;如果成立,认证继续,否则,认证中止并返回错误信息;(5)DB→R<sub>i</sub>:数据库通过共享密钥K<sub>u</sub>将标签信息<img file="FSB00000745348300029.GIF" wi="95" he="80" />加密成<img file="FSB000007453483000210.GIF" wi="185" he="126" />发送给读写器;(6)R<sub>i</sub>:读写器通过使用共享密钥K<sub>u</sub>解密密文,可以得到其访问权限指定的标签部分或全部信息;在上述安全认证协议中涉及到的变量、定义以及运算符号分别说明如下:R<sub>i</sub>:第i个读写器,i=1,2,...,MT<sub>j</sub>:第j个标签,j=1,2,...,NDB:后台数据库<img file="FSB000007453483000211.GIF" wi="118" he="87" />通用密钥等级标识符K<sub>u</sub>:读写器和数据库之间的共享密钥K<sub>*,j</sub>:读写器与标签Tj对应的认证密钥,包括K<sub>1,j</sub>,K<sub>2,j</sub>,K<sub>3,j</sub><img file="FSB000007453483000212.GIF" wi="119" he="66" />读写器R<sub>i</sub>的信息<img file="FSB000007453483000213.GIF" wi="119" he="79" />标签T<sub>j</sub>的信息,包括<img file="FSB000007453483000214.GIF" wi="340" he="81" /><img file="FSB000007453483000215.GIF" wi="361" he="67" />是不同权限的密钥等级标识符K<sub>1,j</sub>,K<sub>2,j</sub>,K<sub>3,j</sub>:是不同权限的读写器与标签T<sub>j</sub>对应的认证密钥<img file="FSB000007453483000216.GIF" wi="412" he="84" />是不同认证密钥K<sub>1,j</sub>,K<sub>2,j</sub>,K<sub>3,j</sub>对应的读写器能够访问的标签T<sub>i</sub>的部分或全部信息r<sub>R</sub>:读写器生成的1 6位随机数r<sub>T</sub>:标签生成的1 6位随机数{·}<sub>K</sub>:用密钥K进行加密运算H(·):单向Hash函数运算||:级联运算<img file="FSB00000745348300031.GIF" wi="65" he="43" />异或运算。
地址 100191 北京市海淀区学院路37号北航电子信息工程学院