一般來說,存儲在MCU的程序二進制代碼是非經加密的,如果讀出來經反匯編,是可以閱讀的。如果有一個MCU能將片內存儲的二進制程序代碼或數(shù)據(jù)以密文存儲,邊解密邊運行,外部不可見,您是不是很驚喜?
PRINCE是什么?
PRINCE看做是Flash控制器上面的加密引擎,一旦使能,PRINCE就會過濾Flash讀寫路徑的數(shù)據(jù),并進行實時加解密。
在LPC55S69內部含有640KB Flash空間,PRINCE將其分成3個部分,分別是256KB、256KB、128KB。每個部分加密用的鑰匙是單獨提供,這可以保證即使一個部分的鑰匙被破解了,其他部分依舊安全。
在每個部分里面,PRINCE 又繼續(xù)細分成更小的空間,每個空間僅僅8KB大小。這樣可以讓客戶使用起來更靈活,可以讓第n個8KB空間加密,而第n+1個8KB空間不加密,靈活控制加密區(qū)域。
PRINCE的加密算法和秘鑰
PRINCE既然是一個數(shù)據(jù)加密引擎,那么它就有加密算法和秘鑰。
PRINCE采用一種對稱加密算法,加密塊是64位,秘鑰是128位。采用CTR模式,需要初始化向量和秘鑰。
與另一個對稱加密AES加密對比,PRINCE最大的優(yōu)勢是延時極小,不需要額外的RAM空間。不用將數(shù)據(jù)搬到RAM中加密或者解密完再搬回來。這將給用戶帶來很大的方便性。
值得關注的是,PRINCE的秘鑰是通過片內的PUF模塊來產生的。秘鑰直接通過硬件總線傳輸,軟件無法訪問。掉電之后秘鑰自動消失,使用時再操作PUF產生。這種方式下,攻擊者很難找到秘鑰,更難解密Flash中的密文,從而讓數(shù)據(jù)更加安全。
PRINCE啟動的四個步驟
啟用PRINCE功能大致有四個步驟:
設置PRINCE加解密的大區(qū)域和子區(qū)域;
初始化PUF,讓PUF產生秘鑰和初始化向量給到PRINCE;
使能PRINCE;
編程或者讀寫Flash。
PRINCE對程序區(qū)加密的示例。將一個NXP Logo的圖片數(shù)據(jù)放入程序區(qū),在顯示屏上顯示數(shù)據(jù)和圖片如下:
加密之后的數(shù)據(jù)和圖片,就是一堆亂碼了,如下所示:
-
芯片
+關注
關注
456文章
51283瀏覽量
427812 -
程序
+關注
關注
117文章
3798瀏覽量
81461
原文標題:新技能!把你的程序密文存儲在芯片內!
文章出處:【微信號:Zlgmcu7890,微信公眾號:周立功單片機】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
選購真空共晶爐也有門道,快來get新技能!
![選購真空共晶爐也有門道,快來<b class='flag-5'>get</b><b class='flag-5'>新技能</b>!](https://file1.elecfans.com/web3/M00/05/65/wKgZO2d_QYmAA_49AABG2O_vzJs685.png)
將電腦硬盤變成云存儲,怎么做到把多余電腦硬盤變成云存儲
![將電腦硬盤變成云<b class='flag-5'>存儲</b>,怎么做到<b class='flag-5'>把</b>多余電腦硬盤變成云<b class='flag-5'>存儲</b>](https://file1.elecfans.com/web3/M00/04/FB/wKgZO2d7ZRWAdoDyAAARsrX7M2g682.png)
把電腦作為云存儲,如何把電腦作為云存儲?
![<b class='flag-5'>把</b>電腦作為云<b class='flag-5'>存儲</b>,如何<b class='flag-5'>把</b>電腦作為云<b class='flag-5'>存儲</b>?](https://file1.elecfans.com/web3/M00/03/8E/wKgZPGdqSDOARGN_AAIOJJjAFsk306.png)
rsync 的免密傳輸(同步)文件
淺談加密芯片的一種破解方法和對應加密方案改進設計
淺談加密芯片的一種破解方法和加密方案改進設計
劃片機在存儲芯片切割中的應用優(yōu)勢
![劃片機<b class='flag-5'>在</b><b class='flag-5'>存儲芯片</b>切割中的應用優(yōu)勢](https://file1.elecfans.com/web3/M00/01/E6/wKgZPGdZUVOAEAjpAADigLuQ17M407.png)
一文帶你了解什么是SD NAND存儲芯片
存儲芯片有哪些類型
鴻蒙數(shù)據(jù)防泄漏 DLP Data Loss Prevention Kit簡介
![鴻蒙數(shù)據(jù)防泄漏 DLP Data Loss Prevention Kit簡介](https://file1.elecfans.com/web2/M00/F8/A0/wKgaomaFRI-AXevvAAJO6NWlGXU482.jpg)
在定時器內使用浮點運算的PID控制算法,程序就會重啟,為什么?
存內計算芯片的基石-存儲介質匯總
![存<b class='flag-5'>內</b>計算<b class='flag-5'>芯片</b>的基石-<b class='flag-5'>存儲</b>介質匯總](https://file1.elecfans.com/web2/M00/E5/F9/wKgZomZFtmSAYXJkABXaTsR3-OI714.png)
存內計算芯片研究進展及應用
![存<b class='flag-5'>內</b>計算<b class='flag-5'>芯片</b>研究進展及應用](https://file1.elecfans.com/web2/M00/E6/DF/wKgaomZFtOWAUuK5AA-8Vgn6BQ0843.png)
評論