基于轻量级函数集的rfid标签与后端数据库的认证方法

文档序号:6648936阅读:198来源:国知局
基于轻量级函数集的rfid标签与后端数据库的认证方法
【专利摘要】本发明提出一种基于轻量级函数集的RFID系统中标签与后端数据库的认证方法,标签和后端数据库拥有同一个轻量级函数集。轻量级函数集中含有互不相同的若干个轻量级函数,在每次执行协议时,通信双方根据密钥、函数选取密钥和随机数的值从轻量级函数集中选择此次协议执行时所使用的轻量级函数,使每次进行认证所采用的密码算法都不相同。攻击者并不知道密钥和函数选取密钥的值,即使攻击者监听了标签与后端数据库的全部通信,也难以提高破解出秘密值的概率,具有更好的安全性;同时标签具有更少的计算时间消耗;用户也可以根据实际需要向轻量级函数集中添加满足一定条件新的函数,具有较好的可扩展性。
【专利说明】基于轻量级函数集的RFID标签与后端数据库的认证方法

【技术领域】
[0001] 本发明设及信息安全中标签和后端数据库认证的【技术领域】,具体设及一种基于轻 量级函数集的RFID标签与后端数据库的认证方法。

【背景技术】
[0002] 无线射频识别(Radio Rrequen巧Identification, RFID)系统使用无线射频技术 进行对象识别,其优点主要包括;无需物理接触或其它任何可见的接触、读取速度快、存储 空间大、工作距离远、穿透性强和可重复使用等。RFID常用于物流管理、生产制造与过程控 审IJ、口禁系统管理和交通管理等领域。该技术在为生产生活带来方便性的同时,也引起了用 户对信息安全和隐私保护方面的关注。
[0003] RFID系统通常由标签、读写器和后端数据库组成。标签中存储有标签所附物品的 信息,读写器负责在标签和后端数据库之间传送消息,后端数据库提供各种服务,例如身份 认证等。由于标签的计算资源非常有限,难W执行计算量大的密码算法,通常认为标签与读 写器之间的通信信道是不安全的;而读写器与后端数据库具有充足的计算资源,可W采用 多种技术保护通信的安全性,因此认为读写器与后端数据库之间的通信信道是安全的。
[0004] 为了保护标签与读写器之间通信的安全性,二者通常要执行认证协议,确定通信 双方的身份。现存的标签与读写器之间的认证协议大多采用固定的算法。协议在执行时, 执行同一个流程,无论协议执行多少次,每一次执行都采用相同的算法进行认证。标签与后 端数据库之间的认证协议通常采用确定的算法,该样会引起两方面的问题:
[0005] (1)协议执行效率较低。为了保护通信的安全性,标签与读写器大多使用计算过程 复杂的安全算法,如化sh算法等。每次认证时,标签需要执行多次化sh计算,计算量较大。 如果能采用计算量更小的算法,降低标签的计算量,可W提高协议的执行效率。
[0006] (2)多次重复使用同一个密钥,可能会提高攻击者破解出密钥的概率。每次进行认 证时,都需要使用标签与后端数据库共享的密钥值。在多次认证后,如果攻击者监听了标签 与读写器之间的通信,则会提高从监听的消息中破解出密钥值的概率。


【发明内容】

[0007] 本发明要解决的技术问题是提供一种基于轻量级函数集的RFID标签与后端数据 库的认证方法,其计算量小,且安全性明显提高。
[000引本发明的技术方案是:一种基于轻量级函数集的RFID标签与后端数据库的认证 方法,标签和后端数据库拥有同一个轻量级函数集F= ……,fi,……,f。},其步骤 如下:
[0009] 1)后端数据库向读写器发送{tdc,query};其中,rDc为后端数据库生成的随机数, query为后端数据库生成的查询请求;
[0010] 2)读写器将收到的后端数据库发送的消息转发给标签;
[0011] 如标签收到查询请求后,生成随机数町,将rDB? r T? kps的计算结果作 为inputl,并根据inputl的值从轻量级函数集F中选取函数,设为f。;标签计算f。柏叫了, khJ,发送{Tdb,町,fa柄8,町,khJ }给读写器;其中,表示进行此次认证而设置的新 密钥,kps为标签与后端数据库共享的函数选取密钥;
[0012] 4)读写器将标签发送的消息转发给后端数据库;
[0013] 5)若后端数据库长时间没有收到读写器转发的标签的响应,则重新执行协议;若 后端数据库收到读写器发来的消息,捜索是否存在二元组kps)或kps)满 足:用 kDB-old或 k DB-new代替 k T-new,计算 i吨Utr = Tdb 出 r T 出 k 册-oid 出 k FS或 i吨Utr = Tdb出Tt出koB-new出kps,根据i吨Utr的值从轻量级函数集F中选取出函数fa,,计算出 fa' (rDB,印ki-nJ的值,与收到的fa(rDB,印ki-nJ相同;若存在二元组0%-。1<1,kps),保 持不变,协议继续进行;若不存在二元组化DB_old,kps),但存在二元组kps), 将kDB-。?的值赋值给kDB-Dld,协议继续进行诺不存在二元组(kDB-Dld,kps)和(kDB_。。,,kps),则 协议终止;将inputr的值向左循环移位作为inputs,将inputs的值向左循环移位作为 inputs,后端数据库根据inputs和inpu口的值从轻量级函数集F中选择函数fb和f。,并 生成新的认证酱钥 kDB_ne,;计算 f b(rDB,印 kDB_〇ld) ? kDB_ne,和 f。(与8,印 kDB_〇ld,kDB_ne,),发送 {与8,町,fb(rDB,町,knE-old)出 knE-new, fc(rDB,町,knE-old, knB-new)}给扭与器;
[0014] 6)读写器转发后端数据库的消息给标签;
[00巧]7)标签收到后端数据库发来的消息后,用自己存储的密钥代替k De_"id,将 inputl的值向左循环移位作为inputs',将inputs'的值向左循环移位作为inputs',标签 根据i吨ut2'和i吨ut3'的值从轻量级函数集F中选取函数fb'和f。',计算出fb'(与13,印 koB-old)和k,DB-new,并分别用自己存储的密钥ki-new和计算出的k,DB-new代替k册-old和k册-new,计 算(与8,町,knE-oid, knE-new),检查该计算结果与收到的feboB,町,knE-oid, knE-new)疋否相專; 若不相等,则协议终止;若相等,通过对后端数据库的认证,并将khe,的值赋值给k T_?id,将 1%_。?的值赋值给khe,;将i吨Ut3'的值向左循环移位作为i吨ut4,标签根据i吨ut4的值 从轻量级函数集F中选取函数fd,计算fdOcB,町,kT_aid,ki_nJ,发送{TdB,町,fd Odb,町,kT_aid, 心。?)}给读与器;
[0016] 8)读写器转发标签的消息给后端数据库;
[0017] 9)若后端数据库长时间没有收到标签的响应,则重新执行协议;若后端数据库收 到标签发来的消息,则用和kDe_。?分别代替kT_"u和kT_。?;将inpu口的值向左循环移 位作为i吨Ut4',标签根据i吨ut4'的值从轻量级函数集F中选取函数f/,检验f/ (rDB,印 心1<1,ki_。?)与收到的fdCrDB,Tt,kT_aid,khJ是否相等;若不相等,则协议终止;若相等,则 标签已经确认了后端数据库的身份,获取了正确的并且ki_aid= kDe_aU,kT_"e,= kDB_。。,, 可W进行后续通信。
[001引所述根据input的值从轻量级函数集F中选取函数的方法是:若轻量级函数集F 中有n个函数,则从i吨ut中选取的比特位的长度/(w=[log;];从右至左,input中的比特 依次为第1位,第2位,第3位,……,第ext位;从第1位开始,input中的第h化二1, 2, ......,ext)位若为1,则选取i吨ut的第(ext-h+1)位的值按照从右至左的顺序依次放 入变量result中,直至选取的input的值达到len比特;将轻量级函数集F中的每一个函 数进行编号,选择编号与result的值一致的轻量级函数。
[0019] 若result的值不同于轻量级函数集F中任何一个函数的编号时,将input的值 向左循环移位1个比特,再次选取result ;若result的值仍然不同于轻量级函数集F中任 何一个函数的编号,则对input进行向左循环移位2个比特,直至选取到了适当的函数;若 input向左循环移位一圈后,result的值一直不同于轻量级函数集F中任何一个函数的编 号,则选取轻量级函数集F中上一次所选函数的下一个函数。
[0020] 所述轻量级函数集F中函数的个数不少于16个。
[0021] 所述轻量级函数集F=化,f2,……fi,……,f。}中任一轻量级函数至少应 满足W下条件:
[0022] 输入可W是任意长度的信息;
[0023] 同样的输入得到同样的输出信息;
[0024] 不同的输入得到的输出也是不同的;
[0025] 在输入信息量相同的情况下,轻量级函数的计算量不高于对称密钥密码算法;
[0026] 函数的输入中包含至少一个只有通信双方知道的秘密值;
[0027] 即使获取了函数的输出信息,在不知道秘密值的情况下,要得到输入信息在计算 上是不可行的;
[002引不同的函数之间没有线性关系或其他简单的关系。
[0029] 所述轻量级函数f。、fb、f。、fd互不相同,其实现方法为;将选取前一个轻量级函数 fw的input (i-1)的值向左循环移位1比特作为input (i),然后根据选取规则从轻量级函 数集F中进行选取;若所选取的函数与前面选取的函数一样,则将input (i-1)的值向左循 环移位2比特作为input (i),再次进行选取,直至选取了不同的函数。若input (i-1)的值 向左循环移位一圈后仍然无法选取不同的函数进行计算,则选取fy在轻量级函数集F中 的下一个函数作为fi,且input (i)的值为input (i-1)向左循环移位1比特。
[0030] 所述的随机数、密钥和函数选取密钥的长度不低于128比特,且满足下列条件: (1)不能所有比特均为0或1,且0和1出现的概率应相等或接近;(2)每个比特的值为0或 1的概率应该是相等的。
[0031] 本发明的有益效果包括:
[0032] 1)更好的安全性
[0033] 标签与后端数据库之间的认证协议通常采用确定的算法,协议在执行时,执行同 一个流程,每一次执行都采用相同的算法,攻击者通过监听协议的多次执行过程,可W提高 破解出标签与后端数据库共享的秘密值的概率。本发明使用了轻量级函数集,在每次执行 协议时,通信双方根据密钥、函数选取密钥和随机数的值从轻量级函数集中选择此次协议 执行时所使用的算法,每次进行认证所采用的算法都不相同,而攻击者并不知道密钥和函 数选取密钥的值,无法确定每次进行认证时所用的算法。因此,即使攻击者监听了标签与后 端数据库的全部通信,也难W提高破解出秘密值的概率。
[0034] 虽然轻量级函数集中每个函数的安全强度可能会有所不同,但由于标签和后端数 据库在每次进行计算时所采用的函数都不相同,攻击者无法连续获取同一个函数的输出信 息,其所监听到的标签与后端数据库每次的通信内容是经由不同函数计算后得到的输出, 无法用于提高破解秘密值的概率。因此,本发明所提出的技术方案具有更好的安全性。
[0035] 2)更少的标签计算时间消耗
[0036] 标签具有的计算资源非常有限,执行复杂的计算时会消耗较多的时间,而后端数 据库拥有充足的计算资源,能在很短的时间内完成复杂的计算。因此,降低标签的计算时间 消耗对于提高协议的执行效率非常重要。
[0037] 传统的标签与后端数据库之间的认证协议无论什么时候执行该协议,都需要执行 相同的算法。假设标签执行该协议需要的计算时间是sec秒,那么执行amo次该协议标签 需要耗时(secXamo)秒。本发明的技术方案采用了轻量级函数集,每次执行认证协议时, 标签需要从该函数集中选择函数参与协议的执行。假设该函数集中共有qua个函数,则每 个函数在每一次随机选取函数的过程中被选中的概率为1/qua。若标签执行函数集中每个 函数所需的时间分别为sec。sec2,…,seCj,…,sec。。。,则标签执行随机从函数集中选择的 函数的平均时间为

【权利要求】
1. 一种基于轻量级函数集的RFID标签与后端数据库的认证方法,其特征在于:标签和 后端数据库拥有同一个轻量级函数集F= {f\,f2,……,4,……,fn},其步骤如下: 1) 后端数据库向读写器发送{rDB,query};其中,rDB为后端数据库生成的随机数,query 为后端数据库生成的查询请求; 2) 读写器将收到的后端数据库发送的消息转发给标签; 3) 标签收到查询请求后,生成随机数rT,将;rDB?rT?kT_new?k1^的计算结果作为 inputl,并根据inputl的值从轻量级函数集F中选取函数,设为fa;标签计算fa(rDB,:rT, kT_neJ,发送{rDB,rT,fa (rDB,rT,kT_nOTM给读写器;其中,kT_nOT表示进行此次认证而设置的新 密钥,kFS为标签与后端数据库共享的函数选取密钥; 4) 读写器将标签发送的消息转发给后端数据库; 5) 若后端数据库长时间没有收到读写器转发的标签的响应,则重新执行协议;若后 端数据库收到读写器发来的消息,搜索是否存在二元组0%_。1(1,kFS)或(kDB_n",kFS)满 足:用1%_。1(1或kDB_代替kT_,计算inputl' =rDB十rT十kDB_old十kFS或inputl' = rDB?rT?kDB_new?kFS,根据inputl'的值从轻量级函数集F中选取出函数fa',计算出 fa'(rDB,rT,kT_nJ的值,与收到的fa(rDB,rT,kT_nJ相同;若存在二元组 〇%_。1(1,kFS),保 手寸kDB-old 不变,协议继续进行;若不存在二元组(kDB-old,kFS ),但存在二元组(kDB_nOT,kFS), 将Wn6w的值赋值给k DB-old, 协议继续进行;若不存在二元组(kDB-old,kFS )和(kDB-new,kFS),则 协议终止;将inputl'的值向左循环移位作为input2,将input2的值向左循环移位作为 input3,后端数据库根据input2和input3的值从轻量级函数集F中选择函数fb和f。,并 生成新的认证密钥kDB_mw;计算fb(rDB,:rT, 1?-old) ?kDB-new 和fc (rDB,rT, k〇B-old,kpB-new),发送 {rDB,rT,fb(rDB,rT, 1?-old)?kDB-new,fc (rDB,rT, k〇B-old'kpB-new)}给读写器; 6) 读写器转发后端数据库的消息给标签; 7) 标签收到后端数据库发来的消息后,用自己存储的密、钥kT_new代替k,。1(1,将inputl 的值向左循环移位作为input2',将input2'的值向左循环移位作为input3',标签根据 input2'和input3'的值从轻量级函数集F中选取函数fb'和f。',计算出fb'(rDB,rT,kDB_Qld) 和k'DB_new,并分别用自己存储的1?、钥kT_new和计算出的k' DB-new代替kDB-old和kDB-new, 计算^DB?-^T? -^DB-〇ld? ^DB-new^ ? 检查该计算结果与收到的f"c(? ?rT?kDB_〇ld?kDB_new) 是否相等;若不 相等,则协议终止;若相等,通过对后端数据库的认证,并将kT_new的值赋值给k^ld,将kDB_new 的值赋值给kT_nOTd#input3'的值向左循环移位作为input4,标签根据input4的值从轻量 级函数集F中选取函数fd,计算fd (rDB?rT?kT_old?kT_new)?发送{rDB,rT,fd (rDB,rT,kT_old,kT_new)} 给读写器; 8) 读写器转发标签的消息给后端数据库; 9) 若后端数据库长时间没有收到标签的响应,则重新执行协议;若后端数据库收到标 签发来的消息,则用和kDB_n"分别代替和kT_nOT;将input3的值向左循环移位作为 input4',标签根据input4'的值从轻量级函数集F中选取函数f/,检验f/ (rDB,rT,kT_Qld, kn)与收到的是否相等;若不相等,则协议终止;若相等,则标签已 经确认了后端数据库的身份,获取了正确的kDB_new,并且I^tjld=k ^T-new kdb-new,口」.以 进行后续通信。
2. 根据权利要求1所述的基于轻量级函数集的RFID标签与后端数据库的认证方法, 其特征在于,所述根据input的值从轻量级函数集F中选取函数的方法是:若轻量级函数 集F中有n个函数,则从input中选取的比特位的长度/e?=[log〗];从右至左,input中的比 特依次为第1位,第2位,第3位,......,第ext位;从第1位开始,input中的第h(h= 1, 2,......,ext)位若为1,则选取input的第(ext-h+1)位的值按照从右至左的顺序依次放 入变量result中,直至选取的input的值达到Ien比特;将轻量级函数集F中的每一个函 数进行编号,选择编号与result的值一致的轻量级函数。
3. 根据权利要求2所述的基于轻量级函数集的RFID标签与后端数据库的认证方法,其 特征在于,若result的值不同于轻量级函数集F中任何一个函数的编号时,将input的值 向左循环移位1个比特,再次选取result;若result的值仍然不同于轻量级函数集F中任 何一个函数的编号,则对input进行向左循环移位2个比特,直至选取到了适当的函数;若 input向左循环移位一圈后,result的值一直不同于轻量级函数集F中任何一个函数的编 号,则选取轻量级函数集F中上一次所选函数的下一个函数。
4. 根据权利要求2或3所述的基于轻量级函数集的RFID标签与后端数据库的认证方 法,其特征在于,所述轻量级函数集F中函数的个数不少于16个。
5. 根据权利要求1所述的基于轻量级函数集的RFID标签与后端数据库的认证方法,其 特征在于,所述轻量级函数集F= {f\,f2,......A,......,fn}中任一轻量级函数A至少应 满足以下条件: 输入可以是任意长度的信息; 同样的输入得到同样的输出信息; 不同的输入得到的输出也是不同的; 在输入信息量相同的情况下,轻量级函数的计算量不高于对称密钥密码算法; 函数的输入中包含至少一个只有通信双方知道的秘密值; 即使获取了函数的输出信息,在不知道秘密值的情况下,要得到输入信息在计算上是 不可行的; 不同的函数之间没有线性关系或其他简单的关系。
6. 根据权利要求1所述的基于轻量级函数集的RFID标签与后端数据库的认证方法,其 特征在于,所述轻量级函数匕、^、4互不相同,其实现方法为:将选取前一个轻量级函数 :^^的input(i-1)的值向左循环移位1比特作为input(i),然后根据选取规则从轻量级函 数集F中进行选取;若所选取的函数与前面选取的函数一样,则将input(i-1)的值向左循 环移位2比特作为input(i),再次进行选取,直至选取了不同的函数fi;若input(i-l)的值 向左循环移位一圈后仍然无法选取不同的函数进行计算,则选取fg在轻量级函数集F中 的下一个函数作为fi,且input(i)的值为input(i-1)向左循环移位1比特。
7. 根据权利要求1所述的基于轻量级函数集的RFID标签与后端数据库的认证方法,其 特征在于,所述的随机数、密钥和函数选取密钥的长度不低于128比特,且满足下列条件: (1)不能所有比特均为〇或1,且〇和1出现的概率应相等或接近;(2)每个比特的值为O或 1的概率应该是相等的。
【文档编号】G06K17/00GK104504426SQ201510005728
【公开日】2015年4月8日 申请日期:2015年1月7日 优先权日:2015年1月7日
【发明者】甘勇, 贺蕾, 熊坤, 吉星, 张俊松, 尹毅峰, 张启坤 申请人:郑州轻工业学院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1