基于标签id的rfid系统密钥生成方法及装置的制造方法

文档序号:9931086阅读:358来源:国知局
基于标签id的rfid系统密钥生成方法及装置的制造方法
【技术领域】
[0001 ]本发明涉及射频识别技术领域,特别涉及一种基于标签ID的RFID系统密钥生成方法及装置。
【背景技术】
[0002]在RFID系统中,标签根据自身的特点可以分为两类,一类是无源被动式标签,另一类是有源主动式标签。前者因为成本较低,再加之计算能力低和资源存储有限等原因,因此不能实现基于常规加密算法(例如RSA、DES等)的安全认证协议;同时因为标签是无源的,因此该类标签只能从读写器信号获得很少的能量进行信息传输,从而会导致此类标签能够响应所有提供能量的读写器访问。后者因为计算能力和资源存储等方面要优于前者,因此该类标签可以使用动态的验证密钥来提升系统的安全性;正是因为计算能力和存放空间的增大,而导致该类标签成本的急剧增加。其中在现实生活中,最常用的标签为无源被动式标签,正是因为此类标签可以使所有能够为其提供能量的读写器都可以访问的因素,使得该类RFID系统中存在严重的安全缺陷,攻击者可以伪装成合法的读写器为标签提供能量,从而窃取合法标签的相关信息和敏感的隐私。
[0003]现有的RFID系统中,标签与读写器之间的共享密钥,绝大多数都是事先设置好初始密钥值。针对此种情况,攻击者可以通过一些攻击手段来获得初始密钥值,从而更进一步获取其他隐私的信息,因此这种方式产生的密钥具有一定的安全缺陷。

【发明内容】

[0004]本发明的一个目的在于克服现有技术的缺点与不足,提供一种基于标签ID的RFID系统密钥生成方法,该方法解决了 RFID系统中标签与读写器之间共享密钥不用事先设置好的问题。
[0005]本发明的另一个目的在于提供一种基于标签ID的RFID系统密钥生成装置,该装置具有成本低、安全性高的优点。
[0006]本发明的目的通过以下的技术方案实现:一种基于标签ID的RFID系统密钥生成方法,该方法中读写器为一个标签生成一个共享密钥,包括步骤:
[0007](I)读写器向标签发送一个密钥生成请求命令;
[0008](2)标签在收到上述命令后,计算A=ID_Re ID_L,然后将A传给读写器;其中ID_R表示标识符后半部分值,ID_L表示标识符前半部分值,e表示异或运算;
[0009](3)读写器在接收到A后,通过自身存放的第i个标签的标识符前半部分值IDi_I^P第i个标签的标识符后半部分值IDi_R来计算IDi_R θ lDi_L,并将计算结果与接收到的A进行比对,若计算结果与接收到的A不相等,说明标签是伪造的,通信立刻终止,否则,读写器就产生一个长度为L位的随机数r,计算B= IDi_R e r和D = IDi_L ? r,并将B和D都传给标签;最后计算k=[IDi_L| IDi_R |r]L,将k作为标签与读写器之间共享的密钥;其中I |表示与运算,[表示取运算结果的前L位;
[0010](4)标签在收到读写器发送来的B和D以后,首先验证B Θ ID_R是否与De ID_L相等,若相等,说明读写器是合法的,标签接着计算k=[ID_L| |ID_R| |r]L,并将k作为标签与读写器之间共享的密钥;若不相等,说明读写器是伪造的,通信马上终止。
[0011]一种基于标签ID的RFID系统密钥生成装置,包括:
[0012]请求命令生成模块,用于控制读写器向标签发送一个密钥生成请求命令;
[0013]标签验证值生成模块,用于在标签收到上述命令后,计算A=ID_Re ID_L,然后将A传给读写器;其中ID_R表示标识符后半部分值,ID_L表示标识符前半部分值,e表示异或运算;
[0014]读写器验证模块,用于在读写器接收到A后,通过自身存放的第i个标签的标识符前半部分值IDi_L和第i个标签的标识符后半部分值IDi_R来计算IDi_R θ lDi_L,并将计算结果与接收到的A进行比对,若计算结果与接收到的A不相等,说明标签是伪造的,通信立刻终止,否则执行读写器标签密钥生成模块;
[0015]读写器密钥生成模块,用于产生一个长度为L位的随机数r,计算B=IDi_R^r和D=IDi_L e r,并将B和D都传给标签;最后计算k= [ IDi_L | | IDi_R | | r]L,将k作为标签与读写器之间共享的密钥;其中I I表示与运算,[表示取运算结果的前L位;
[0016]标签验证模块,用于在标签收到读写器发送来的B和D以后,验证Bθ ID_R是否与D?ID_L相等,若相等,执行标签密钥生成模块;否则,说明读写器是伪造的,通信马上终止;
[0017]标签密钥生成模块,用于计算k=[ID_L||ID_R| |r]L,并将k作为标签与读写器之间共享的密钥。
[0018]一种基于标签ID的RFID系统密钥生成方法,该方法中读写器为一批标签分别生成不同的共享密钥,包括步骤:
[0019](I)读写器向全组标签广播一个密钥生成请求命令;
[0020](2)标签Ti在收到上述命令后,计算M=ID_Re ID_L,然后将M传给读写器;其中ID_R表示标识符后半部分值,ID_L表示标识符前半部分值,e表示异或运算,i表示在这批标签中当前标签的编号;
[0021](3)读写器在收到M值之后,通过自身存放的第i个标签的标识符前半部分值IDi_L和第i个标签的标识符后半部分值IDi_R来计算IDi_R θ lDi_L,并判断计算结果与收到的M是否相等,若不相等,说明标签是伪造的,通信立刻终止;若相等,读写器就产生一个长度为L位的随机数r,计算N=IDi_R ? r和Q=IDi_L ? r,并将(N,Q,i)都传给标签,最后计算ki =[IDi_L IDi_R |r]L,将ki作为标签Ti与读写器之间共享的密钥,其中I I表示与运算,[]l表示取运算结果的前L位;
[0022](4)标签Ti在接收到读写器发送来的(N,Q,i)之后,执行下面步骤:
[0023](4-1)首先比对i是否与自身存放的相等,若不相等,标签就舍弃该消息;若相等,执行步骤(4_2);
[0024](4-2)分别计算N? ID_R、Q? ID_L,判断N? 10_1?是否等于Q? ID_L,若二者不相等,说明读写器是伪造的,通信立刻终止,若相等,说明读写器合法,执行步骤(4-3);
[0025](4-3)计算1^=[10_1^| ID_R Ir]L,并将k作为标签Ti与读写器之间共享的密钥。
[0026]一种基于标签ID的RFID系统密钥生成装置,包括:
[0027]请求命令生成模块,用于控制读写器向全组标签广播一个密钥生成请求命令;
[0028]标签验证值生成模块,用于在标签Ti收到上述命令后,计算M=ID_ReID_L,然后将M传给读写器;其中ID_R表示标识符后半部分值,ID_L表示标识符前半部分值,e表示异或运算,i表示在这批标签中当前标签的编号;
[0029]读写器验证模块,用于在读写器收到M值之后,通过自身存放的第i个标签的标识符前半部分值IDi_L和第i个标签的标识符后半部分值IDi_R来计算IDi_Re IDi_L,并判断计算结果与收到的M是否相等,若不相等,说明标签是伪造的,通信立刻终止;若相等,执行读写器标签密钥生成模块;
[0030]读写器密钥生成模块,用于产生一个长度为L位的随机数r,计算N=IDi_Rer和Q=IDi_L ? r,并将(N,Q,i)都传给标签,最后计算ki = [IDi_L | | IDi_R | | r]L,将ki作为标签Ti与读写器之间共享的密钥,其中I I表示与运算,[表示取运算结果的前L位;
[0031 ]标签第一验证模块,用于在标签Ti接收到读写器发送来的(N,Q,i)之后,比对i是否与自身存放的相等,若不相等,标签就舍弃该消息;若相等,执行标签第二验证模块;
[0032]标签第二验证模块,用于计算N? ID_R、Q? ID_L,判断N? 10_1?是否等于Q? ID_L,若二者不相等,说明读写器是伪造的,通信立刻终止,若相等,说明读写器合法,执行标签密钥生成模块;
[0033]标签密钥生成模块,用于计算k=[ID_L|ID_R |r]L,并将k作为标签Ti与读写器之间共享的密钥。
[0034]一种基于标签ID的RFID系统密钥生成方法,该方法中读写器为一组标签生成一个共同的组密钥,包括步骤:
[0035](I)读写器首先向全组标签广播一个密钥生成请求命令,用来告知所有标签开始进行群组密钥生成;
[0036](2)组内标签收到该命令后,标签Ti将自身存放的IDi_R&送给读写器;
[0037](3)读写器在收到标签的回复之后,逐一对比收到的IDi_lU^自身储存的信息是否完全一致,若不完全一致,说明有标签没有响应此次命令,此时读写器将再次发送密钥生成请求命令;若完全一致,说明组内所有标签均已应答,开始进行密钥生成,
[0038](4)读写器开始计算k=IDl_L? ID2_L?.
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1