咸 凜,郝 嘉
(中國電子科技集團第三十研究所,四川 成都 610000)
PUF是近年來安全保密領域的新概念,因其自身特殊性,非常適合于解決目前存在的信息安全問題,于是成為安全領域的研究熱點。由于它在系統認證和密鑰生成等方面具有廣泛的潛在應用前景,因此研究PUF在實際密碼系統中的使用,既可以更好地理解和應用PUF,也便于在以后研究和開發中有效提升密碼系統的安全性。
在傳統的PBE系統中,密鑰通過“鹽(salt)+口令”的方式進行生成保護,其中“鹽”由偽隨機數發生器產生。PBE系統通過鹽和口令生成密鑰加密密鑰(Key Encrypting Key,KEK),再使用KEK對用戶的內容加密密鑰(Contents Encrypting Key,CEK)進行加密保護,最后PBE將鹽與加密保護后的CEK數據存儲在系統中的非易失存儲器中。圖1顯示了現有PBE系統密鑰的生成方式。

圖1 現有PBE系統密鑰生成
在PBE系統中,偽隨機數發生器用于產生系統密鑰保護使用的“鹽”,而鹽在PBE系統中用來保護KEK,防御字典攻擊[1]??梢姡}的安全將直接影響整個系統的安全性。
現有偽隨機數生成器大都基于公開算法,因此只要獲得偽隨機數的生成種子,攻擊者就可以輕易偽造一個與原偽隨機數發生器響應行為一模一樣的克隆偽隨機數發生器,從而獲得PBE系統的鹽。攻擊者在獲得鹽后,即可根據字典數據生成大量候選KEK,解密加密的CEK,大幅度縮減破譯嘗試時間。在獲得鹽和破譯的CEK后,攻擊者還可以完美克隆PBE系統,進而對整個密碼密鑰系統造成更大破壞。
物理不可克隆函數(Physical Unclonable Function, PUF)是指對一個物理實體輸入一個激勵,利用其不可避免的內在物理構造的隨機差異輸出一個不可預測的響應?,F實中,每一個物理對象在加工制造過程中由于制造工藝的局限性,在物理對象內部會引入一些隨機差異(變化),且這些隨機差異的引入在制造過程中是不可控、無法避免也無法復 制的[2]。
因此,在PBE系統中使用PUF,從信息安全的角度來看,具有以下優勢。
(1)具有天然的物理防克隆攻擊特性。由于制造工藝的局限性,無法復制兩個一樣的PUF設備。在PBE系統中使用PUF,可以使得整個硬件具有物理不可克隆性。
(2)使用具有模糊提取模塊的PUF比使用非易失性存儲單元能更安全地保護鹽。在最初的生成階段,給PUF輸入一個激勵并產生一個響應,然后模糊提取算法根據響應產生一個包含額外信息的鹽,其中額外信息被稱為輔助數據?;謴碗A段,只需要輸入輔助數據和激勵給模糊算法,算法即可從PUF中重建相同的鹽,再使用鹽即可重建KEK。由于鹽可以通過PUF恢復,因此只需要存儲輔助數據即可。
(3)由于隨機性由設備本身提供,不需要傳統非易失性存儲步驟,額外地提供了對探測攻擊和其他可能的側信道攻擊的安全性。使用PUF可以在規定的時間內派生出安全密鑰,且在使用后刪除。因此,密鑰不需要永久保存成數字格式,而只當需要操作時出現在非易失性存儲器中。這限制了攻擊者提取設備中密鑰的攻擊時限,有效改善了密鑰存儲的安全性,同時大大降低了密鑰管理和維護成本[3]。
可見,在PBE系統中使用PUF生成和保護密鑰,可以有效抵抗克隆攻擊。
初始化階段,采用模糊注冊算法[4]使PUF生成鹽的過程如圖2所示。首先,激勵進入PUF產生響應值;其次,響應值與糾錯碼字異或產生輔助數據;最后,將產生的響應值作為鹽送入后級使用,同時存儲產生的安全數據。

圖2 PUF生成鹽和輔助數據
基于PUF的PBE系統初始化過程如圖3所示。
基于PUF的PBE初始化包括以下三個步驟:
(1)生成鹽和KEK,激勵輸入PUF產生輔助數據和鹽,將用戶口令和鹽一起輸入單向散列函數,得到的散列值就是KEK;
(2)加密會話密鑰,KEK生成完成后,使用KEK對CEK進行加密;
(3)丟棄KEK,將并加密后的CEK和輔助數據一起保存在安全的地方,KEK可通過輔助數據和口令重建。
PBE初始化完成后,正式使用時需要采用模糊提取算法[5]通過輔助數據重建鹽,再利用鹽和口令重建KEK,進而解密得到CEK。
鹽的重建過程如圖4所示。首先,將與初始化過程相同的激勵輸入PUF產生響應值;其次,將響應值與輔助數據異或產生糾錯碼;再次,將糾錯碼送入解碼器通過糾錯算法進行糾錯;最后,將解碼器產生的糾錯碼與輔助數據異或產生響應,此時的響應即是鹽。

圖4 鹽的重建
PBE系統在PUF完成鹽的重建后即可恢復KEK,進入正常工作流程?;赑UF的PBE系統的工作流程如圖5所示。

圖5 基于PUF的PBE系統工作流程
基于PUF的PBE系統工作流程包括以下三個步驟:
(1)重建KEK,利用輔助安全數據和PUF,使用模糊提取算法重建鹽,再將鹽和用戶口令輸入單向散列函數,重建KEK;
(2)解密會話密鑰,利用重建的KEK密鑰對加密存儲的會話密鑰進行解密,恢復會話密鑰;
(3)使用解密得到的會話密鑰完成消息的加解密。
需要特別注意,傳統PBE系統在使用時,用戶只需要正確輸入口令即可正常使用PBE系統。相較于傳統PBE系統,基于PUF的PBE系統除了要求用戶在使用時正確輸入口令外,還需要輸入與初始化階段一致的正確激勵。如果缺少激勵,即便用戶輸入正確口令,PBE系統也無法正常使用。
由于基于PUF的PBE系統具有這樣一種“激勵”的特性,可以將“激勵”與身份認證、接入鑒權等安全功能進行拓展綁定。用戶想獲得正確的激勵則,需要通過相關的安全檢查,進一步提升整個PBE系統的安全性。同時,由于鹽的重建依賴于輔助數據和PUF對輸入激勵產生的物理響應,因此可以將輔助數據、激勵甚至加密后的CEK存放在專門的服務器上,只在使用時下發,最大程度減少PBE系統攜帶的密碼資源,保障PBE系統的安全。即便PBE系統遇到了丟失或被攻擊者捕獲,由于PUF具有物理不可克隆性,攻擊者也無法克隆PBE系統,最大程度減少了系統面臨的安全風險。
在PBE系統中使用PUF,為PBE系統的密鑰管理與安全增強提供了一種新思路。區別于傳統的密鑰提取與管理技術,基于PUF的PBE系統將物理特性與密鑰生成管理結合,賦予了系統良好的抗攻擊性。相比傳統密鑰,基于PUF的PBE系統可以攜帶極少密碼資源,因此具有管理成本低、隱秘性強的特點,同時又由于繼承了PUF技術的天然特性,系統還具有防止字典攻擊和克隆攻擊的優點。隨著PUF技術的進一步成熟,PUF技術有望在越來越多的密碼系統中得到應用,并作為重要的安全技術手段顯著增強密碼系統的安全性。