本文導(dǎo)讀
ZDP14x0系列芯片是內(nèi)置開(kāi)源GUI引擎的圖像顯示專用驅(qū)動(dòng)芯片,在實(shí)際產(chǎn)品開(kāi)發(fā)中需要加密保護(hù),防止應(yīng)用程序被讀取和盜用,本文將介紹如何實(shí)現(xiàn)UID加密安全啟動(dòng)。
UID加密安全啟動(dòng)原理
ZDP14x0系列芯片具有64位全球唯一UID,基于UID實(shí)現(xiàn)加密可以保證程序移植到另一個(gè)芯片無(wú)法運(yùn)行,詳細(xì)加密啟動(dòng)實(shí)現(xiàn)原理如圖1。
芯片上電運(yùn)行,先從加密文件中讀取加密數(shù)據(jù),然后將加密數(shù)據(jù)與初始化數(shù)據(jù)對(duì)比是否一致。若一致,表明程序是首次運(yùn)行,則讀取芯片UID并進(jìn)行加密計(jì)算,并將加密數(shù)據(jù)寫(xiě)入加密文件覆蓋初始化數(shù)據(jù)。若不一致,表明程序已運(yùn)行過(guò),需要讀取芯片UID數(shù)據(jù)進(jìn)行加密運(yùn)算得到加密數(shù)據(jù),然后與加密文件的數(shù)據(jù)進(jìn)行對(duì)比。若數(shù)據(jù)一致,證明程序與芯片綁定正常,UI正常運(yùn)行;否則程序異常,報(bào)警不運(yùn)行UI。
圖1 UID加密原理
UID接口函數(shù)介紹
了解了UID加密安全啟動(dòng)原理,接下來(lái)看看UID的接口函數(shù)。ZDP14x0 UID分為64位全球唯一UID和64位用戶可自定義UID。UID接口函數(shù)包括全球UID獲取接口、自定義UID獲取接口、自定義UID設(shè)置接口,需要注意的是自定義UID只能設(shè)置一次,鎖定后無(wú)法修改。
圖2 UID接口函數(shù)
3個(gè)UID接口函數(shù)的入口參數(shù)都是chip_uid_t類型的結(jié)構(gòu)體,其定義如圖3。
圖3 chip_uid_t類型結(jié)構(gòu)體
UID加密程序?qū)崿F(xiàn)
了解了UID加密安全啟動(dòng)原理和UID函數(shù)接口,接下來(lái)看看安全啟動(dòng)程序的實(shí)現(xiàn),詳細(xì)程序如圖4。
圖4 UID加密安全啟動(dòng)程序
程序開(kāi)始部分定義了初始化數(shù)據(jù),加密文件存放的路徑,以及一些局部變量。然后從指定目錄讀取加密文件數(shù)據(jù),若文件讀取失敗則報(bào)警提示不往下運(yùn)行,讀取成功則對(duì)比是否和初始化數(shù)據(jù)一致。若與初始化數(shù)據(jù)一致,則調(diào)用加密文件寫(xiě)接口函數(shù),讀取UID進(jìn)行加密并寫(xiě)入加密文件。若與初始化數(shù)據(jù)不一致,則調(diào)用加密文件校驗(yàn)接口函數(shù),與UID加密數(shù)據(jù)進(jìn)行對(duì)比校驗(yàn)。 加密文件寫(xiě)接口函數(shù)實(shí)現(xiàn)如圖5,調(diào)用全球唯一UID讀取接口讀取UID,讀取成功后做加密計(jì)算,然后將加密數(shù)據(jù)寫(xiě)入到加密文件。操作成功則繼續(xù)運(yùn)行,否則報(bào)警提示。
圖5 UID加密安全啟動(dòng)程序
加密文件校驗(yàn)接口函數(shù)實(shí)現(xiàn)如圖6,調(diào)用全球唯一UID讀取接口讀取UID,讀取成功后做加密計(jì)算,然后與加密文件數(shù)據(jù)對(duì)比。數(shù)據(jù)一致則繼續(xù)運(yùn)行,否則報(bào)警提示。
圖6 加密文件校驗(yàn)程序
UID加密Demo示例
本UID加密安全啟動(dòng)示例已上傳到gitee,在資料中的路徑為hmi_zdp14x0?3.UI_build_projectuser_projects uid_secret_boot_demo,歡迎下載體驗(yàn)。
-
芯片
+關(guān)注
關(guān)注
460文章
52520瀏覽量
441170 -
驅(qū)動(dòng)芯片
+關(guān)注
關(guān)注
13文章
1411瀏覽量
56439 -
GUI
+關(guān)注
關(guān)注
3文章
679瀏覽量
41251
原文標(biāo)題:ZDP14x0系列小技巧-如何實(shí)現(xiàn)UID加密安全啟動(dòng)
文章出處:【微信號(hào):立功科技,微信公眾號(hào):立功科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
LPC1000的UID加密方案

評(píng)論