夏璇 陳柏溈 鐘衛東
武警工程大學 陜西 西安 710086
根據側信道攻擊的攻擊侵入程度,可分為非侵入式攻擊、半侵入式攻擊、侵入式攻擊等。侵入式攻擊是指攻擊者能夠直接接觸密碼芯片的內部組件,通過破壞芯片的鈍化層獲得信息,將探針插入數據總線來獲得傳輸的數據。當檢測到入侵時可將全部內部數據清零來防御。半侵入式攻擊是指攻擊者不必破壞芯片鈍化層,而采用激光、X光等對芯片進行照射攻擊,導致設備產生故障間接獲取秘密信息或者直接讀取秘密信息。非侵入式攻擊的開銷最小、不留痕,是設備安全的最大風險隱患。非侵入式攻擊常利用設備運行時的電磁場變化等信息,側信道信息獲取方便,是最廣泛應用的攻擊形式[1]。
按攻擊方式分類,側信道攻擊可劃分為計時攻擊、電磁攻擊、故障攻擊、緩存攻擊等。
計時攻擊利用加密算法所采用的各種運算執行時間上的差異來恢復密鑰信息。密碼算法在執行運行時間不固定的操作時,有限域乘法、冪指數運算等其具體的運行時間是由所涉及的操作數決定的。由于每步的操作數均依賴于所使用的主密鑰,所以算法的運行時間在一定程度上是依賴于所使用的密鑰的。據此,根據算法運行時間上的差異與所使用的主密鑰間的關系,利用統計方法分析時間差異即可恢復部分或全部密鑰信息。
電磁攻擊利用電磁探針捕獲密碼設備運行時的電磁場變化,電磁的變化與密碼設備運行的加密信息,秘鑰等高度相關,可以通過對電磁場的變化數據進行分析,還原出秘鑰或秘密信息。
故障攻擊多通過改變外界物理環境影響設備正常運行或在設備內部產生時鐘毛刺、電壓突變等誘使密碼設備產生故障,導致錯誤執行指令、跳過指令、數據誤讀等操作,并利用故障信息恢復密鑰或秘密信息。
緩存攻擊主要利用設備加密過程中的大量數據都存儲在緩存中且緩存數據與正在執行的操作關聯性強。攻擊者可以利用設備運行緩存數據是否命中需要不同的運行時間來判斷設備執行的操作恢復密鑰,或者攻擊者誘使緩存故障,收集故障信息來恢復密鑰。
攻擊者收集到數據之后,將對收集到的數據進行進一步分析,按照不同的分析方法可劃分為簡單側信道攻擊、差分側信道攻擊、相關功耗攻擊、模板攻擊等。
簡單側信道攻擊數據源多為設備運行時產生的功耗信息。攻擊者利用一條側信道功耗曲線,即只利用加密設備執行的指令與側信道輸出之間的關系來恢復密鑰。但由于在實際環境中信道輸出時將有噪聲干擾,所以簡單側信道攻擊不易成功實現。
因此人們提出了使用統計手段的差分側信道攻擊。在差分側信道攻擊中,攻擊者主要利用猜測密鑰仿真功耗矩陣與實際功耗矩陣之間的統計關系,當猜測的密鑰正確時,所對應的兩組數據做差后就會產生明顯的尖峰。攻擊者一般同時利用多條側信道輸出軌跡,再利用統計方法分析這些輸出與加密數據之間的關系來恢復密鑰信息。
相關功耗攻擊通過建立漢明距離模型來量化數據之間的變化,而設備運行的功耗信息與數據變化呈線性關系。在本質上差分功耗攻擊和相關功耗攻擊都是要發掘功耗與數據之間的相關性,主要的區別在于比較仿真能量消耗矩陣與實際功耗矩陣的方式不一樣。差分功耗攻擊使用對曲線進行分類后做差值,而相關功耗攻擊對仿真能量與實際功耗曲線做相關性分析。實際功耗矩陣的每一列與仿真能量消耗矩陣的每一列進行相關系數計算,就可以得到一個相關系數矩陣。相關系數的值越大,則匹配程度越高。矩陣中最大的相關系數所在的行數就是正確的密鑰猜測值。
模板攻擊被認為是最強的側信道攻擊方法。模板攻擊利用密鑰和數據對來共同建立模板。此方法通過列舉每一個可能的中間值和數據對并結合來進行模板庫的構建。利用已經建立好的模板庫對密鑰未知的待攻擊能量消耗曲線進行匹配攻擊。匹配方法包括多元正態分布法,最小二乘法和相關系數法等。
面對側信道攻擊的防御策略主要分為隱藏和掩碼兩類。
隱藏的原理是阻斷加密過程密碼算法中間值與秘密信息的相關性。主要方法有:
(1)互補邏輯元件,通過平衡電路各個元件的功耗隱藏中間值與秘密信息的相關性。該方法成本較高,電路占用面積大,吞吐量低。
(2)插入隨機時間片,在正常密碼算法中加入空指令引起設備加密過程的延遲,不影響最終加密結果的正確性。此時采集的功耗曲線無法對齊,攻擊者分析難度大大增加。
(3)亂序,分析密碼算法中各操作順序的影響,將可改變順序的操作進行順序調換。
掩碼的原理是將加密過程密碼算法中間值和秘密信息相關性隨機化。主要方法有:
(1)一階掩碼,將密碼算法中間值與布爾掩碼或乘法掩碼異或,隱藏密碼算法中間值與密碼信息的相關性。
(2)高階掩碼,通過門限方案將秘密信息進行分割,將敏感信息劃分為多個部分的異或值,降低密碼算法中間值與秘密信息的相關性。
隨著5G網絡的不斷架設,萬物互聯的物聯網時代即將到來,側信道攻擊技術對物聯網設備威脅不容忽視。為保護物聯網信息安全,不僅保證密碼算法的優良數學抗攻擊性能,還要考慮其實際實現過程中各類側信道信息泄露引起的安全威脅。要在物聯網密碼算法輕量化的基礎上,提出能滿足安全性需求的防御方案。這方面工作可以以輕量級密碼算法的一階、二階實現為基礎,不斷優化算法占用的電路面積和消耗的時鐘周期,在輕量化、安全性、吞吐量方面達到良好平衡。