一般來說,存儲在MCU的程序二進制代碼是非經加密的,如果讀出來經反匯編,是可以閱讀的。如果有一個MCU能將片內存儲的二進制程序代碼或數據以密文存儲,邊解密邊運行,外部不可見,您是不是很驚喜?
PRINCE是什么?
PRINCE看做是Flash控制器上面的加密引擎,一旦使能,PRINCE就會過濾Flash讀寫路徑的數據,并進行實時加解密。
在LPC55S69內部含有640KB Flash空間,PRINCE將其分成3個部分,分別是256KB、256KB、128KB。每個部分加密用的鑰匙是單獨提供,這可以保證即使一個部分的鑰匙被破解了,其他部分依舊安全。
在每個部分里面,PRINCE 又繼續細分成更小的空間,每個空間僅僅8KB大小。這樣可以讓客戶使用起來更靈活,可以讓第n個8KB空間加密,而第n+1個8KB空間不加密,靈活控制加密區域。
PRINCE的加密算法和秘鑰
PRINCE既然是一個數據加密引擎,那么它就有加密算法和秘鑰。
PRINCE采用一種對稱加密算法,加密塊是64位,秘鑰是128位。采用CTR模式,需要初始化向量和秘鑰。
與另一個對稱加密AES加密對比,PRINCE最大的優勢是延時極小,不需要額外的RAM空間。不用將數據搬到RAM中加密或者解密完再搬回來。這將給用戶帶來很大的方便性。
值得關注的是,PRINCE的秘鑰是通過片內的PUF模塊來產生的。秘鑰直接通過硬件總線傳輸,軟件無法訪問。掉電之后秘鑰自動消失,使用時再操作PUF產生。這種方式下,攻擊者很難找到秘鑰,更難解密Flash中的密文,從而讓數據更加安全。
PRINCE啟動的四個步驟
啟用PRINCE功能大致有四個步驟:
設置PRINCE加解密的大區域和子區域;
初始化PUF,讓PUF產生秘鑰和初始化向量給到PRINCE;
使能PRINCE;
編程或者讀寫Flash。
PRINCE對程序區加密的示例。將一個NXP Logo的圖片數據放入程序區,在顯示屏上顯示數據和圖片如下:
加密之后的數據和圖片,就是一堆亂碼了,如下所示:
-
芯片
+關注
關注
459文章
52169瀏覽量
436100 -
程序
+關注
關注
117文章
3823瀏覽量
82399
原文標題:新技能!把你的程序密文存儲在芯片內!
文章出處:【微信號:Zlgmcu7890,微信公眾號:周立功單片機】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
劃片機在存儲芯片制造中的應用

國芯科技與信大壹密聯合推出抗量子密碼芯片

解鎖BNC插頭拆卸新技能,輕松應對維修難題

紫光展銳V8850芯片榮獲國密一級安全認證
選購真空共晶爐也有門道,快來get新技能!

把電腦作為云存儲,如何把電腦作為云存儲?

rsync 的免密傳輸(同步)文件
淺談加密芯片的一種破解方法和對應加密方案改進設計
淺談加密芯片的一種破解方法和加密方案改進設計
一文帶你了解什么是SD NAND存儲芯片
存儲芯片有哪些類型
鴻蒙數據防泄漏 DLP Data Loss Prevention Kit簡介

評論