一種適用于RFID認證系統(tǒng)的Hash函數(shù)構造方法
【技術領域】
[0001] 本發(fā)明設及信息安全技術領域,尤其設及一種適用于RFID認證系統(tǒng)的化Sh函數(shù) 構造方法。
【背景技術】
[0002] 射頻識別(RFID)技術作為物聯(lián)網的重要支撐技術之一,具有自動識別、非接觸、 容量大、速度快等優(yōu)點,被廣泛應用在口禁、物流管理、自動收費等場合。然而隨著RFID技 術的普及,其安全問題日漸突出,由于RFID系統(tǒng)中電子標簽的計算能力、存儲能力W及能 源的限制,成熟的公鑰算法無法直接應用于RFID系統(tǒng)的認證過程。
[0003] 現(xiàn)有技術中針對RFID電子標簽與讀寫器的認證協(xié)議,已有大量研究成果被 公開發(fā)表,運些成果中的大部分都利用了化Sh函數(shù)來解決完整性檢測W及TIDCTag Identific-ation)和RID巧eader Identification)在不安全的無線信道中傳輸?shù)葐栴}。 然而,運些化Sh函數(shù)的算法W及實現(xiàn)過程卻很少有人設及。傳統(tǒng)的散列化ash)算法如MD5, SHA-I等已被證明不安全,國際上開展了新一輪化Sh函數(shù)標準的公開征集,然而近幾年新 提出的化Sh函數(shù)設計方案主要考慮了 PC技術的發(fā)展,新算法更適合在多核環(huán)境及大內存 的情況下實現(xiàn),運與RFID的要求背道而馳。因此探索研究一種適合于RFID認證系統(tǒng)的 化Sh函數(shù)是一個十分迫切的問題。
【發(fā)明內容】
[0004] 本發(fā)明的目的是提供一種適用于RFID認證系統(tǒng)的化Sh函數(shù)構造方法,利用該方 法可W隨系統(tǒng)格子數(shù)目的變化,得到不同字節(jié)長度的散列值,具有輸出任意字節(jié)長度散列 值的能力,從而可W根據(jù)用戶需求W及RFID系統(tǒng)的安全性需求來確定化Sh函數(shù)的輸出長 度。
[0005] 一種適用于RFID認證系統(tǒng)的化Sh函數(shù)構造方法,所述方法包括:
[0006] 建立禪合動態(tài)整數(shù)帳篷映象格子模型;
[0007] 根據(jù)RFID認證系統(tǒng)的硬件資源及應用場合確定所述RFID認證系統(tǒng)的尺寸L;所 述L為所述禪合動態(tài)整數(shù)帳篷映象格子模型的格子數(shù),同時也是化Sh函數(shù)的輸出字節(jié)數(shù);
[0008] 針對待散列的數(shù)據(jù)消息進行填充,填充后的消息字節(jié)數(shù)為b,且b為L的最小整數(shù) 倍;
[0009] 將填充后的消息分為若干組,使每組的字節(jié)數(shù)為以將各組的對應字節(jié)進行累加, 再對256求余數(shù),得到一個長度為L字節(jié)的數(shù)組作為迭代初值;
[0010] 將所述迭代初值帶入所建立的禪合動態(tài)整數(shù)帳篷映象格子模型中進行L步迭代, 將第L+10步的迭代結果作為最終化Sh函數(shù)的輸出值。
[0011] 由上述本發(fā)明提供的技術方案可W看出,利用該方法可W隨系統(tǒng)格子數(shù)目的變 化,得到不同字節(jié)長度的散列值,具有輸出任意字節(jié)長度散列值的能力,從而可W根據(jù)用戶 需求W及RFID系統(tǒng)的安全性需求來確定化Sh函數(shù)的輸出長度。
【附圖說明】
[0012] 為了更清楚地說明本發(fā)明實施例的技術方案,下面將對實施例描述中所需要使用 的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本 領域的普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可W根據(jù)運些附圖獲得其他 附圖。
[0013] 圖1為本發(fā)明實施例所提供的適用于RFID認證系統(tǒng)的化Sh函數(shù)構造方法流程示 意圖;
[0014] 圖2為本發(fā)明所舉實例中消息填充的示意圖;
[0015] 圖3為本發(fā)明所舉實例中迭代初值的獲取示意圖;
[0016] 圖4為本發(fā)明實施例所述方法在RFID認證系統(tǒng)中的應用實例示意圖。
【具體實施方式】
[0017] 下面結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整 地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒?發(fā)明的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施 例,都屬于本發(fā)明的保護范圍。
[0018] 本發(fā)明實施例所述構造方法是將待散列數(shù)據(jù)作為禪合動態(tài)整數(shù)帳篷映象格子模 型的迭代初值,在經過一定步數(shù)的迭代后,將最后的迭代結果作為散列值輸出,運樣化Sh 函數(shù)的輸出長度由模型的格子數(shù)決定,每一個格點值是一個8位無符號整數(shù),即一字節(jié),由 于模型的格子數(shù)是可W任意變化,故最后輸出的散列值長度可W是任意字節(jié),從而可W根 據(jù)用戶需求W及RFID系統(tǒng)的安全性需求來確定化Sh函數(shù)的輸出長度。下面將結合附圖對 本發(fā)明實施例作進一步地詳細描述,如圖1所示為本發(fā)明實施例所提供的適用于RFID認 證系統(tǒng)的化Sh函數(shù)構造方法流程示意圖,所述方法包括:
[0019] 步驟11 :建立禪合動態(tài)整數(shù)帳篷映象格子模型;
[0020] 在該步驟中,動態(tài)整數(shù)帳篷映射是將帳篷映射進行整數(shù)化,并且加入動態(tài)參量后 形成的一種非線性映射,它既保持了帳篷映射均勻分布的特性,又克服了整數(shù)帳篷映射的 短周期問題,是一種性能優(yōu)良的整數(shù)混濁映射,十分適用于構造密碼算法。
[0021] 而本發(fā)明實施例為了獲得性能良好的密碼序列,利用禪合映像格子模型(CML)將 動態(tài)整數(shù)帳篷映射進行禪合。CML是人們研究非線性時空混濁行為極其重要的一類模型,其 所選用的非線性函數(shù)、系統(tǒng)格子大小、禪合系數(shù)及非線性函數(shù)參數(shù)的不同取值都將直接影 響禪合映象格子系統(tǒng)所產生序列的復雜性,進而影響由其構造的密碼系統(tǒng)的安全性。為使 系統(tǒng)生成的時間序列具有均勻分布特性,對CML結構進行改進,即用動態(tài)整數(shù)帳篷映射作 為禪合映象格子系統(tǒng)的非線性函數(shù),具體建立禪合動態(tài)整數(shù)帳篷映象格子模型的過程有多 種,其中一種典型的建立過程為:
[0022] 首先將動態(tài)整數(shù)帳篷映射用如下公式1進行描述:
[0023] 公式 1 :
[0024] 其中,g(n) = [x(n)+k(n)]mod 上式中,x(n)表示第n步迭代結果;k(n)表示 每一步迭代時的動態(tài)參量,一般k(n)取值與迭代步數(shù)有關;2k-l為x(n)取值的整數(shù)集上 界;mod為取余數(shù)運算;
[00巧]然后用所述動態(tài)整數(shù)帳篷映射作為禪合映象格子模型的非線性函數(shù),禪合方式如 公式2所示:
[002引公式 2 :Xt(n+l) = (f [Xt(n)]+f [Xt i(n)])mod2k;
[0027] 上式中,i的取值范圍為:0, 1,…,kl,L為RFID認證系統(tǒng)的尺寸;Xi(n+1)表示第 i個格點的第n+1步迭代所得狀態(tài)值;f( ?)表示格點的非線性函數(shù),運里取為所述動態(tài)整 數(shù)帳篷映射;2k為格點取值的狀態(tài)數(shù)目。
[0028] 上述每一個格點值由上一步迭代的=個格點值確定,同時每一個格點又能對下一 步迭代的=個格點產生影響,實現(xiàn)了格點間的禪合,有利于信息的混淆與擴散。
[0029] 步驟12 :根據(jù)RFID認證系統(tǒng)的硬件資源及應用場合確定所述RFID認證系統(tǒng)的尺 寸L ;
[0030] 在該步驟中,所述L為所述禪合動態(tài)整數(shù)帳篷映象格子模型的格子數(shù),同時也是 化Sh函數(shù)的輸出字節(jié)數(shù)。
[0031] 運里,RFID認證系統(tǒng)的尺寸L主要由兩個因素決定:一是RFID電子標簽的硬件資 源。一般情況下,RFID系統(tǒng)的硬件資源限制只來自于電子標簽,即只要電子標簽能夠完成 的計算、存儲,讀寫器都能夠輕易完成。故在確定L時,只需考慮電子標簽是否能夠承受,且 要求盡量少地占用用戶存儲區(qū);二是RFID系統(tǒng)的應用場合,依據(jù)RFID系統(tǒng)的應用場合不同 將RFID認證協(xié)議分為輕量級、中量級、重量級S種級別。綜上所述,L的確定既要考慮標簽 的硬件資源,又要考慮系統(tǒng)的應用場合。
[0032] 步驟13 :針對待散列的數(shù)據(jù)消息進行填充,填充后的消息字節(jié)數(shù)為b,且b為L的 最小整數(shù)倍;
[0033] 在該步驟中,待散列的數(shù)據(jù)消息一般是W字節(jié)為單位的一系列十六進制數(shù)。
[0034] 所述填充后的消息字節(jié)數(shù)b表示為:
[0035] b = bi+bz+l ;
[0036]上式中,bi為原消息的字節(jié)數(shù);b2為進行消息填充的消息字節(jié)數(shù),且填充的消息內 容為若干字節(jié)的十六進制數(shù)80 ;1表示一個字節(jié),內容為原消息的比特數(shù)。
[0037] 舉例來說,如圖2所示為本發(fā)明所舉實例中消息填充的示意圖,圖2中選取消息為 遵循EPC編碼體系的一段電子標簽序列號,為十六進制數(shù)0X020000A6800010D000112D邸, 共96bit,12字節(jié),填充后的消息字節(jié)數(shù)為20字節(jié)(總長度b) = 12字節(jié)(原消息長 度bi)巧字節(jié)(填充長度bz) +1字節(jié)(原消息比特數(shù)),即020000A6800010D000112D ED8080808080808060 (20 字節(jié))。
[0038] 步驟14 :將填充后的消息分為若干組,使每組的字節(jié)數(shù)為以將各組的對應字節(jié)進 行累加,再對256求余數(shù),得到一個長度為L字節(jié)的數(shù)組作為迭代初值;
[003引運里,由于每個字節(jié)占8bit,故字節(jié)的狀態(tài)取值范圍為{0, 1,2,…,28-1},要保證 累加后每個字節(jié)的狀態(tài)值在取值范圍內,故需要對256求余數(shù)。
[0040] 舉例來說,如圖3所示為本發(fā)明所舉實例中迭代初值的獲取示意圖,本實例中填 充后的消息為20字節(jié),L = 10,則分為兩組,如下所示:
[0041] 組 I :02 00 00 A6 80 00 10 DO 00 11
[0042] 組 2 :2D 邸 80 80 80 80 80 80 80 60
[0043] 再將上述兩組消息的對應位置字節(jié)分別相加,再對256求余數(shù),得到一組10字節(jié) (長度等于U的數(shù)組作為迭代初值,即而二{2F ED 80 26 00 80 90 50 80 71}。
[0044] 步驟15 :將所述迭代初值帶入所建立的禪合動態(tài)整數(shù)帳篷映象格子模型中進行L 步迭代,將第L+10步的迭代結果作為最終化Sh函數(shù)的輸出值。
[0045] 在該步驟中,迭代步數(shù)是由模型的禪合方式得知的,若要初值影響到所有輸出格 點值,則至少需要迭代L步,再考慮一定的裕量,運里取迭代步數(shù)為L+10。
[0046] 下面W具體實例對上述迭代過程進行描述,迭代過程如下:
[0047] 1)取禪合動態(tài)整數(shù)帳篷映象格子模型中的動態(tài)參量k(n)=當前迭代步數(shù)+1,L = 10個格點初值為填充后消息的十個字節(jié)X。。
[004引 2)迭代過程如下表1所示:
[004引表1迭代過程
[0050]
[0051] 如輸出Xi(20)||x2(20)M……MXio (20)作為最終化Sh值,即:
[0052] E14A7083C83621F678DF,共L*8 =SObito
[0053] 下面給出本發(fā)明所述方法的一個應用實例,如圖4所示為本發(fā)明實施例所述方法 在RFID認證系統(tǒng)中的應用實例示意圖,參考圖4 :每個電子標簽都要存儲一個與后臺數(shù)據(jù) 庫共享的秘密值Si,閱讀器內置一個隨機數(shù)發(fā)生器,后臺數(shù)據(jù)庫存放所有標簽的標識TIDi W及標識TIDi對應的秘密值S1。
[0054] 現(xiàn)假設一個電子標簽需要被認證,標簽標識TID取為用戶自定義的編號,為4字節(jié) 十六進制數(shù)OxFFOOOOO