王 艷, 雷雪梅, 高 通
1. 內(nèi)蒙古大學, 呼和浩特 010021
2. 哈爾濱工業(yè)大學, 哈爾濱 150001
中國工業(yè)和信息化部于2017 年發(fā)布的《物聯(lián)網(wǎng)“十三五” 規(guī)劃》文件中指出, 我國物聯(lián)網(wǎng)技術(shù)在物流、環(huán)保、醫(yī)療、交通等多個領(lǐng)域均已得到廣泛應用. 而RFID (radio frequency identification) 作為實現(xiàn)物聯(lián)網(wǎng)的關(guān)鍵技術(shù), 以其特有的無接觸、可同時識別多個物體等優(yōu)點在物聯(lián)網(wǎng)應用領(lǐng)域中大放異彩.
但是隨著RFID 應用日益廣泛, 其安全與隱私問題也隨之而來. 如用戶標簽被秘密定位并追蹤, 使個人隱私遭到破壞; 又如物品的詳細信息在傳輸過程中易受攻擊, 從而導致物品隱私信息泄露等[1]. 同時,RFID 安全系統(tǒng)不僅要滿足抵御攻擊、數(shù)據(jù)認證、訪問控制等要求, 而且需要注重RFID 系統(tǒng)標簽的計算能力、存儲空間和可編程性等限制所導致的無法利用高復雜度的加解密算法保證自身安全的問題等[2]等.
目前針對RFID 的安全策略主要可分為兩大類: 物理安全機制和軟件安全機制. 物理安全機制主要包含kill 標簽、法拉第籠、主動干擾、阻止標簽等[3], 軟件安全機制主要以密碼算法和密碼協(xié)議為基礎. 目前, 現(xiàn)有的RFID 認證協(xié)議依據(jù)標簽的計算能力可被分為以下四類:
(1) 重量級認證協(xié)議: 一般使用較為完善和安全的加密方法, 包括基于對稱密鑰的RFID 安全協(xié)議以及非對稱密鑰算法的RSA 方案、橢圓曲線密碼機制ECC 等. 目前應用比較成熟的對稱加密算法有DES 數(shù)據(jù)加密算法(data encryption standard)[4]以及AES 高級加密標準(advanced encryption standard)[5]等. 對稱密鑰指閱讀器和標簽之間共享同一個密鑰, 該方法的缺點是一旦標簽的密鑰被泄露就會影響整個系統(tǒng)的安全性[6]. 非對稱密鑰算法又稱為公鑰密碼算法、雙鑰密碼算法, 這類算法是基于數(shù)學的密碼理論技術(shù)[7], 例如RSA 算法[8]是一種基于數(shù)論構(gòu)造雙鑰的方法, 它的安全依賴于數(shù)論大整數(shù)分解的困難性, 密鑰長度一般介于1024 bit 到2048 bit 之間. 再如ECC[9]算法基于離散對數(shù), 數(shù)學理論復雜、工程上應用較困難, 但其破譯求解難度基本是指數(shù)級的, 可滿足所期望的安全強度. 綜上, 使用重量級認證協(xié)議對標簽的計算能力和存儲資源要求很高, 因此不適合大規(guī)模推廣使用.
(2) 簡單級認證協(xié)議: 一般指標簽內(nèi)部可支持偽隨機數(shù)發(fā)生器以及基于哈希函數(shù)的安全機制. 常見的有hash lock 協(xié)議、隨機hash lock 協(xié)議、hash chain 協(xié)議等. hash lock 協(xié)議[10]對密鑰進行明文傳輸且metaID 保持不變, 這樣容易被記錄跟蹤; 閱讀器與標簽之間傳輸?shù)臄?shù)據(jù)未經(jīng)加密, 攻擊者很容易獲得Key 和ID 值, 故該協(xié)議還易受到假冒攻擊、重放攻擊. 隨機hash lock 協(xié)議[11]雖有改進, 可以防跟蹤, 但仍易遭到假冒攻擊、重放攻擊等. 而且在該協(xié)議中, 閱讀器要計算數(shù)據(jù)庫全部ID 的hash 值, 計算量復雜, 易受拒絕服務攻擊. Hash chain 協(xié)議[12]中秘密值雖不斷更新, 但雙方秘密值更新不同步, 即該協(xié)議無法抵擋去同步化攻擊.
(3) 輕量級認證協(xié)議: 一般指使用PRNG 和簡單函數(shù)對RFID 系統(tǒng)加密的協(xié)議. 文獻[13] 中提出HB 協(xié)議, 以及后續(xù)改進提出的HB+ 協(xié)議, 均沒有對閱讀器進行安全驗證, 因此易受到中間人攻擊和跟蹤攻擊.
(4) 超輕量級認證協(xié)議: 一般指僅包含一些簡單的位運算操作(例如與、或、非、異或等) 的認證協(xié)議. 文獻[14] 中提出的LMAP 協(xié)議僅僅采用簡單的位運算操作, 雖然它的私鑰不斷更新, 但由于運算簡單, 容易受到跟蹤攻擊、同步攻擊和拒絕服務攻擊等.
由上述分析可知, 重量級以及簡單級認證協(xié)議對標簽的存儲性能和計算能力提出了挑戰(zhàn), 超輕量級認證協(xié)議雖然滿足低計算量條件, 但其安全性較弱. 為此, 根據(jù)RFID 系統(tǒng)的特點以及安全需求, 已有學者提出一系列輕量級安全協(xié)議, 本文主要研究基于密鑰矩陣的輕量級安全認證協(xié)議. 例如在文獻[15] 中提出一種基于密鑰矩陣的RFID 安全認證協(xié)議, 該協(xié)議采用雙密鑰矩陣進行了雙向身份認證, 具有標簽匿名性、前向安全性等特點, 但是該協(xié)議的不足之處是: 第一, 標簽和數(shù)據(jù)庫的密值更新不同步, 容易受到去同步化攻擊; 第二, 標簽存儲信息量較大. 在文獻[16] 提出一種自同步密鑰矩陣RFID 安全協(xié)議, 解決了文獻[15] 中“標簽中信息和后臺數(shù)據(jù)庫中信息沒有同步更新” 的問題, 但仍沒有解決標簽存儲信息量大的問題. 在文獻[17] 中提出一種基于動態(tài)共享密鑰的移動RFID 雙向認證協(xié)議, 該協(xié)議中標簽不能對閱讀器的合法性進行驗證, 讓攻擊者有機可乘假冒合法閱讀器查詢標簽, 即該協(xié)議無法抵抗假冒攻擊.
為此, 本文在文獻[18] 的基礎上, 提出一種基于變模且自更新密鑰矩陣的輕量級RFID 安全認證協(xié)議, 并利用Winograd 算法對密鑰矩陣的加解密過程進行加速設計, 以此提高標簽認證的實時性, 經(jīng)分析,該協(xié)議可有效抵抗多種典型攻擊, 且具備低復雜性和適合低成本標簽的特點.
首先給出密鑰矩陣算法涉及的數(shù)學定義.
定義1 若一個n階矩陣A的所有元素均為整數(shù), 則稱A為n階整數(shù)矩陣.
引理1 若p為正整數(shù),a為整數(shù), 且p與a互素, 則同余方程ax ≡1 mod(p) 在模p意義下存在唯一解, 即存在正整數(shù)a′<p, 使aa′≡1 mod(p).
定義2 若A、B為整數(shù)方陣, 且A×B ≡Emod(p), 其中E為單位矩陣, 則稱B是A的模p逆矩陣.
不難證明,n階整數(shù)方陣A存在模p逆矩陣的條件是矩陣A的行列式的值與p互素. 根據(jù)上述定義,對于一個給定的n階整數(shù)矩陣A, 若其行列式的值與整數(shù)p互素, 則可利用初等變換方法求得A矩陣的模p逆矩陣B, 利用A、B與p可建立密鑰矩陣的加密過程與解密過程如式(1)和式(2)所示.
其中E(),D(),t,c分別代表加密過程、解密過程、明文以及密文.
根據(jù)上述加解密過程可知, 在傳統(tǒng)的基于密鑰矩陣的RFID 安全認證協(xié)議中, 為提高協(xié)議安全性的可能做法是直接存儲多組加密、解密矩陣. 相比單一的密鑰矩陣, 這種預共享多組密鑰矩陣的方式雖然可以提高加密算法的安全性, 但也消耗了標簽大量的存儲空間.
為了在不增加原有密鑰矩陣的存儲量的前提下同時提高協(xié)議的安全性, 本文提出變模密鑰矩陣加密算法, 將原有密鑰矩陣加密算法的常量模p擴展為變量模p, 在標簽認證過程中通過模的自更新, 弱化明文與密文之間的相關(guān)性, 提高認證協(xié)議的安全性.
下面給出變模密鑰矩陣可行性的證明過程.
定理1 若正整數(shù)a與p互素, 則a與q互素, 其中q為p的整數(shù)約數(shù).
該定理可通過基本的數(shù)論理論直接得到. 這意味著, 對于整數(shù)矩陣A, 其行列式與模p互素, 那么對于整數(shù)q, 其中q為p的整數(shù)約數(shù), 滿足A的行列式與模q也互素. 再結(jié)合定義2, 可以得到整數(shù)矩陣A存在模q逆矩陣. 隨后將證明整數(shù)矩陣A的任意模q(q為p的任意約數(shù)) 逆矩陣是相同的, 這可以表述為定理2.
定理2 若A、B為整數(shù)方陣, 使得:A×B ≡Emodp,E為單位矩陣, 即B為A的模p逆矩陣,那么B同時為A的模q逆矩陣, 其中q為p的整數(shù)約數(shù).
證明: 由于A×B ≡Emodp, 那么A×B ≡pC+E, 其中C為任意整數(shù)矩陣. 又由于q為p的整數(shù)約數(shù), 即p=aq, 其中a為正整數(shù). 那么A×B=aqC+E=qD+E, 其中D為整數(shù)矩陣. 因此,可以得到A×B ≡Emodq.
根據(jù)上述證明, 可以發(fā)現(xiàn)加密矩陣A與解密矩陣B可以利用模p或者模q實現(xiàn)加密與解密過程, 其中p為合數(shù),q為p的整數(shù)約數(shù). 雖然實現(xiàn)了模的自更新, 但不同模值下所對應的加密、解密矩陣是相同的, 此時, 密鑰矩陣的固定不變有損RFID 安全認證協(xié)議的安全性. 為此, 考慮利用矩陣的初等變換實現(xiàn)密鑰矩陣的自更新. 首先以初等行變換為例說明如何實現(xiàn)密鑰矩陣的自更新, 初等列變換同理. 初等行變換包含以下三種變換:
(1) 以一個非零的數(shù)乘矩陣的某一行;
(2) 把矩陣中的某一行的k倍加到另一行;
(3) 互換矩陣中兩行的位置.
考慮本文RFID 安全認證協(xié)議是針對低成本標簽提出的, 對于低成本標簽來說, 實現(xiàn)乘法操作相對于實現(xiàn)加法操作更難更耗時, 因此取消乘法操作, 同時在第(2) 種初等行變換中取k=1, 這樣需要在標簽中執(zhí)行的矩陣的初等行變換只有兩種, 即:
(a) 矩陣的某一行加到另一行;
(b) 互換矩陣中兩行的位置.
下面給出經(jīng)過初等變換的密鑰矩陣可實現(xiàn)加解密過程的可行性論證.
由矩陣的初等變換可知, 矩陣的某行(列) 加另一行(列), 該矩陣對應的行列式的值不變. 互換矩陣中的某兩行(列) 一次, 其對應的行列式的值加一個負號, 互換矩陣中的某兩行(列) 兩次, 或者, 先互換一次行(列), 再互換一次列(行), 兩個負號抵消, 其對應的行列式的值還是原矩陣對應的行列式的值. 又根據(jù)定義2,n階整數(shù)方陣A存在模p逆矩陣的條件是矩陣A的行列式的值與p互素. 由于矩陣經(jīng)過上述初等變換后其對應的行列式的值不變, 即該值仍與模p互素, 即經(jīng)過上述初等變換的新的密鑰矩陣同樣可建立如式(1)和式(2)所示的密鑰矩陣加解密過程.
根據(jù)自更新密鑰矩陣可行性論證可知, 構(gòu)建n階加密矩陣初等變換方式索引表可分為“列交換兩次”、“行交換兩次”、“行相加”、“列相加”、“先換行(列) 再換列(行)” 等五種情況, 根據(jù)n階加密矩陣初等變換方式索引表可以相應構(gòu)建出n階解密矩陣初等變換方式的逆變換索引表. 初始加密、解密矩陣可通過查找初等變換方式索引表、相應的逆變換索引表, 形成新的加密、解密矩陣, 得到的新的密鑰矩陣更新原來初始密鑰矩陣的存儲單元, 不需要額外增加其他存儲空間來存放新的密鑰矩陣. 即標簽僅需要存儲一個初始加密矩陣和一個初始解密矩陣的空間, 通過初等變換, 即可實現(xiàn)多次加解密過程.
考慮到更高階的密鑰矩陣的初等變換方式眾多, 其中會涉及多次兩行(列) 相加, 為避免密鑰矩陣的元素數(shù)值過大而溢出, 將初等變換后的密鑰矩陣中的元素按照模p處理, 這樣所有元素的值將不大于p.
綜上, 密鑰矩陣的自更新僅涉及加法和互換操作, 這對低成本標簽是可實現(xiàn)的, 同時, 密鑰矩陣自更新在不額外增加存儲空間的前提下, 實現(xiàn)了密鑰矩陣的多樣性, 提高了密鑰矩陣加密算法的安全性.
根據(jù)變模且自更新密鑰矩陣加密算法, 構(gòu)建RFID 系統(tǒng)的安全認證協(xié)議, 如圖1 所示. 該協(xié)議每一次認證都會更新當前的密鑰矩陣模值, 使得密鑰矩陣模值具有強無關(guān)性, 同時利用矩陣初等變換方法實現(xiàn)密鑰矩陣自更新, 提高了RFID 安全認證協(xié)議的安全性.
圖1 基于變模與自更新密鑰矩陣的RFID 認證協(xié)議Figure 1 RFID authentication protocol based on variable modulus and self-updating key matrix
基于變模與自更新密鑰矩陣的高效RFID 安全認證協(xié)議的初始條件如下:
(1) 本協(xié)議假設閱讀器與后臺數(shù)據(jù)庫之間的通信是安全可靠的;
(2)標簽、閱讀器、服務器內(nèi)需預先存儲的元素如圖1 所示. 其中,圖1 中虛色框中以二階矩陣為例,說明標簽和閱讀器內(nèi)需要預先存儲的“加密矩陣初等變換方式索引表”、“解密矩陣初等變換方式的逆變換索引表”、“模p的整數(shù)約數(shù)集合f(p) ” 的構(gòu)建方法. 這里應注意, 二階密鑰矩陣經(jīng)過“行交換兩次”、“列交換兩次” 之后會回歸為初始密鑰矩陣, 所以這兩列為空, 但對于三階以及更高階密鑰矩陣, “行交換兩次”、“列交換兩次” 的初等變換方式可形成多種不同的密鑰矩陣. 此外, 由于模p的整數(shù)約數(shù)一定包含模p本身, 所以在存儲模p的整數(shù)約數(shù)時, 為了節(jié)省存儲空間, 不必再存儲模p本身, 模p的其他整數(shù)約數(shù)按照從小到大的順序排列.
RFID 安全協(xié)議的認證步驟如下:
(1) 閱讀器向標簽發(fā)送Query 指令.
(2) 標簽響應閱讀器, 使用內(nèi)部隨機數(shù)發(fā)生器產(chǎn)生的隨機N、加密矩陣A以及模p根據(jù)公式(1)對秘密值S進行加密, 記作E(N ‖S,A,p).
(3) 標簽將E(N ‖S,A,p) 發(fā)送給閱讀器.
(4) 閱讀器根據(jù)公式(2)對標簽發(fā)來的密文進行解密, 得到S.
(5) 閱讀器將S發(fā)送給后臺數(shù)據(jù)庫.
(6) 后臺數(shù)據(jù)庫查詢所有S, 若查詢不到, 記為非法標簽, 結(jié)束認證. 若可查詢到, 后臺數(shù)據(jù)庫生成新的秘密值Snew.
(7) 后臺數(shù)據(jù)庫向閱讀器發(fā)送新的秘密值Snew.
(8) 閱讀器收到新的秘密值Snew后保存, 并利用Snew、加密矩陣A、模p根據(jù)公式(1)對N+1 進行加密, 記作E(N+1‖Snew,A,p).
(9) 閱讀器將E(N+1‖Snew,A,p) 發(fā)送給標簽.
(10) 標簽收到來自閱讀器的E(N+ 1‖ Snew,A,p) 后, 根據(jù)公式(2)解密得到N+ 1‖ Snew, 驗證隨機數(shù)N, 若N正確, 證明閱讀器合法, 則接受新秘密值Snew, 否則認證失敗. 標簽計算mod(Snew,Nc) 的值作為在集合{q|q ∈f(p)}的序號, 進一步確定密鑰矩陣的模值q, 同時利用mod(Snew,Nc) 的值作為在矩陣初等變換方式索引表中的序號, 決定用哪種初等變換方式生成新的加密矩陣Anew, 標簽利用模q和Anew根據(jù)公式(1)對敏感信息ID 加密, 記作E(ID,Anew,q).
(11) 標簽將E(ID,Anew,q) 發(fā)送給閱讀器.
(12) 閱讀器收到E(ID,Anew,q) 后, 利用先前保存的Snew計算mod (Snew,Nc) 的值確定模和矩陣的初等變換方式, 采取該初等變換方式的逆變換就可確定解密矩陣, 利用解密矩陣根據(jù)公式(2)對E(ID,Anew,q) 解密, 獲得敏感信息ID.
其中E() 代表加密過程, 表示認證過程所傳輸?shù)木鶠槊芪?S代表秘密值, 秘密值的取值會影響密鑰矩陣模值的選取,N代表隨機數(shù),A為加密矩陣,Nc代表集合f(p) 中元素的個數(shù), “mod(Snew,Nc) =Snew%Nc”, 表示Snew除以Nc所得的余數(shù), “‖” 代表字符串連接符號.
BAN 邏輯被稱為“密碼協(xié)議形式化分析之父”. 它是一種基于知識和信仰的形式邏輯分析方法. 本文采用BAN 邏輯分析所提出的RFID 安全認證. 本次推理用到的BAN 邏輯推理規(guī)則:
上述四條推理規(guī)則中所涉及的基本術(shù)語如下:P、Q表示一般意義上的主體,X、Y表示一般意義上的觀點,K表示一般意義上的加密密鑰, (X,Y) 表示X和Y的連接.P|≡X表示P相信X,P?X表示P收到過X, #(X) 表示X是新鮮的,Q|~X表示Q發(fā)送過X,Q|?X表示Q對X有管轄權(quán).
使用BAN 邏輯分析該RFID 安全認證協(xié)議的步驟如下: 本協(xié)議主體為: 標簽T 和閱讀器R. 該協(xié)議的理想化模型:
取key 表示本協(xié)議中標簽和閱讀器之間共享的加密矩陣A及Anew、加密所用到的模值p或q, 則初始假設為:
邏輯推理過程:
(1) M1、A2 根據(jù)規(guī)則R1 可得R|≡T|~{N||S}記作L1;
A3 根據(jù)規(guī)則R2 可得R|≡#(N||S) 記作L2;
L1、L2 根據(jù)規(guī)則R3 可得R|≡T|≡{N||S}記作L3;
L3 和A5 根據(jù)規(guī)則R4 可得R|≡(N||S) 即得G1. 推理完畢.
(2) M2、A1 根據(jù)規(guī)則R1 可得T|≡R|~{N+1||Snew}A,p記作W1;
A4 根據(jù)規(guī)則R2 可得T|≡#(N+1||Snew) 記作W2;
W1、W2 根據(jù)規(guī)則R3 可得T|≡R|≡{N+1||Snew}記作W3;
W3 和A6 根據(jù)規(guī)則R4 可得T|≡(N+1||Snew) 即得G2. 推理完畢.
(3) M3、A2 根據(jù)規(guī)則R1 可得R|≡T|~{ID}記作Y1;
A7、Y1 根據(jù)規(guī)則R3 可得R|≡T|≡{ID}記作Y2;
Y2 和A8 根據(jù)規(guī)則R4 可得R|≡(ID) 即得G3. 推理完畢.
通過BAN 邏輯推理過程, 最終能夠推理出目標G1、G2、G3, 即說明本文提出的基于變模與自更新鑰矩陣的高效RFID 安全認證協(xié)議能夠達到預期目標.
由公式(1)和(2)可知, 密鑰矩陣的加解密過程主要涉及矩陣乘法和取模運算. 首先, 對于標簽來說, 集合f(p) 是預先存儲在標簽內(nèi)的, 即模p的整數(shù)約數(shù)q的個數(shù)對標簽是已知的, 所以取模運算次數(shù)對于標簽來說是計算量較小的操作. 其次, 經(jīng)計算, 本文所提出的基于變模與自更新密鑰矩陣的RFID 安全認證協(xié)議, 其加密過程共涉及n2次乘法與n(n-1) 次加法. 由于乘法運算相比加法運算復雜得多, 有必要減少其乘法運算次數(shù)以提高加密速度. 故本文引入Winograd 算法[19,20], 通過減少密鑰矩陣加解密過程中的乘法運算量提高算法實時性. 對于加密矩陣A模p, 其第i行j列的元素表示為Aij, 那么可應用Winograd 算法對明文t進行加密如下所示:
表1 不同長度的明文加密或解密過程的乘法與加法運算次數(shù)對比Table 1 Comparison of number of multiplication and addition operations in different lengths of plaintext encryption or decryption
一般情況下, 認為閱讀器和后臺服務器的存儲空間都遠強于標簽, 因此本協(xié)議需要重點考慮變模和初等變換結(jié)合之后對標簽的存儲變量個數(shù)的節(jié)省情況.
首先說明由常量模擴展為變量模之后, 標簽內(nèi)需要存儲的模p的整數(shù)約數(shù)個數(shù)情況.
在前面變模密鑰矩陣可行性的證明過程中指出, 模p為合數(shù),q為p的整數(shù)約數(shù). 由于合數(shù)眾多, 不能一一舉例, 又因為最小的合數(shù)是4, 因此在本文中首先利用C 程序找出4 到100 以內(nèi)的所有合數(shù)以及每一個合數(shù)所對應的整數(shù)約數(shù)的個數(shù), 如表2 所示.
由表2 可見, 不同合數(shù)的整數(shù)約數(shù)個數(shù)可能相同, 比如4、9、25、49 這四個合數(shù)的整數(shù)約數(shù)個數(shù)都是3 個. 由于標簽需要存儲的是p的整數(shù)約數(shù)集合f(p), 因此對于具有相同整數(shù)約數(shù)個數(shù)的不同合數(shù)來說,在標簽中需要存儲的f(p) 集合元素個數(shù)是相同的. 故本文在整數(shù)約數(shù)個數(shù)相同的合數(shù)中, 只取其中一個合數(shù)作為代表, 來舉例說明標簽需要預存儲的變模變量的個數(shù).
表2 4 至100 以內(nèi)的所有合數(shù)以及每個合數(shù)對應的整數(shù)約數(shù)個數(shù)Table 2 All composite numbers from 4 to 100 and corresponding integer divisor for each composite number
表3 中選取了比較典型的12 個合數(shù), 并列出他們對應的整數(shù)約數(shù)以及個數(shù). 結(jié)合前文在描述協(xié)議認證過程中已經(jīng)取Nc表示標簽需要存儲的模p的整數(shù)約數(shù)個數(shù), 由協(xié)議的初始條件可知,Nc值會比模p的整數(shù)約數(shù)總個數(shù)Num 少1, 即Nc=Num-1.
表3 12 個典型合數(shù)所對應的整數(shù)約數(shù)以及其整數(shù)約數(shù)個數(shù)Table 3 Integer divisor corresponding to a typical composite of 12 and number of integer divisor
在表4 中對比說明了不同的變模個數(shù)Nc以及不同的明文長度n使用變模密鑰矩陣算法前后標簽需要預存儲的總變量個數(shù)情況, 表格中W1 表示使用變模密鑰矩陣算法后標簽需要預存儲的總的變量個數(shù),W2 表示直接存儲多個密鑰矩陣時標簽需要預存儲的總的變量個數(shù), 取S= (W2-W1)/W2×100%表示使用變模密鑰矩陣算法前后節(jié)省標簽存儲空間的百分比. 例如, 當使用變模密鑰矩陣算法時, 標簽內(nèi)需要存儲明文長度n、n階加密矩陣變量個數(shù)n2、n階解密矩陣變量個數(shù)n2、一個模值p、標簽需要存儲的p的整數(shù)約數(shù)個數(shù)即Nc個變量以及一個使用Winograd 算法過程中預先計算的變量mi, 即W1=n+n2+n2+1+Nc+1=n+2n2+Nc+2. 而當不使用變模密鑰矩陣算法即直接存儲多個密鑰矩陣并想同樣達到Num 種可能性時, 需要存儲Num 種n階加密矩陣變量個數(shù)n2以及Num 種n階解密矩陣變量個數(shù)n2, 即W2=Num×2n2. 利用MATLAB 程序計算不同明文長度n以及不同模p下使用變模密鑰矩陣算法前后的標簽需要預存儲的變量個數(shù), 即得到表4.
表4 使用變模密鑰矩陣算法前后標簽需要預存儲的總變量個數(shù)情況對比Table 4 Comparison of total number of variables pre-stored in tags before and after using variable mode key matrix algorithm
根據(jù)圖1 可知, 變模和初等變換結(jié)合后, 可完成加解密次數(shù)如式(5)所示:
因此根據(jù)圖1 中的構(gòu)建方法可知, 不同明文長度n, 需使用不同的n階密鑰矩陣加解密, 相應密鑰矩陣初等變換方式索引表及其對應逆變換索引表的元素數(shù)量不同, 即X不同. 由于更高階密鑰矩陣的初等變換方式眾多, 不能一一列舉, 故本文只列舉了二階、三階密鑰矩陣初等變換方式索引表中的可選擇數(shù)量,即當n=2 時,X=5; 當n=3 時,X=33. 在不同的n、Nc下可得到不同的K1、K2, 具體如表5 所示.
表5 變模和初等變換結(jié)合起來對標簽內(nèi)預存儲變量個數(shù)的節(jié)省情況對比Table 5 Saving comparison of number of pre-stored variables in tag by combining variable modulus and elementary transformation
對比表4、表5 可知, 在相同明文長度n、相同Nc的情況下, 變模和初等變換結(jié)合起來之后, 節(jié)省的標簽需要存儲變量個數(shù)的百分比均有所提高. 可見無論是變模, 還是密鑰矩陣的初等變換, 均節(jié)省了密鑰存儲空間, 而且變模與密鑰矩陣的自更新使加解密過程的安全性有所提高.
本文協(xié)議安全性能分析與對比如表6 所示.
表6 協(xié)議安全性能比較Table 6 Protocol security performance comparison
(1) 雙向認證: 在協(xié)議認證過程中, 本協(xié)議通過秘密值和隨機數(shù), 首先分別認證閱讀器和標簽是否合法, 確認閱讀器和標簽的合法身份信息后再進行敏感信息處理. 由于認證信息均被加密和隨機化, 故本協(xié)議做到了標簽與閱讀器的雙向認證.
(2) 跟蹤攻擊: 本協(xié)議在認證過程中發(fā)送的數(shù)據(jù)均包含隨機數(shù)和秘密值, 且標簽和閱讀器之間的密鑰矩陣是由秘密值決定, 加密解密過程中密鑰矩陣的模參數(shù)和密鑰矩陣都是可自更新的, 因此保證了所有認證過程中, 標簽和閱讀器互相反饋的信息均為隨機的, 故本協(xié)議中攻擊者無法對標簽進行定位跟蹤.
(3) 拒絕服務攻擊: 若攻擊者在閱讀器和標簽之間大量施加噪聲干擾信號, 有可能導致信道阻塞, 或者由于大量的數(shù)據(jù)請求而導致認證負載過大系統(tǒng)癱瘓, 造成拒絕服務攻擊. 而本協(xié)議先查詢后臺數(shù)據(jù)庫Index, 若查詢不到記為非法標簽則結(jié)束認證. 這種先查詢后認證的方式有效抵御了拒絕服務攻擊.
(4) 假冒攻擊: 分情況討論: 第一, 當攻擊者企圖偽裝成標簽向閱讀器發(fā)送E(N ‖ S,A,p) 時, 閱讀器查詢后臺數(shù)據(jù)庫找不到對應的秘密值S, 隨后記為非法標簽; 第二, 當攻擊者偽裝成閱讀器向標簽發(fā)送E(N+1‖ Snew,A,p) 時, 標簽解密, 驗證隨機數(shù)N不正確, 因此得知閱讀器非法. 故該協(xié)議能夠防范假冒攻擊.
(5) 中間人攻擊: 假設攻擊者想實施中間人攻擊, 則攻擊者需要知道閱讀器和標簽之間發(fā)送的隨機數(shù)和秘密值, 甚至密鑰矩陣, 并能夠造出可以通過雙方認證的數(shù)據(jù), 但是本協(xié)議每一次認證都會更新秘密值,密鑰矩陣的模參數(shù)是根據(jù)秘密值更新的, 密鑰矩陣本身根據(jù)秘密值選取不同的初等變換方式不斷更新, 且標簽內(nèi)部具有偽隨機數(shù)發(fā)生模塊, 攻擊者無法通過標簽和閱讀器的身份認證, 因此避免中間人攻擊.
(6) 重放攻擊: 本協(xié)議中, 標簽和閱讀器之間的認證數(shù)據(jù)由于含有隨機數(shù)而一直保持新鮮性, 且隨著秘密值的更新而更新密鑰矩陣, 攻擊者無法從上一輪截獲的信息中推導出當前的數(shù)值, 而且即使攻擊者獲得當前密鑰矩陣的模q, 攻擊者也不可能根據(jù)約數(shù)q推出模p進而推出密鑰矩陣, 因為同一q值可能是多個模p 的整數(shù)約數(shù), 例如24 同時是p= 24 和p= 48 的整數(shù)約數(shù), 不能根據(jù)q= 24 推出p= 24 還是p= 48, 而且秘密值的不同影響密鑰矩陣初等變換方試的選擇, 因此也不能推出密鑰矩陣的值, 故攻擊者無法進行重放攻擊.
(7) 去同步化攻擊: 假如攻擊者阻攔或者修改了閱讀器與標簽通信的一部分或者全部數(shù)據(jù), 使兩者變得不同步, 遭遇去同步化攻擊. 但是本協(xié)議都是在認證通過以后才進行通信, 且閱讀器中建立了標簽秘密值Index, 保存上一輪的秘密值S, 即保留著密鑰矩陣, 可以確保即使當前認證失敗, 可以用上一輪密鑰矩陣再次計算, 以此來抵抗去同步化攻擊.
(8) 前向安全性: 本協(xié)議認證過程中所傳輸?shù)臄?shù)據(jù)均由隨機數(shù)N 和秘密值S直接參與, 模參數(shù)和密鑰矩陣均可自更新, 因此攻擊者不可能通過本次認證的數(shù)據(jù)計算得出上一次的認證數(shù)據(jù). 因此協(xié)議具有前向安全性.
通過運算次數(shù)效率對比分析表明, 本文所提出的基于變模密鑰矩陣的RFID 安全認證協(xié)議通過Winograd 算法加速后, 大幅度減少標簽內(nèi)協(xié)議運算量, 從而提高標簽認證效率; 經(jīng)過密鑰矩陣模參數(shù)的在線更新節(jié)省了低成本標簽的存儲空間, 通過矩陣初等變換方法使密鑰矩陣可實現(xiàn)自更新, 更提高了協(xié)議的安全性. 經(jīng)BAN 邏輯分析與協(xié)議安全性分析得知, 該協(xié)議能夠?qū)崿F(xiàn)雙向認證且有效抵抗跟蹤攻擊、拒絕服務攻擊、假冒攻擊、中間人攻擊、重放攻擊、去同步化攻擊等多種典型攻擊, 能夠較好的滿足RFID 系統(tǒng)所需的各項安全性. 此協(xié)議通過密鑰矩陣模參數(shù)以及密鑰矩陣本身的在線更新, 實現(xiàn)了不以增加密鑰矩陣的額外存儲量為代價去提高協(xié)議安全性. 因此本文所提出的RFID 安全認證協(xié)議具有低計算量、低存儲量的優(yōu)勢.