一種嵌入式軟體防盜版加密方法
2023-05-19 21:53:21
專利名稱:一種嵌入式軟體防盜版加密方法
技術領域:
本發明涉及在各種設備中MCU嵌入軟體實現防複製、防破解的一種嵌入式軟體防盜版加密方法,通過這種加密方法來保護開發者MCU中程序的智慧財產權。
背景技術:
市場上熱賣的各種靠MCU嵌入式程序,實現其主要功能技術的設備,普遍都遇到被別人破解和盜版的問題,而目前市面上出現的很多防盜版加密晶片,都採用簡單的密碼比對模式,也就是在MCU嵌入式軟體裡放入一個密鑰,在加密晶片中放入一個密鑰,然後在MCU運行過程中通過獨立於MCU程序以外的固定算法不斷進行密鑰的比對,如果密鑰一致,則MCU嵌入式程序可以運行。這種方法的主要弊端就是MCU程序是完整的,如果盜版商拿到這種方式加密的設備,不需要去破解加密晶片裡面的密鑰,只要去破解相對薄弱的MCU, 獲取MCU全部代碼,然後通過反編譯找到密鑰的比對點,跳過比對點就完成了 MCU程序的破解。這種加密方式已經完全根本上現在技術的發展,也無法保護開發者MCU中程序的智慧財產權。所以各個帶有MCU嵌入式軟體的設備開發商急需一種能夠從根本上防止盜版商破解MCU中嵌入式軟體的方法,來保護自己的嵌入式軟體的智慧財產權。目前智慧卡內核的加密晶片以其超高安全性廣泛應用於銀行、行動支付、電子商務/政務、控制訪問、身份識另O、控制器,安防監控、遊戲機、汽車電子、平板電腦、機頂盒、DVR、路由器、交換機、儀器儀表等各種電子產品終端領域,採用這種智慧卡內核的加密晶片通過各種安全傳感器、過濾器、總線及內存加密等硬體設計方式防止DPA、SPA等破解攻擊具,從而強有力的保護晶片中的數據不被讀取、破解。加密晶片內部的安全作業系統通過設置內部數據不可讀、敏感信息加密、不可預知的時序以及防火牆機制保護運行在加密晶片安全作業系統上的程序不被探測犾取和跟蹤。
發明內容
本發明要解決的技術問題在於避免出現現有嵌入式軟體防盜版簡單的密鑰比對模式的安全漏洞,而提出一種嵌入式軟體防盜版加密方法,從而實現真正的具有高安全性的、完善的嵌入式軟體加密方法。
具體實施例方式本發明是一種在嵌入式軟體領域,通過把用戶MCU中的嵌入式程序的一部分關鍵程序移植另一塊具有防拷貝、防剖片等高安全性的智慧卡晶片平臺的加密晶片中運行,這個嵌入式加密晶片採用智慧卡晶片平臺。加密晶片擁有可以運行用戶程序代碼的安全作業系統,保證用戶的各種MCU平臺的嵌入式程序可以在帶有安全作業系統的環境下運行、計
笪
ο用戶的MCU通過UART、10、IIC、SPI通訊接口方式與移植到加密晶片中的程序進行交互。用戶MCU中的程序因為已經移植了一部分在加密晶片中,那用戶MCU中程序就是不完整的了,盜版者破解了用戶MCU也無法得到全部代碼,盜版很難破解安全性極強的加密晶片中的程序,用戶MCU運行必須與移植了程序的加密晶片配合才能完成整個程序的運行,從而起到對用戶MCU中嵌入式軟體的防破解保護作用。說明書附1是本發明應用架構原理圖,具體實施方式
結合說明書附1詳細描述如下—種嵌入式軟體防盜版加密方法,包括擁有嵌入式軟體(3, 5)的MCU(2),擁有嵌入式安全作業系統(7)的採用智慧卡晶片平臺的加密晶片(6),MCU(2)通過UART、I0、IIC、SPI通訊接口與加密晶片(6)連接。先把MCU (2)中一段關鍵代碼程序⑷移植到加密晶片(6)中。用戶設備的MCU (2)啟動運行MCU內部嵌入式軟體(3),向加密晶片(6)輸入參數數據(8),加密晶片(6)讓加密晶片內部MCU移植過來的關鍵代碼程序(4)調用輸入的參數數據(8)運算產生輸出參數數據(9)返回給MCU(2),MCU內部嵌入式軟體(5)調用加密晶片(6)輸出的參數數據(9)運算產生輸出數據和結果(10) ,MCU內部嵌入式軟體(3)無法跳過加密晶片(6)中程序(4)與MCU中程序(5)直接交互。如果加密晶片(6)中運行的是正確的MCU移植過來的關鍵代碼程序(4),則加密晶片(6)對MCU輸入的參數數據(8)運算就會產生正確有用的輸出參數數據(9),從而MCU內部嵌入式軟體(5)調用這個輸出參數數據(9)必然能產生正確的輸出數據和結果(10)。反之則MCU內部嵌入式軟體(5)無法正確執行或者產生錯誤的結果。同現有的採用市面上常見的固定密鑰比對認證模式的加密方案相比,本加密方案的有益效果在於,MCU中移植到到加密晶片中的關鍵代碼程序是根據每個不同客戶MCU根據自己嵌入式軟體的不同特點專門選取的,也就是說每個客戶MCU中移植到加密晶片中的關鍵算法程序都是不同的,具有不可預知性。而破解存儲在採用高安全性智慧卡內核並具有安全作業系統的加密晶片中的算法程序的代價高、難度大,從根本上杜絕了破解MCU中嵌入式軟體全部程序的可能,有效的保護了開發MCU嵌入式軟體開發者的智慧財產權。說明書附2是本發明加密晶片結構圖,說明書附2詳細描述如下加密晶片CPU(IOl)是整個加密晶片的程序處理核心單元,可以是8bit、16bit、32bit和64bit的CPU。加密晶片跟外界通訊的接口(102),通過I0、UART、IIC、SPI等接口與設備上的MCU連接,通過這些接口與MCU之間進行數據交互。加密晶片的R0M(103)存放加密晶片的安全作業系統,通過這個安全作業系統對MCU移植到加密晶片中的關鍵算法程序進行解析運行。MCU移植到加密晶片中的關鍵算法程序存放在User Data Area(104)中,供ROM中的安全作業系統調用運行。RAM(105)是R0M(103)中安全作業系統以及User Data Area(105)中MCU移植過來的關鍵算法程序的運行內存。這些在R0M(103)、User Data Area(104)和RAM(105)以及在通訊接口(102)上的數據都是通過Security ControlIer、Watchdog Timer、Timers、Interrupt Controller等單兀進行保護。下面結合說明書附3所示,完整描述一下本發明所述方法完整的工作過程步驟201 :MCU上電,加密晶片上電;步驟202 =MCU運行嵌入式軟體;步驟203 =MCU嵌入式軟體向加密晶片發送輸入參數;
步驟204 :加密晶片運行從MCU移植過來的關鍵算法程序,然後調用MCU送來的輸入參數運算產生結果數據發送給MCU ;步驟205 :MCU嵌入式軟體調用加密晶片返回的結果數據,運算產生數據參數輸出給MCU控制的周邊器件;步驟206 =MCU控制的周邊器件執行MCU的輸出給他的數據參數。如果MCU輸出的數據參數不對,那MCU控制的周邊器件執行這個錯誤數據參數進入步驟207,如果MCU輸出的數據參數正確,那MCU控制的周邊器件執行這個正確數據參數進入步驟208 ;步驟207 :設備無法工作或者 工作不正常;步驟209 :設備無法正常工作,結束。步驟208 :設備正常工作;步驟210 :設備正常工作結束;本發明提供了一種全新的在各種設備中MCU嵌入軟體實現防複製、防破解的防盜版加密方法,通過這種加密方法,嵌入式軟體開發人員可以靈活的根據自己的程序特點選擇移植相關算法程序到加密晶片中,讓破解者無法通過單純破解MCU來獲取MCU中的全部嵌入式軟體。而具有超高安全性和防破解性能的加密晶片保護了那些保存在加密晶片中的那部分關鍵算法程序的安全。從而在根本上解決了目前嵌入式軟體容易被破解複製的隱
串
■/Q1、O上述為本發明的優選實現過程,本領域的技術人員在本發明的基礎上進行通常變化和替換包含在本發明的保護範圍之內。
權利要求
1.一種嵌入式軟體防盜版加密方法,在帶有加密晶片的MCU設備系統(I),用戶設備的MCU(2)中有用戶自己編寫的嵌入式軟體程序(3、5),採用智慧卡晶片平臺的加密晶片(6)中有可以運行MCU端移植代碼的安全作業系統(7),加密晶片(6)中有從MCU中移植進來的一段關鍵代碼程序⑷,MCU(2)與加密晶片(6)通過UART、10、IIC、SPI等接口連接通訊,MCU (2)運行軟體(3)向加密晶片(6)輸入參數數據(8),加密晶片(6)中MCU移植過來的關鍵代碼程序(4)調用輸入參數數據(8)產生輸出參數數據(9),MCU內部嵌入式軟體(5)調用輸出參數數據(9)運算產生輸出數據和結果(10),MCU內部嵌入式軟體(3)無法跳過加密晶片(6)中程序(4)與MCU中程序(5)直接交互,從而讓盜版商無法通過簡單去除加密晶片(6)讓MCU(2)正確運行,同時盜版商也無法通過剖片獲取高安全性智慧卡晶片內核的加密晶片中的關鍵代碼程序(4),完成MCU設備系統的破解盜版。
2.如權利I所述的一種嵌入式軟體防盜版加密方法,其特徵在於加密晶片(6)內部要有安全作業系統(7),這個安全作業系統可以運行從MCU端移植過來的關鍵代碼程序⑷。
3.如權利I所述的防盜版加密方法,其特徵在於,需要把MCU(2)中的嵌入式軟體摳出一部分代碼程序(4)移植到加密晶片(6)中運行,MCU (2)中的嵌入式軟體(3、5)只是MCU中嵌入式軟體的一部分,是不完整的。
4.如權利I所述的一種嵌入式軟體防盜版加密方法,其特徵在於MCU(2)與加密晶片(6)採用標準UART、10、IIC、SPI通訊接口用於交互指令。
5.如權利I所述的一種嵌入式軟體防盜版加密方法,其特徵在於加密晶片(6)必須採用高安全性智慧卡晶片,智慧卡晶片和MCU具有CPU、ROM、RAM、EEPROM、FLASH和各種安全防護邏輯,具有晶片內部代碼無法拷貝、無法讀取、防探測、防攻擊、防剖片等安全保護機制。
6.如權利I所述的一種嵌入式軟體防盜版加密方法,其特徵在於加密晶片(6)擁有一定容量的可存儲移植代碼程序(4)的EEPROM或FLASH存儲區以及可運行移植代碼程序的 RAM。
7.如權利I所述的一種嵌入式軟體防盜版加密方法,其特徵在於採用相應程序編譯器通過彙編、C語言、JAVA語言編寫移植代碼程序(4),編譯生成HEX或者CAT類型文件,下載到加密晶片(6)中。
8.如權利I所述的一種嵌入式軟體防盜版加密方法,其特徵在於,MCU(2)中程序(3)向加密晶片(6)輸入參數數據(8),加密晶片(6)接收到輸入參數數據(8)後,內部調用移植於MCU中的代碼程序(4)調用輸入參數數據(8)運行產生輸出參數數據(9)返回給MCU(2),MCU內部嵌入式軟體(5)用輸出參數數據(9)運算產生輸出數據和結果(10),使得MCU內部嵌入式軟體(3、5)完整運行,從而完成整個MCU程序功能的運行。
9.如權利I所述的一種嵌入式軟體防盜版加密方法,其特徵在於MCU(2)中的嵌入式軟體(2、3)只是MCU(2)中程序的一部分,是不完整的,必須結合加密晶片(6)中移植的程序(4)才能完成全部功能,缺少加密晶片(6),也就缺少了那部分關鍵代碼(4),MCU內部嵌入式軟體⑶無法跳過加密晶片(6)中程序⑷與MCU中程序(5)直接交互。從而MCU(2)無法完成全部功能從而達到防破解、盜版目的。
全文摘要
一種帶加密晶片的MCU設備(1),包括有嵌入式軟體(3,5)MCU(2),有作業系統(7)的加密晶片(6),MCU(2)通過UART、IO等接口與加密晶片(6)連接。MCU內程序(4)移植到加密晶片中。MCU運行軟體(3),向加密晶片(6)輸入參數(8),加密晶片讓程序(4)調用輸入參數(8)生成輸出參數(9)給MCU(2),MCU軟體(5)調用加密晶片輸出參數(9)生成輸出數據(10),MCU軟體(3)無法跳過程序(4)與MCU程序(5)直接交互。MCU(2)中程序不完整,而加密晶片(6)中程序難以複製,從根本上杜絕了嵌入式軟體整體被複製的可能性。
文檔編號G06F21/12GK103020495SQ20121054617
公開日2013年4月3日 申請日期2012年12月17日 優先權日2012年12月17日
發明者馬駒, 曹鐵, 趙志福 申請人:馬駒