www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 嵌入式 > 嵌入式動態(tài)
[導讀]嵌入式系統(tǒng)產(chǎn)品的加密和解密永遠是一對矛盾的統(tǒng)一體。為了保護產(chǎn)品研發(fā)人員的技術(shù)成果,研究新型加密技術(shù)是非常有必要的。這里我們聊聊使用芯片UID加密的方案。

嵌入式系統(tǒng)產(chǎn)品的加密和解密永遠是一對矛盾的統(tǒng)一體。為了保護產(chǎn)品研發(fā)人員的技術(shù)成果,研究新型加密技術(shù)是非常有必要的。這里我們聊聊使用芯片UID加密的方案。

首先需要明確的是,沒有一種加密是“絕對”可靠的,但是加密手段可以增加非法使用者的解密成本,借此來防止技術(shù)被“輕易”盜取。本次以LPC1000的UID加密方案為例進行介紹。

一、LPC1000系列的加密方案

通過分析得出,基于CortexM0或CortexM3內(nèi)核的LPC1000系列MCU通過軟件加密的方法有兩種:

1、使用代碼讀保護機制,限制用戶訪問片內(nèi)Flash;

2、通過芯片UID并添加加密算法使每片MCU內(nèi)的程序具有唯一性。

代碼讀保護機制是通過使能系統(tǒng)中的不同安全級別,以便限制訪問片內(nèi)Flash,本次不做重點介紹。

二、UID加密

UID是唯一標識符(unique identifier),在LPC1000系列微控制器的每一顆芯片都具有全球唯一的標識符,該標識符為128位二進制序列。因此我們可以利用芯片UID的唯一性對程序進行加密,使每一個產(chǎn)品中的程序也具有唯一性,即使非法使用者獲取了MCU中的程序復制到其他芯片中也是不能正常運行的,從而達到保護開發(fā)者的知識產(chǎn)權(quán)不被侵犯和盜用的目的。

三、LPC1000的UID加密方案

基本思路是使用上位機軟件通過編程器讀取芯片的UID,經(jīng)加密算法運算后生成密鑰,下載程序的同時向MCU的Flash中某個地址寫入密鑰;MCU上電后,首先讀取芯片的UID,再通過與上位機相同的加密算法運算后計算出密鑰,并與之前寫入Flash中的密鑰比較,若相同則繼續(xù)執(zhí)行用戶程序,否則跳入死循環(huán)或執(zhí)行程序開發(fā)者指定的代碼。

 

圖1 LPC1000 UID加密方案流程圖

實現(xiàn)此方案需要準備的資源如下。

硬件資源:

• LPC1766FBD100芯片;

• SmartPRO 5000U-PLUS編程器;

• QFP100-NXP適配座;

• SmartCortex M3-1700開發(fā)板(測試用,非必需)。

軟件資源:

• SmartPRO 2008 2.0.56.exe上位機軟件;

• Programmer.rar編程器上位機UID加密補丁;

• Uid.rar編程器上位機UID加密算法;

• LPC1766在Keil4下的工程模板;

• Keil4開發(fā)環(huán)境;

• Microsoft Visual C++ 6.0。

1、下位機

下位機(即LPC1766芯片)上電并初始化后,首先讀取芯片的UID,解析密鑰并與Flash中的密鑰比較判斷后,再繼續(xù)執(zhí)行用戶代碼。這里我們舉例采用的加密算法是將UID的補碼作為密鑰,加密方法比較簡單,用戶可自行對加密算法進行修改,寫出復雜的加密算法。

讀取芯片UID的方法是通過調(diào)用芯片內(nèi)部的IAP函數(shù)實現(xiàn),如圖所示。

 

圖2 讀取UID

2、上位機

在下位機LPC1766的程序編寫完成并生成hex或bin文件后,按照以下步驟對MCU進行加密:

首先,在Microsoft Visual C++ 6.0下編寫加密算法,這里我們已經(jīng)編寫完成,僅需解壓uid.rar并打開其中的VC工程。用戶需要在uid.cpp中的UidAlgorithm函數(shù)中添加自定義算法,如圖。

 

圖3 加密算法工程

加密算法編寫完成后,編譯將生成一個名為uid.dll的算法文件。

第二步,安裝SmartPRO 2008軟件,我們默認安裝在C:Program Files路徑下;

第三步,安裝SmartPRO 2800加密補丁,方法是將Programmer.rar解壓到C:Programd FilesSmartPRO 2008Programmer路徑下,覆蓋原來的文件;

第四步,將加密算法生成的uid.dll文件復制到C:Programd FilesSmartPRO 2008Programmer下,SmartPRO 2008啟動后將會自動調(diào)用uid.dll;

第五步,連接硬件,將LPC1766芯片放入適配座ZY503D中,連接USB通信電纜和電源;

第六步,燒寫文件,啟動SmartPRO 2008軟件,選擇芯片“LPC1766@LQFP100”,打開燒錄文件(在Keil編寫下位機程序時生成的hex或bin文件 )。此時會出現(xiàn)一個如圖4的特殊提示,這是因為Keil編譯器在編譯時沒有將Flash中前8個字單元的內(nèi)容進行代碼有效校驗和的填充而產(chǎn)生該警告,點擊“確定”即可,編譯器在下載過程中會調(diào)用校驗算法自動添加校驗。關(guān)于代碼有效校驗和填充的相關(guān)內(nèi)容請參考LPC1766用戶手冊中“Flash編程”一章的相關(guān)內(nèi)容。

 

圖4 用戶代碼無效提示

第七步,開始下載,點擊“組合”即可,默認執(zhí)行的是擦除、編程、校驗三個步驟的結(jié)合。

成功編程后,如果重新讀取Flash,打開緩沖區(qū),定位到0x00002000處,可以看到已經(jīng)寫入的密鑰。如圖5所示,與此前設(shè)計的加密算法和加密預期效果一致。

 

圖5 緩沖區(qū)查看密鑰

驗證方法:取下適配座中的芯片,焊接到TinyARMT17核心板上,查到SmartCortex M3-1700開發(fā)板底板上,連接P0.11到BEEP插針,如所示。開發(fā)板上電后即可聽到蜂鳴器的鳴叫。以此驗證芯片計算出的密鑰與Flash中寫入的密鑰校驗一致,芯片程序正常運行。

 

圖6 開發(fā)板驗證

經(jīng)此方法向芯片下載程序后,若有產(chǎn)品盜版者試圖將程序讀出然后復制到其他芯片上使用,程序?qū)⑼A粼谂袛嗝荑€是否匹配語句,導致程序不再向下執(zhí)行,從而防止軟件程序被非法使用者盜用。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設(shè)計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計成為提升電機驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實際應用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設(shè)計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉