新四季網

基於安全mcu的嵌入式軟體程序的加密系統的製作方法

2023-09-23 06:39:25 2

專利名稱:基於安全mcu的嵌入式軟體程序的加密系統的製作方法
技術領域:
本發明涉及一種嵌入式電子系統固件程序保護裝置及方法,尤其涉及一種 基於安全MCU的嵌入式軟體程序的加密系統。
背景技術:
嵌入式電子產品已經日益普及,成為日常生活中不可缺少的一部分。安裝
在硬體中的固件是存儲電子設備執行基本操作所需信息的軟體,通常是採用c
語言或彙編語言經過編譯器編譯得到的二進位代碼,寫入到存儲器中(如Flash 或R0M),而非法複製存儲器中的固件也相當容易。
另一方面絕大多數的電子產品都採用相同的解決方案,各廠商間的硬體和 軟體平臺都相同,從而造成有部分人出於某種目的,應用別人的硬體平臺來燒 錄自己的應用程式,或者從Flash中讀取應用程式二進位代碼來用於自己的硬 件平臺,進行仿製。
目前採用的一種加密方法是採用在ROM存儲器的一個固定地址保存一個固 定的ID號,在固件程序啟動後,讀取ID號進行驗證,此種方法在防止仿製起 到了一定的作用,但由於複製存儲器中的內容相當容易,在知道採用的加密方 法後,產品仿製也是相當容易的,另一方面,採用此種加密辦法,對於防止在 其硬體平臺上運行其它固件程序起不到任何作用。
加密的另一種方法是對固件程序二進位代碼進行加密,在運行固件程序之 前首先進行解密。這種加密方法實施方法之一是額外開發一套解密程序,首 先運行解密程序把固件程序讀取進行解密,保存為可執行的二進位代碼形式, 由此增加了額外的執行時間開銷,同時解密程序也是很容易被複製的。

發明內容
本發明針對以上問題的提出,而研製一種以專用硬體平臺,即設計專用的 處理器CPU,來執行加密的固件程序的雙向驗證的系統,實現防止對固件程序進
行非法惡意刷新或讀取固件程序進行仿製。本發明採用的技術方案如下
4一種基於安全MCU的嵌入式軟體程序的加密系統,其特徵在於安全MCU同
嵌入程序固件通過數據通信總線相連接;
所述安全MCU包括微控制器和驗證模塊A;所述驗證模塊A包括隨機數產生
器、加密模塊A、解密模塊B和比較驗證單元;
所述隨機數產生器,用於產生驗證過程中使用的隨機數; 所述加密模塊A,用於對隨機數產生器產生的隨機數進行加密處理; 所述解密模塊B,用於對安全MCU接收到的嵌入程序固件傳回的加密數據進
行解密處理;
所述比較驗證單元,用於對隨機數產生器隨機數同解密模塊B解密數據進 行比對,同時將解密結果發送給微控制器進行處理;
所述嵌入程序固件包括主處理器和驗證模塊B;所述驗證模塊B包括解密模 塊A、加密模塊B和比較驗證單元;
所述解密模塊A,用於對嵌入程序固件接收到的加密數據進行解密處理; 所述比較驗證單元,用於將解密模塊A還原的數據與預設的執行指令數據 進行比較,並將比較結果發送給主處理器;
所述加密模塊B,用於對解密模塊A解密的隨機數進行再次加密; 在使用時所述隨機數產生器產生一個隨機數通過數據線傳輸給加密模塊A 進行加密,通過數據通信總線傳輸到驗證模塊B的解密模塊A中進行解密,後 通過與解密模塊A相連接的比較驗證單元進行比較判斷,當比對結果滿足條件, 主處理器控制嵌入程序固件其它單元繼續工作,當比對結果不滿足條件,主處 理器控制與其連接的加密模塊B對解密模塊A解密的隨機數進行再次加密,後 通過數據通信總線將再次加密的隨機數傳送到驗證模塊A的解密模塊B中進行 解密,在經過與解密模塊B相連接的比較驗證單元進行比較判斷,當比對結果 不滿足條件,微控制器控制可控電源切掉主處理器、固件存儲器和隨機存儲器 的電源,當比對結果不滿足條件,微控制器通過數據通信總線向主處理器發送
繼續執行程序的控制指令。
數據通信總線採用I2C、 SPI、 USB或RS232進行雙向通行。
一種基於安全MCU的嵌入式軟體程序的加密方法,其特徵在於包括如下步
驟S1000:驗證由安全MCU發起;
S2000:由隨機數器產生隨機數,並進行存儲,用於後續比較驗證;
S3000:利用公鑰及加密算法對步驟S2000產生的隨機數進行加密,並由數 據總線發送給嵌入程序固件;
S4000:嵌入程序固件中的主處理器執行的固件程序接收到微控制器發送的 加密數據後,利用公鑰及加密算法A反運算將數據還原為原隨機數;
S5000:嵌入程序固件利用比較驗證單元把還原的數據與預設的執行指令數 據進行比較,如果相同,則繼續執行後續固件程序代碼,否則就執行步驟S6000;
S6000:把加密後的數據利用加密模塊B對步驟S5000還原的數據進行再次 加密,並通過總線發送給微控制器。
S7000:微控制器接收到嵌入程序固件返回的數據後,利用解密模塊B反運 算將數據還原為原隨機數;
S8000:通過安全MCU中的比較驗證單元把步驟S7000還原的數據,與原始 隨機數進行比較,相同就執行S9000,否則就作為驗證失敗,切掉主處理器、固 件存儲器、隨機存儲器的電源;
S9000:在步驟S8000成立的條件下,微控制器就向嵌入程序固件的主處理 器發送執行指令,完成驗證過程。
所述步驟S2000中的隨機數器產生隨機數方法採用迭代取中法、乘同餘法、 加同餘法或混合同餘法。
本發明同現有技術相比其優點是顯而易見的,具體如下
1:採用了安全MCU,其加密技術相當成熟,程序代碼不可讀,防止了程序 被複製,價錢也比較便宜,種類繁多,開發技術也比較成熟。
2:利用安全MCU與固件進行驗證,只有通過驗證固件才能正常執行,否則 固件程序進入死鎖等待驗證,由此單方面對固件程序進行惡意刷新或讀取固件 程序進行仿製都不能正常工作,而MCU的加密保護技術己經相當成熟,部分MCU 被破解的可能性幾乎為零,從而有效保護開發設計人員智慧財產權。
3:另一方面本發明是固件自身加密,無需額外對固件二進位代碼進行加密 和解密,實施更簡便靈活,也可以與其他加密方法一起使用,進一步加強加密 的強度。
64:針對多數電子系統都已具備本發明實施的硬體架構,無需對硬體做過多 的改動。


圖1為本發明的硬體系統架構示意圖; 圖2為微控制器的驗證模塊細化結構示意圖; 圖3為嵌入式系統固件的驗證模構細化結構示意圖; 圖4為本發明所述加密方法的流程圖。
具體實施例方式
如圖1所示嵌入式軟體程序的加密系統,是將安全MCU同嵌入程序固件通 過數據通信總線相連接,其中微控制器101 —個重要的作用是對電源進行管理, 固件應用程式在啟動後的開始部位由主處理器102與微控制器101通過總線進 行通信,雙方進行驗證,若驗證通過,微控制器101對主處理器102發送指令 繼續執行下面的應用程式,否則主處理器102就停止執行下面的固件程序,進 入死鎖等待驗證,而對於微控制器101會控制可控電源105切斷主處理器102 電源,由此達到對固件程序的加密。微控制器101採用的是安全MCU,其程序存 儲器是不可讀取的,各MCU生產廠商都有相應的型號,實際實施可以自由選擇, 對於數據通信,最好採用具有硬體數據通信總線的MCU,方便程序的開發。
如圖2和圖3所示對安全MCU和嵌入程序固件進行細化描述,以便進一步 理解本發明。其中安全MCU包括微控制器101和驗證模塊A2;所述驗證模塊A 包括隨機數產生器201、加密模塊A202、解密模塊B204和比較驗證單元205; 隨機數產生器201用來產生驗證過程中使用的隨機數,其實現可以是硬體產生, 也可以是軟體實現,為了不增加硬體的複雜度,本實施例採用軟體實現,方法 有迭代取中法、乘同餘法、加同餘法、混合同餘法等,各種實現方法本發明 不再重述,可以査詢相關資料。加密模塊A202用於對隨機數產生器201產生的 隨機數進行加密,其加密算法也多種多樣,本實施例中採用了異或的方法來進 行講解,把隨機數產生器201產生的隨機數與一個固定的數進行異或運算來加 密。數據通信總線203最好是MCU自身由硬體實現,其通信是雙向的,目前的 MCU—般都支持一種或幾種,如12C、 SPI、 USB、 RS232,具體形式由所選擇的 MCU決定,數據通信總線採用軟體模擬也可以達到目的,不過其穩定性會降低,軟體的開發難度也會增加,本發明還是建議採用MCU自身由硬體實現。解密模
塊B204針對固件程序返還的數據進行解密,其解密方法與固件程序中的加密方 法相對應。比較驗證205,把解密後的數據與原始隨機數進行比較,MCU根據結 果做出相應的操作。
其中嵌入程序固件包括主處理器102和驗證模塊B3;所述驗證模塊B包括 解密模塊A302、加密模塊B304和比較驗證單元303;針對固件程序的驗證模塊 結構及各部分之間的聯繫進行了細化描述。其各模塊的功能和實現方法與圖2 相同,值得注意的是兩圖中的加密和加密模塊各不相同,採用了不同的加解密 方法在圖中以A和B加以區別。比較驗證模塊303用於判斷解密的數據是指令
還是驗證數據,若為指令則固件程序就會跳出驗證過程,繼續執行後面的應用 程序代碼。
在具體執行過程中是由微控制器101發起驗證,把加密數據傳給主處理器 102執行的固件程序,固件程序進行解密後,把還原的數據以另外的加密算法重 新加密後,返還給微控制器IOI,最後微控制器101把返回的數據解密與原始的 數據進行比較驗證,並作出相應的處理。同樣的道理也可以由固件程序發起驗 證,而由微控制器101作出應答。下面結合圖4,給出一個具體驗證過程實施例
S1000:驗證由微控制器101發起。
S2000:由隨機數器產生隨機數,並進行存儲,用於後續比較驗證,假設產 生的為8位隨機數10101010。
S3000:利用公鑰及加密算法A對S2000產生的隨機數進行加密,並由數據 總線如I2C發送給固件程序。加密算法多種多樣可自由選擇,再此以公鑰為 11111111,加密算法採用異或算法為例,則加密後的數據為01010101。
S4000: CPU中執行的固件程序接收到微控制器101發送的加密數據後,利 用公鑰及加密算法A反運算將數據還原為原隨機數10101010。
S5000:固件程序把還原的數據與預設的執行指令數據進行比較,如果相同, 則繼續執行後續固件程序代碼,否則就執行S6000。
S6000:在S5000的條件下,把加密後的數據利用公鑰及加密算法B對S5000 還原的數據進行再次加密,並有總線發送給微控制器101。
S7000:微控制器101接收到固件返回的數據後,利用公鑰及加密算法B反
8運算將數據還原為原隨機數10101010。
S8000:把S7000還原的數據,與原始隨機數進行比較,相同就執行S9000, 否則就作為驗證失敗,切掉主處理器102、固件存儲器103、隨機存儲器104的 電源。
S9000:在S8000成立的條件下,微控制器101就向固件程序發送執行指令, 完成驗證過程。
綜上所述,本發明採用了雙向驗證的方式,在雙方驗證時採用隨機數加密 的方式,避免了固定數據固定加密算法可以通過示波器捕捉波形來解密,加強 了解密的難度,在進行驗證時進行了兩次加密和解密過程。雙方的加密和解密 方法各不相同,MCU的加密方法與固件的解密方法相對應,同理固件的加密方 法與MCU的解密方法相對應,由此實現了雙向驗證。
以上所述,僅為本發明較佳的具體實施方式
,但本發明的保護範圍並不局 限於此,任何熟悉本技術領域的技術人員在本發明揭露的技術範圍內,根據本 發明的技術方案及其發明構思加以等同替換或改變,都應涵蓋在本發明的保護 範圍之內。
權利要求
1、一種基於安全MCU的嵌入式軟體程序的加密系統,其特徵在於安全MCU同嵌入程序固件通過數據通信總線相連接;所述安全MCU包括微控制器(101)和驗證模塊A(2);所述驗證模塊A包括隨機數產生器(201)、加密模塊A(202)、解密模塊B(204)和比較驗證單元(205);所述隨機數產生器(201),用於產生驗證過程中使用的隨機數;所述加密模塊A(202),用於對隨機數產生器(201)產生的隨機數進行加密處理;所述解密模塊B(204),用於對安全MCU接收到的嵌入程序固件傳回的加密數據進行解密處理;所述比較驗證單元(205),用於對隨機數產生器(201)隨機數同解密模塊B(204)解密數據進行比對,同時將解密結果發送給微控制器(101)進行處理;所述嵌入程序固件包括主處理器(102)和驗證模塊B(3);所述驗證模塊B包括解密模塊A(302)、加密模塊B(304)和比較驗證單元(303);所述解密模塊A(302),用於對嵌入程序固件接收到的加密數據進行解密處理;所述比較驗證單元(303),用於將解密模塊A(302)還原的數據與預設的執行指令數據進行比較,並將比較結果發送給主處理器(102);所述加密模塊B(304),用於對解密模塊A(302)解密的隨機數進行再次加密;在使用時所述隨機數產生器(201)產生一個隨機數通過數據線傳輸給加密模塊A(202)進行加密,通過數據通信總線(203)傳輸到驗證模塊B(3)的解密模塊A(302)中進行解密,後通過與解密模塊A(302)相連接的比較驗證單元(303)進行比較判斷,當比對結果滿足條件,主處理器(102)控制嵌入程序固件其它單元繼續工作,當比對結果不滿足條件,主處理器(102)控制與其連接的加密模塊B(304)對解密模塊A(302)解密的隨機數進行再次加密,後通過數據通信總線(203)將再次加密的隨機數傳送到驗證模塊A的解密模塊B(204)中進行解密,再經過與解密模塊B(204)相連接的比較驗證單元(205)進行比較判斷,當比對結果不滿足條件,微控制器(101)控制可控電源(105)切掉主處理器(102)、固件存儲器(103)和隨機存儲器(104)的電源,當比對結果不滿足條件,微控制器(101)通過數據通信總線(203)向主處理器(102)發送繼續執行程序的控制指令。
2、 根據權利要求1所述的一種基於安全MCU的嵌入式軟體程序的加密系統, 其特徵在於數據通信總線(203)採用I2C、 SPI、 USB或RS232進行雙向通行。
3、 一種基於安全MCU的嵌入式軟體程序的加密方法,其特徵在於包括如下 步驟S1000:驗證由安全MCU發起;S2000:由隨機數器產生隨機數,並進行存儲,用於後續比較驗證;S3000:利用公鑰及加密算法對步驟S2000產生的隨機數進行加密,並由數 據總線發送給嵌入程序固件;S4000:嵌入程序固件中的主處理器執行的固件程序接收到微控制器發送的 加密數據後,利用公鑰及加密算法A反運算將數據還原為原隨機數;S5000:嵌入程序固件利用比較驗證單元把還原的數據與預設的執行指令數 據進行比較,如果相同,則繼續執行後續固件程序代碼,否則就執行步驟S6000;S6000:把加密後的數據利用加密模塊B對步驟S5000還原的數據進行再次 加密,並通過總線發送給微控制器。S7000:微控制器接收到嵌入程序固件返回的數據後,利用解密模塊B反運 算將數據還原為原隨機數;S8000:通過安全MCU中的比較驗證單元把步驟S7000還原的數據,與原始 隨機數進行比較,相同就執行S9000,否則就作為驗證失敗,切掉主處理器、固 件存儲器、隨機存儲器的電源;S9000:在步驟S8000成立的條件下,微控制器就向嵌入程序固件的主處理 器發送執行指令,完成驗證過程。
4、 根據權利要求3所述的一種基於安全MCU的嵌入式軟體程序的加密方法, 其特徵在於所述步驟S2000中的隨機數器產生隨機數方法採用迭代取中法、乘 同餘法、加同餘法或混合同餘法。
全文摘要
本發明公開了一種基於安全MCU的嵌入式軟體程序的加密系統,採用的安全MCU包括微控制器和驗證模塊A;所述驗證模塊A包括隨機數產生器、加密模塊A、解密模塊B和比較驗證單元;所述嵌入程序固件包括主處理器和驗證模塊B;所述驗證模塊B包括解密模塊A、加密模塊B和比較驗證單元;以上系統採用MCU的加密方法與固件的解密方法相對應,同理固件的加密方法與MCU的解密方法相對應的雙向驗證的方式,實現了程序加密。該系統採用了安全MCU,其加密技術相當成熟,程序代碼不可讀,防止了程序被複製,價錢也比較便宜,種類繁多,開發技術也比較成熟,另外,針對多數電子系統都已具備本發明實施的硬體架構具有通用性適於廣泛推廣。
文檔編號G06F21/22GK101635019SQ200910013430
公開日2010年1月27日 申請日期2009年8月25日 優先權日2009年8月25日
發明者磊 姚, 朱兆勳, 敏 王, 甄釗博 申請人:中國華錄集團有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀