加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入

AN6088 應(yīng)用說(shuō)明如何在 STM32 MCU 上使用 MCE 進(jìn)行加密/解密

12/17 14:14
963
550.60 KB
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論
  • 資料介紹
    • 介紹
    • MCE(內(nèi)存密碼引擎)概述
    • STM32H7Sx中的MCE實(shí)現(xiàn)
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

介紹

內(nèi)存密碼引擎(MCE)是一種加密外設(shè),它確保了對(duì)外部非易失性或易失性存儲(chǔ)器進(jìn)行實(shí)時(shí)加密和解密。MCE可以保護(hù)位于外部存儲(chǔ)器中的代碼或數(shù)據(jù)。本文檔涵蓋了MCE可以提供保護(hù)的三種用例。

? 原地執(zhí)行(XiP):代碼和數(shù)據(jù)存儲(chǔ)位于非易失性外部存儲(chǔ)器中,而代碼是從外部閃存執(zhí)行的。

? 在外部RAM中加載和運(yùn)行(L&R_Ext):代碼和數(shù)據(jù)存儲(chǔ)位于外部閃存中,該閃存被復(fù)制到外部RAM中以供執(zhí)行。MCE允許保護(hù)外部RAM和閃存存儲(chǔ)器。

? 在內(nèi)部RAM中加載和運(yùn)行(L&R_Int):代碼和數(shù)據(jù)存儲(chǔ)位于外部閃存中,該閃存被復(fù)制到內(nèi)部RAM中以供執(zhí)行。在這種情況下,MCE僅啟用對(duì)外部閃存存儲(chǔ)器的保護(hù)。

這三個(gè)用例基于STM32CubeH7RS固件中的示例作為參考。它們基于ST不可變和OEM可更新的根信任引導(dǎo)解決方案,分別稱為STiRoT和OEMuRoT。

用戶可以根據(jù)定制的OEM不可變和可更新根信任路徑(OEMiRoT + OEMuRoT)定義自己的根信任引導(dǎo)路徑。本文檔僅涵蓋STiRoT+OEMuRoT引導(dǎo)路徑,并不涵蓋自定義定義的OEMiRoT + OEMuRoT引導(dǎo)路徑。

本文檔適用于下表中的產(chǎn)品,這些產(chǎn)品在本文檔的其余部分被稱為STM32H7Sx。

MCE(內(nèi)存密碼引擎)概述

內(nèi)存密碼引擎(MCE)在給定的地址空間中定義了具有特定安全設(shè)置的多個(gè)區(qū)域。這些安全設(shè)置可以涉及加密、權(quán)限或?qū)懭搿K型ㄟ^(guò)加密區(qū)域的系統(tǒng)總線流量都由MCE實(shí)時(shí)管理,如果獲得授權(quán),將自動(dòng)解密讀取和加密寫入。

每個(gè)MCE可以定義多達(dá)四個(gè)區(qū)域,粒度為4 K字節(jié)。MCE支持可以應(yīng)用于不同區(qū)域(特權(quán)、寫入)的訪問(wèn)過(guò)濾功能。請(qǐng)參閱下圖。

下表列出了MCE支持的功能。當(dāng)選擇流密碼時(shí),重要的是在加密整個(gè)區(qū)域后立即激活寫保護(hù)(只讀區(qū)域)。

STM32H7Sx的實(shí)現(xiàn)定義了三個(gè)連接到外部?jī)?nèi)存接口的MCE實(shí)例。當(dāng)MCE與XSPI一起使用時(shí),必須將閃存控制器設(shè)置為內(nèi)存映射模式。此外,使用DMA執(zhí)行以16字節(jié)突發(fā)方式寫入閃存也是必須的。表2詳細(xì)列出了三個(gè)MCE實(shí)例之間的主要實(shí)現(xiàn)差異。

STM32H7Sx中的MCE實(shí)現(xiàn)

STM32H7Sx的實(shí)現(xiàn)定義了三個(gè)連接到外部?jī)?nèi)存接口的MCE實(shí)例。當(dāng)MCE與XSPI一起使用時(shí),必須將閃存控制器設(shè)置為內(nèi)存映射模式。還必須使用DMA以16字節(jié)突發(fā)的方式執(zhí)行對(duì)閃存的寫操作。

在STM32H7Sx的實(shí)現(xiàn)中,MCE(Memory Cryptographic Engine)保護(hù)存儲(chǔ)在外部?jī)?nèi)存中的代碼或數(shù)據(jù)的機(jī)密性(四個(gè)區(qū)域/內(nèi)存)。MCE外設(shè)實(shí)例與xSPI外設(shè)實(shí)例的連接方式如下:

? MCE1連接到xSPI1內(nèi)存接口,該接口可以連接到NOR閃存或PSRAM。

? MCE2連接到xSPI2內(nèi)存接口,該接口可以連接到NOR閃存或PSRAM。

? MCE3連接到FMC內(nèi)存接口,該接口可以連接到PSRAM、SDRAM或FRAM。

xSPI1和xSPI2連接到XSPIM(xSPI IO管理器),它允許外部?jī)?nèi)存(NOR閃存或PSRAM)的復(fù)用連接。可以考慮以下幾種使用情況:

? XSPI1映射到端口1,XSPI2映射到端口2(直接模式)。

? XSPI1映射到端口2,XSPI2映射到端口1(交換模式)。

? 兩個(gè)XSPI驅(qū)動(dòng)一個(gè)外部?jī)?nèi)存。

– XSPI1和XSPI2都映射到端口1,帶仲裁(復(fù)用模式到端口1)。

– XSPI1和XSPI2都映射到端口2,帶仲裁(復(fù)用模式到端口2)。

? 一個(gè)XSPI驅(qū)動(dòng)兩個(gè)外部?jī)?nèi)存。

在安裝任何加密鏡像之前,MCE加密/解密必須考慮相應(yīng)的IO管理器使用案例/模式。STM32CubeH7RS固件根據(jù)XSPIM的前兩個(gè)使用案例提供了模板。

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

相關(guān)資料