端每一次所有權轉移過程中的通信消息都不一樣,杜絕了重放攻擊的可能性,一定程度上可以抵抗常見的RFID攻擊。
【附圖說明】
[0048]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
[0049]圖1是現(xiàn)有技術一的方法執(zhí)行流程圖;
[0050]圖2是現(xiàn)有技術二的方法執(zhí)行流程圖;
[0051]圖3是本發(fā)明的方法流程圖;
[0052]圖4是本發(fā)明的實施流程圖。
【具體實施方式】
[0053]下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0054]鑒于上述現(xiàn)有協(xié)議存在的問題,本發(fā)明的目的是提供一種安全、低成本、可追查標簽所有者的RFID標簽所有權轉移方法。本發(fā)明方法采用基于SQUASH的Rabin加密方法,保證了協(xié)議的安全性;本發(fā)明方法的標簽端沒有偽隨機數(shù)發(fā)生器硬件和hash函數(shù)硬件,降低了標簽端的硬件成本;而且標簽端使用邏輯運算完成了協(xié)議的全部過程,表明本發(fā)明方法屬于超輕量級協(xié)議;本發(fā)明方案的舊所有者數(shù)據(jù)庫在所有權轉移完成后鎖住轉移標志flags,不需要強制刷新數(shù)據(jù)庫數(shù)據(jù),保證了標簽端的舊所有者可以查詢自己的數(shù)據(jù)庫。如圖3所示為執(zhí)行流程圖,本發(fā)明方法的具體過程如下:
[0055]在介紹該方法前先介紹一下本發(fā)明中用到的縮略語和關鍵術語的定義:
[0056]T/R:標簽/讀寫器。
[0057]DB./DBj:舊所有者/新所有者的后端服務器數(shù)據(jù)庫。
[0058]IDS:標簽端保存的ID匿名數(shù)據(jù)。
[0059]IDStjldADSnew:上一次認證過程/新認證過程中標簽端保存的ID匿名數(shù)據(jù)。
[0060]request:讀寫器對標簽的挑戰(zhàn)詢問。
[0061]s1:分配給T的比特串。
[0062]t1:標簽T的標識符,t i= s ^mod(N),N表示梅森數(shù)。
[0063]VV1:分配給舊所有者的標簽比特串和標識符,Vi= u /mod (N)。
[0064]Ui°ld/Vi°ld:上一次認證過程中分配給標簽的比特串和標識符,V嚴=(Uj0ld) 2mod (N) ο
[0065]SinfflVt廣w:分配給新所有者的標簽比特串和標識符,s廣W= (t r)2mod(N) ο
[0066]flags:數(shù)據(jù)庫保存的標識,數(shù)值O表示該數(shù)據(jù)庫所有者已經(jīng)轉移所有權,數(shù)值I表示該數(shù)據(jù)庫的所有者是當前標簽的擁有者。
[0067]Nx:標簽端保存的動態(tài)數(shù)據(jù)。
[0068]Nx’、Nt:標簽端保存的臨時數(shù)據(jù)。
[0069]Νκ:閱讀器端生成的偽隨機數(shù)。
[0070]M1:表示認證過程中產(chǎn)生的計算結果,i = 1、2、3、4、5。
[0071]U:標簽的詳細信息。
[0072]?: 二進制異或運算符。
[0073]X2:表示X的平方運算。
[0074][X] t:取X的t個比特位。
[0075]x?y/x?y:將x循環(huán)左或右移位比特串y的漢明重量位。
[0076]{O, I}1:長度為I的偽隨機數(shù),該隨機數(shù)的每一位隨機的取O或者I。
[0077]SIGNAL:所有權轉移信號,該信號在安全信號傳輸;收到信號的數(shù)據(jù)庫開始所有權轉移。
[0078]MITBITS (X,y)函數(shù)表示使用線性函數(shù)產(chǎn)生一個偽隨機數(shù),x、y分別是函數(shù)的入口參數(shù)。
[0079]協(xié)議的初始化:在協(xié)議的初始狀態(tài)中,后端01數(shù)據(jù)庫保存數(shù)據(jù)(IDS,s ” I I (IDSold,S1ld, Vld) I flags IU,標簽保存數(shù)據(jù)tj IlDS |NX| flags,假設原所有者數(shù)據(jù)庫與新所有者數(shù)據(jù)庫之間的通信信道、數(shù)據(jù)庫與讀寫器之間的通信信道均是安全可信的,而讀寫器與標簽之間的通信信道是不安全的。
[0080]Stepl:讀寫器產(chǎn)生偽隨機數(shù)Νκ,并發(fā)送request I I 乂消息給標簽。
[0081]Step2:標簽收到閱讀器的請求消息后,計算Nt= N x, M1= (t i2?NE)十NT,M2 =[NT2mod (N) ] t;Nx,= MITBITS (N T+NE),刷新數(shù)據(jù) Nx = Nx,;返回消息 IDS | | M11 | M2,其中MITBITS(x, y)函數(shù)表示使用線性函數(shù)產(chǎn)生一個偽隨機數(shù)。
[0082]St印3:閱讀器收到消息之后,做如下操作:
[0083](I)在數(shù)據(jù)庫中查找IDS = IDSnew;如果查找成功,計算N/ = Μ# (CRC (t ^Ne)),M2’ = [NT 2mod(N) ]t,驗證M2’ = M2是否成立;若等式成立,則閱讀器驗證標簽成功,將flags設置為0,后臺數(shù)據(jù)庫開始所有權轉移過程,即:數(shù)據(jù)庫DBi*送所有權轉移信號給數(shù)據(jù)庫DB」,DBj收到信號之后,將當前的(IDSjpti) I |U的值寫入DBj數(shù)據(jù)庫,并產(chǎn)生隨機數(shù) R = {O, I}1,計算 Sinew= R, t f?= (s 廣”2mod(N),IDSnew= IDS 十 s ^ew? N/,flags=I ;將 IDSnew, IsinewI Iti廳I U flags 寫入 DBj中;計算 M 3= t ^ew? (N T?1/2),M4 =Sin?》(NT2+NK2),M5= ^η?2+Ντ2)πι0(1(Ν)。然后 DB^送消息 M3I |M4| %給讀寫器,再轉發(fā)給標簽。如果等式不成立,表示驗證標簽身份失敗,所有權轉移過程終止。
[0084](2)在數(shù)據(jù)庫中查找IDS = IDStjld;如果查找成功之后,表示標簽上一次所有權轉移沒有成功,接著驗證標簽的身份,驗證過程如步驟(I)中所述;如果驗證成功,首先進行一次數(shù)據(jù)刷新,該過程如下:產(chǎn)生隨機數(shù)R = {O, I}1,計算Si.= R, t廣=(Sinew) 2mod (N),IDSnew= IDS ? s ^ew ? N/,flags = I ;將 IDSnew丨 | SinewI ItinewI U flags 寫入 DB」中;計算 M3= tf?? (N T?l/2), M4= s (ΝΤ2+ΝΕ2), M5= (S ^+Nt2) mod (N) ? 然后DBj*送消息M3I IM4 115給讀寫器,再轉發(fā)給標簽。
[0085](3)如果上述查找均失敗,表示閱讀器驗證標簽身份不成功,所有權轉移過程終止。
[0086]Step4:標簽接收到消息之后首先計算
[0087]= Μ4? (Ντ2+Νε2) ;\—’ = Μ3? (Ντ?1/2) ;Μ5,= (Sinew> 2+NT2)mod(N);
[0088]驗證t廣w’ = ((Sine^)2)mod (N) ;M5’ = 115是否成立;若等式成立,表示標簽驗證閱讀器成功,開始更新標簽信息4= t / ;IDS = IDS ? Sinew? N/ ;若等式不成立,表示標簽驗證閱讀器失敗,所有權轉移過程結束。
[0089]本發(fā)明所述的一種RFID所有權轉移方法的實施流程如圖4所示。
[0090]本發(fā)明方法的實現(xiàn)需要4個角色,具體為:RFID標簽:儲存商品信息的低成本RFID標簽,標簽上鑲嵌邏輯門電路構成的芯片,該芯片具備輕量級的運算能力和少量數(shù)據(jù)存儲能力;閱讀器:能夠對RFID標簽進程讀寫的硬件設備,該設備可以產(chǎn)生偽隨機數(shù),并轉發(fā)消息;舊所有者:RFID標簽所有權轉移前的標簽所有者;新所有者:RFID標簽所有權轉移后的標簽所有者。
[0091]本發(fā)明方法中假設的RFID系統(tǒng)設備能力:標簽端具有邏輯運算能力,由5000-10000個邏輯門電路組成,有幾百個存儲位;閱讀器端可以產(chǎn)生偽隨機數(shù),并轉發(fā)消息;數(shù)據(jù)庫端可以產(chǎn)生偽隨機數(shù),并具有多項式時間內的運算能力。
[0092]具體來說,本發(fā)明所述的方法由身份認證子協(xié)議和數(shù)據(jù)轉移子協(xié)議來實現(xiàn)的,身份認證子協(xié)議又包括閱讀器端認證標簽子協(xié)議和標簽端認證數(shù)據(jù)庫子協(xié)議。具體為:
[0093]閱讀器端認證標簽子協(xié)議:
[0094]第一步:讀寫器產(chǎn)生偽隨機數(shù)Nk,并在感應范圍內發(fā)送request I I ^消息給標簽。
[0095]第二步:標簽收到閱讀器的消息后,計算Nt= N x,M1= (t i2?NE)十NT,M2 =[NT2mod(N)]t;Nx,= MITBITS (N Τ+Νκ),并刷新數(shù)據(jù) Nx = Nx,;返回消息 IDS | M1 |M2,其中MITBITS(x, y)函數(shù)表示使用線性函數(shù)產(chǎn)生一個偽隨機數(shù)。
[0096]第三步:閱讀器收到消息之后,做如下操作:
[0097](I)在數(shù)據(jù)庫中查找IDS = IDSnew;如果查找成功,計算N/ = Μ# (CRC (t ^Ne)),M2’ = [NT’2mod (N) ] t,驗證M2’ = M2是否成立;若等式成立,則閱讀器驗證標簽成功。如果等式不成立,表示驗證標簽身份失敗,所有權轉移過程終止。
[0098](2)在數(shù)據(jù)庫中查找IDS = IDStjld;如果查找成功之后,表示標簽上一次所有權轉移沒有成功,接著驗證標簽的身份,驗證過程如步驟(I)中所述。
[0099](3)如果上述查找均失敗,表示閱讀器驗證標簽身份不成功,所有權轉移過程終止。
[0100]至此,閱讀器端認證標簽子協(xié)議執(zhí)行完成,協(xié)議執(zhí)行的結果為:閱讀器認證標簽通過,協(xié)議進入數(shù)據(jù)移子協(xié)議,或者閱讀器認證標簽不通過,協(xié)議終止。
[0101]數(shù)據(jù)轉移子協(xié)議:
[0102]第四步:如果IDS = IDSnew,后臺數(shù)據(jù)庫flags設置為0,開始所有權轉移過程,即:數(shù)據(jù)庫DBi*送所有權轉移信號給數(shù)據(jù)庫DBj, DBj收到信號之后,將當前的(IDSjiJi) I |U的值寫入DBj數(shù)據(jù)庫,并產(chǎn)生隨機數(shù)R= {O, 1