本期介紹的是HPM6000系列中security flash方面內容。希望可以幫助用戶了解先楫為了用戶信息安全方面所做的設計。
Security Flash 模塊概述
首先進行一些名詞解釋: 在線執行 (Execution In Place):可以直接訪問外部存儲器,不需要把外部存儲器數據先復制到內存再執行的訪問的方式,稱為在線執行 (Execution InPlace); DEK(Data Encryption Key):數據加密秘鑰,用戶加密存儲器上數據/代碼的秘鑰;KEK(Key-Encryption Key):密鑰加密密鑰,加密 DEK 的秘鑰。EXIP 在線解密引擎介紹 先楫半導體 HPM6000 系列 MCU 設計的 EXIP 在線解密引擎支持在線執行功能,并且可以對加密的外部 NOR Flash 進行實時解密,實現在線實時解密執行,EXIP 主要特性有: (1)支持 AES-128 CTR 模式解密EXIP 支持 AES-128 CTR 模式解密,密鑰長度為 128 位。密鑰存放在寄存器 RGNx_KEY0、RGNx_KEY1、 RGNx_KEY2、RGNx_KEY3 中。AES-128 CTR 模式要求使用相同密鑰加密的數據,每一個數據塊對應的計數器 Counter 值不能重復,Counter 長度與 AES 數據塊長度相同,也為 128位。EXIP 對每個 128 位的數據塊,其 Counter 由數據塊的 32 位系統地址和64 位的 NONCE 組成,其中 NONCE 存放在 RGNx_CTR0 和 RGNx_CTR1 中。(2)支持 4 個區段,每個區段可以使用不同的密鑰加密 (3)支持通過 Key Blob 封裝數據加密密鑰等敏感信息(符合 RFC3394 標準) (4)支持硬件解封 Key Blob(符合 RFC3394 標準) (5)支持從 OTP 讀取用于解封 Key Blob 的 KEKXPI NOR 啟動鏡像布局介
XPI NOR 啟動鏡像布局
如上圖所示,完整的 XPI NOR 啟動鏡像有 EXIP BLOB、XPI 配置選項、FW BLOB、固件頭和固件組成,其中虛線框為可選內容,實線框為必須包含內容。
要實現加密鏡像,則鏡像頭部必須包含 EXIP BLOB 內容,該部分內容使用RFC3394 定義的密鑰封裝和密鑰解封算法,通過 KEK 加密后以密文形式存放在 Flash 中,以保護 EXIP 解密用的 DEK 和相關敏感數據。
Security Flash 系統流程介紹
Security Flash 原理示意框圖如上圖所示,Security Flash 流程包含三個方面:
(1)用戶生成加密鏡像,使能在線加密執行功能;(2)EXIP 解密 EXIP BLOB 得到 DEK 等解密信息;(3)EXIP 使用 AES-128 CTR 模式在線解密 Flash 密文固件。 當 OTP 中 ENCRYPT_XIP 字段置為 1,BootROM 啟動加密原地執行功能,BootROM 會 在 XPI NOR 啟 動 中 強 制 打 開 EXIP , 并 嘗 試 用 EXIP0_KEK(XPI_INSTANCE 值為 0)或者 EXPI1_KEK(XPI_INSTANCE 值 為 1)解密EXIP Blob。當 EXIP BLOB 解密無誤后,ROM 會根據 EXIP BLOB 中的信息配置對應的解密信息,將恢復的 DEK、NONCE、加密區域的開始和結束地址信息載入RGNx 對應的寄存器。當 EXIP BLOB 解密無誤后,EXIP 即可根據 AES-128CTR 模式執行原地解密執行操作。
性能對比測試
對于加密對執行環節的影響,先楫做了簡單的測試對比,在明文和密文的單核測試中測試程序條件:(1)關閉所有 Cache,包括 D-Cache 和 I-Cache (2)循環運行 600 次特定數學計算,得出運行消耗時間測試結果如下表:
可見,相同軟硬件平臺下,加密鏡像執行對處理器性能并沒有實質影響
注意:由于加密環節涉及到對OTP的燒寫,可能一個疏失造成芯片無法正常啟動。因此先楫建議開發者在有實際需要時聯系先楫,這樣可以得到更好的支持。
-
FlaSh
+關注
關注
10文章
1638瀏覽量
148188
發布評論請先 登錄
相關推薦
評論