[發明專利]一種微控制器目標代碼保護方法及系統在審
| 申請號: | 201710414060.1 | 申請日: | 2017-06-05 |
| 公開(公告)號: | CN107181593A | 公開(公告)日: | 2017-09-19 |
| 發明(設計)人: | 張松波;周玉潔;譚永偉 | 申請(專利權)人: | 上海愛信諾航芯電子科技有限公司 |
| 主分類號: | H04L9/08 | 分類號: | H04L9/08;G06F21/12 |
| 代理公司: | 上海漢聲知識產權代理有限公司31236 | 代理人: | 胡晶 |
| 地址: | 200241 上海市*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 控制器 目標 代碼 保護 方法 系統 | ||
技術領域
本發明涉及微控制器加密技術領域,具體來說是對IP供應商的目標代碼進行保護的一種微控制器目標代碼保護方法及系統。
背景技術
在現代產業分工合作的潮流下,有許多電子產業的設計公司可支持提供設備方案的電路圖及核心目標代碼給客戶,以便客戶進行生產及二次開發程序,而在這種合作模式下,如何保障IP供應商自主研發的知識產權,如目標代碼等,并讓IP供應商能夠掌控客戶的設備生產數量,是開發商和客戶合作能夠達成的關鍵所在。
現有技術中是在某些微控制器中會引入存儲保護單元(MPU),通過存儲保護單元就可以實現對部分代碼塊進行保護,阻止內部非法讀出從而在保護自己代碼的情況下,允許客戶進行二次程序開發。比較常見的是單芯片二次開發模式和雙芯片二次開發模式。
如圖1所示,為單芯片二次開發模式流程,其主要是將微控制器存儲區分為方案商代碼存儲區和客戶代碼存儲區,存儲保護單元可以保護方案商代碼不被客戶區代碼讀出。當具體操作時,第一步,首先由IP供應商把自己的代碼寫入方案商代碼存儲區(a),然后把微控制器交給客戶;第二步,由客戶把自己的代碼寫入客戶代碼存儲區(b)。客戶寫入的客戶代碼可以調用方案商的代碼執行,但不能讀取代碼的二進制值。
但這個方法有兩個致命缺點,一是目標代碼的寫入必須由IP供應商自己寫入,否則如果目標代碼提供給客戶寫入,就會導致目標代碼泄露,客戶就可以不經過原作者許可,生產更多設備,從而無法控制客戶的生產數量;二是出廠后的設備中的代碼升級的問題,如果需要對受保護的目標代碼進行升級,會碰到“目標代碼寫入”同樣的問題,必須對出廠的設備召回,由原作者自己升級。
對此問題,也有一些解決方案,比如在設備中采用雙芯片,如圖2所示,為單芯片二次開發基礎上改進的雙芯片二次開發模式流程,這種方式通常是在設備的電路板上集成兩顆微控制器,分別為微控制器A和微控制器B,微控制器A用于運行IP供應商的代碼,微控制器B用于運行客戶的代碼。兩微控制器之間通過通信接口進行交互。第一步,首先由IP供應商把自己的代碼寫入微控制器A,然后把微控制器A交給客戶;第二步,客戶把自己的代碼寫入微控制器B,再把微控制器A和微控制器B都裝配到電路板上,但這種設計方案明顯的增加了制造成本,并不適用于廣泛推廣使用。
發明內容
本發明的目的在于提供一種微控制器目標代碼保護方法及系統,在允許客戶進行生產及二次開發程序的前提下,實現對IP供應商的目標代碼的保護,并由此能有效控制客戶的生產數量。
為了解決上述技術問題,本發明采用了如下的技術方案:
本發明提供一種微控制器目標代碼保護方法,其中的微控制器內的存儲空間分為安全密鑰存儲區、目標代碼密文存儲區和客戶代碼存儲區,所述的目標代碼保護方法的具體步驟為:
S1.寫入安全密鑰:IP供應商將安全密鑰寫入微控制器內部的安全密鑰存儲區;
S2.加密目標代碼:IP供應商對需要保護的目標代碼使用安全密鑰進行加密,并將生成目標代碼密文提供給客戶;
S3.寫入目標代碼密文:將目標代碼密文寫入目標代碼密文存儲區;
S4.解密目標代碼:微控制器內部的解密模塊對目標代碼密文進行解密,再將解密后的目標代碼存入指令寄存器;
S5.寫入客戶代碼:客戶將客戶代碼寫入微控制器中的客戶代碼存儲區。
較佳地,所述的目標代碼保護方法還包括:
S6.更新目標代碼:在需要更新目標代碼時,IP供應商使用安全密鑰對更新后的目標代碼進行加密,將生成的目標代碼密文提供給客戶,由客戶將目標代碼密文寫入目標代碼密文存儲區,以更新微控制器中的目標代碼。
較佳地,在步驟S4中,當微控制器的程序計數器需要讀取目標代碼時,由解密模塊執行以下步驟:
S4-1.根據取指地址從目標代碼密文存儲區中讀取目標代碼密文;
S4-2.從安全密鑰存儲區中提取IP供應商寫入的安全密鑰;
S4-3.使用安全密鑰對目標代碼密文進行解密,形成目標代碼明文;
S4-4.將目標代碼明文存入指令寄存器。
較佳地,在所述步驟S3中,目標代碼密文由IP供應商或客戶或微控制器的生產商寫入。
較佳地,對所述目標代碼采用公開密鑰算法進行加密或解密,所述的加密或解密的具體過程為:
a.將密鑰進行密鑰變換,并進行循環迭代,分別得到子密鑰;
b.對目標代碼進行分組后進行初始變換,得到目標代碼初始數據;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海愛信諾航芯電子科技有限公司,未經上海愛信諾航芯電子科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710414060.1/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種新式齒式駐車制動器
- 下一篇:一種半自動堆高車用剎車





