一种微控制器目标代码保护方法及系统技术方案

技术编号:16235982 阅读:35 留言:0更新日期:2017-09-19 16:08
本发明专利技术涉及微控制器加密技术领域,具体来说是对IP供应商的目标代码进行保护的一种微控制器目标代码保护方法及系统,通过将微控制器内的存储空间分成安全密钥存储区、目标代码密文存储区和客户代码存储区,分别存储安全密钥、目标代码密文和客户代码,由IP供应商对需要保护的目标代码使用安全密钥进行加密,生成目标代码密文,使得在程序运行时,必须通过微控制器内的解密模块对目标代码密文进行解密,不仅保证了目标代码的保密性,且目标代码密文的写入和升级过程都可由客户自行操作,降低了制造使用成本。

Method and system for protecting target code of microcontroller

The invention relates to a micro controller encryption technology, is a kind of IP supplier object code protection micro controller code protection method and system specifically, the storage space in the microcontroller into a secure key storage area, object code and client code ciphertext storage storage area, storage security key, object code the ciphertext and the client code, by IP supplier of the need to protect the target code using security encryption key, generate the target code ciphertext, so when the program runs, must pass the decryption module micro controller to decrypt the ciphertext code, not only to ensure the confidentiality of the object code and object code ciphertext write and upgrade process all by the customers themselves, reduce the cost of manufacture and use.

【技术实现步骤摘要】
一种微控制器目标代码保护方法及系统
本专利技术涉及微控制器加密
,具体来说是对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.对目标代码进行分组后进行初始变换,得到目标代码初始数据;c.在子密钥的控制下,对目标代码初始数据进行循环迭代,依次得到多个目标代码数据;d.分别对目标代码数据进行逆变换,形成目标代码密文或目标代码明文。较佳地,所述的公开密钥算法为DES或AES。相较于现有技术,本专利技术提供的微控制器目标代码保护方法具有以下的优点和积极效果:1.本专利技术由IP供应商对需要保护的目标代码使用安全密钥进行加密,生成目标代码密文,使得在程序运行时,必须通过微控制器内得解密模块对目标代码密文进行解密,不仅保证了目标代码的保密性,且目标代码密文的写入和升级过程都可由客户自行操作,降低了制造使用成本;2.本专利技术是对微控制器执行的目标代码进行加密,且解密后的数据直接送微控制器的程序计数器中,不会对外输出明文数据,避免了目标代码的泄露;3.由于本专利技术是在微控制器中写入安全密钥后才交给客户,在保护目标代码的基础上,IP供应商还可通过控制写入安全密钥的微控制器的数量来控制客户的生产数量;4.解密过程是通过微控制器内部的解密模块配合微控制器内部的硬件进行,解密后的目标代码只存在于内部的指令寄存器中,即使用程序或各种调试手段也无法读取解密后的目标代码,保密程度高;5.安全密钥只可由IP供应商写入,通过公开加密算法和私密密钥对目标代码进行加密,实现一设备对应一密钥的加密方式,私密性高,抗攻击强度高,有效保证了密钥的存储安全性。本专利技术还包括一种微控制器目标代码保护系统,所述的微控制器包括存储模块、指令寄存器、程序计数器和解密模块,存储模块内的存储空间分为安全密钥存储区、目标代码密文存储区、客户代码存储区,其中,所述的安全密钥存储区用于存储对目标代码进行加密和解密的安全密钥;所述的目标代码密文存储区用于存储目标代码密文,所述的目标代码密文由安全密钥对目标代码进行加密后生成;所述的客户代码存储区用于存储客户二次开发的客户代码;所述的解密模块分别连接存储模块、指令寄存器和程序计数器,用于接受程序计数器的指令从目标代码密文存储区中读取目标代码密文,并使用从安全密钥存储区中读取的安全密钥对目标代码密文进行解密,再将解密后的目标代码明文存入指令寄存器中。较佳地,所述的安全密钥由IP供应商写入。较佳地,所述的目标代码密文由IP供应商或客户或微控制器的生产商写入。较佳地,对所述目标代码采用公开密钥算法进行加密或解密。相较于现有技术,本专利技术提供的微控制器目标代码保护系统具有以下的优点和积极效果:1.微控制器目标代码保护系统将微控制器中的存储区间合理分区,将安全密钥、目标代码密文和客户代码分别对应存入安全密钥存储区、目标代码密文存储区、客户代码存储区中,满足了客户二次开发代码的同时,避免了客户代码读写时目标代码的泄露,保证了目标代码的保密性;2.IP供应商对需要保护的目标代码使用安全密钥进行加密,生成目标代码密文,使得在程序运行时,必须通过解密模块配合微控制器内部的硬件在微控制器内部进行解密,解密后的目标代码只存入指令寄存器中,即使用程序或各种调试手段也无法读本文档来自技高网
...
一种微控制器目标代码保护方法及系统

【技术保护点】
一种微控制器目标代码保护方法,其特征在于,其中的微控制器内的存储空间分为安全密钥存储区、目标代码密文存储区和客户代码存储区,所述的目标代码保护方法的具体步骤为:S1.写入安全密钥:IP供应商将安全密钥写入微控制器内部的安全密钥存储区;S2.加密目标代码:IP供应商对需要保护的目标代码使用安全密钥进行加密,并将生成目标代码密文提供给客户;S3.写入目标代码密文:将目标代码密文写入目标代码密文存储区;S4.解密目标代码:微控制器内部的解密模块对目标代码密文进行解密,再将解密后的目标代码存入指令寄存器;S5.写入客户代码:客户将客户代码写入微控制器中的客户代码存储区。

【技术特征摘要】
1.一种微控制器目标代码保护方法,其特征在于,其中的微控制器内的存储空间分为安全密钥存储区、目标代码密文存储区和客户代码存储区,所述的目标代码保护方法的具体步骤为:S1.写入安全密钥:IP供应商将安全密钥写入微控制器内部的安全密钥存储区;S2.加密目标代码:IP供应商对需要保护的目标代码使用安全密钥进行加密,并将生成目标代码密文提供给客户;S3.写入目标代码密文:将目标代码密文写入目标代码密文存储区;S4.解密目标代码:微控制器内部的解密模块对目标代码密文进行解密,再将解密后的目标代码存入指令寄存器;S5.写入客户代码:客户将客户代码写入微控制器中的客户代码存储区。2.根据权利要求1所述的一种微控制器目标代码保护方法,其特征在于,所述的目标代码保护方法还包括:S6.更新目标代码:在需要更新目标代码时,IP供应商使用安全密钥对更新后的目标代码进行加密,将生成的目标代码密文提供给客户,由客户将目标代码密文写入目标代码密文存储区,以更新微控制器中的目标代码。3.根据权利要求1或2所述的一种微控制器目标代码保护方法,其特征在于,在步骤S4中,当微控制器的程序计数器需要读取目标代码时,由解密模块执行以下步骤:S4-1.根据取指地址从目标代码密文存储区中读取目标代码密文;S4-2.从安全密钥存储区中提取IP供应商写入的安全密钥;S4-3.使用安全密钥对目标代码密文进行解密,形成目标代码明文;S4-4.将目标代码明文存入指令寄存器。4.根据权利要求1所述的一种微控制器目标代码保护方法,其特征在于,在所述步骤S3中,目标代码密文由IP供应商或客户或微控制器的生产商写入。5.根据权利要求1所述的一种微控制器目标代码保护...

【专利技术属性】
技术研发人员:张松波周玉洁谭永伟
申请(专利权)人:上海爱信诺航芯电子科技有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1