CN103020495A - 一种嵌入式软件防盗版加密方法 - Google Patents

一种嵌入式软件防盗版加密方法 Download PDF

Info

Publication number
CN103020495A
CN103020495A CN2012105461749A CN201210546174A CN103020495A CN 103020495 A CN103020495 A CN 103020495A CN 2012105461749 A CN2012105461749 A CN 2012105461749A CN 201210546174 A CN201210546174 A CN 201210546174A CN 103020495 A CN103020495 A CN 103020495A
Authority
CN
China
Prior art keywords
mcu
program
encryption chip
embedded software
encryption
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2012105461749A
Other languages
English (en)
Other versions
CN103020495B (zh
Inventor
马驹
曹铁
赵志福
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN201210546174.9A priority Critical patent/CN103020495B/zh
Publication of CN103020495A publication Critical patent/CN103020495A/zh
Application granted granted Critical
Publication of CN103020495B publication Critical patent/CN103020495B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

一种带加密芯片的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)中程序难以复制,从根本上杜绝了嵌入式软件整体被复制的可能性。

Description

一种嵌入式软件防盗版加密方法
技术领域
本发明涉及在各种设备中MCU嵌入软件实现防复制、防破解的一种嵌入式软件防盗版加密方法,通过这种加密方法来保护开发者MCU中程序的知识产权。
背景技术
市场上热卖的各种靠MCU嵌入式程序,实现其主要功能技术的设备,普遍都遇到被别人破解和盗版的问题,而目前市面上出现的很多防盗版加密芯片,都采用简单的密码比对模式,也就是在MCU嵌入式软件里放入一个密钥,在加密芯片中放入一个密钥,然后在MCU运行过程中通过独立于MCU程序以外的固定算法不断进行密钥的比对,如果密钥一致,则MCU嵌入式程序可以运行。这种方法的主要弊端就是MCU程序是完整的,如果盗版商拿到这种方式加密的设备,不需要去破解加密芯片里面的密钥,只要去破解相对薄弱的MCU,获取MCU全部代码,然后通过反编译找到密钥的比对点,跳过比对点就完成了MCU程序的破解。这种加密方式已经完全根本上现在技术的发展,也无法保护开发者MCU中程序的知识产权。
所以各个带有MCU嵌入式软件的设备开发商急需一种能够从根本上防止盗版商破解MCU中嵌入式软件的方法,来保护自己的嵌入式软件的知识产权。目前智能卡内核的加密芯片以其超高安全性广泛应用于银行、移动支付、电子商务/政务、控制访问、身份识别、控制器,安防监控、游戏机、汽车电子、平板电脑、机顶盒、DVR、路由器、交换机、仪器仪表等各种电子产品终端领域,采用这种智能卡内核的加密芯片通过各种安全传感器、过滤器、总线及内存加密等硬件设计方式防止DPA、SPA等破解攻击具,从而强有力的保护芯片中的数据不被读取、破解。加密芯片内部的安全操作系统通过设置内部数据不可读、敏感信息加密、不可预知的时序以及防火墙机制保护运行在加密芯片安全操作系统上的程序不被探测获取和跟踪。
发明内容
本发明要解决的技术问题在于避免出现现有嵌入式软件防盗版简单的密钥比对模式的安全漏洞,而提出一种嵌入式软件防盗版加密方法,从而实现真正的具有高安全性的、完善的嵌入式软件加密方法。
具体实施方式
本发明是一种在嵌入式软件领域,通过把用户MCU中的嵌入式程序的一部分关键程序移植另一块具有防拷贝、防剖片等高安全性的智能卡芯片平台的加密芯片中运行,这个嵌入式加密芯片采用智能卡芯片平台。加密芯片拥有可以运行用户程序代码的安全操作系统,保证用户的各种MCU平台的嵌入式程序可以在带有安全操作系统的环境下运行、计算。
用户的MCU通过UART、IO、IIC、SPI通讯接口方式与移植到加密芯片中的程序进行交互。用户MCU中的程序因为已经移植了一部分在加密芯片中,那用户MCU中程序就是不完整的了,盗版者破解了用户MCU也无法得到全部代码,盗版很难破解安全性极强的加密芯片中的程序,用户MCU运行必须与移植了程序的加密芯片配合才能完成整个程序的运行,从而起到对用户MCU中嵌入式软件的防破解保护作用。
说明书附图图1是本发明应用架构原理图,具体实施方式结合说明书附图图1详细描述如下:
一种嵌入式软件防盗版加密方法,包括拥有嵌入式软件(3,5)的MCU(2),拥有嵌入式安全操作系统(7)的采用智能卡芯片平台的加密芯片(6),MCU(2)通过UART、IO、IIC、SPI通讯接口与加密芯片(6)连接。
先把MCU(2)中一段关键代码程序(4)移植到加密芯片(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(101)是整个加密芯片的程序处理核心单元,可以是8bit、16bit、32bit和64bit的CPU。加密芯片跟外界通讯的接口(102),通过IO、UART、IIC、SPI等接口与设备上的MCU连接,通过这些接口与MCU之间进行数据交互。加密芯片的ROM(103)存放加密芯片的安全操作系统,通过这个安全操作系统对MCU移植到加密芯片中的关键算法程序进行解析运行。MCU移植到加密芯片中的关键算法程序存放在User Data Area(104)中,供ROM中的安全操作系统调用运行。RAM(105)是ROM(103)中安全操作系统以及User Data Area(105)中MCU移植过来的关键算法程序的运行内存。这些在ROM(103)、User Data Area(104)和RAM(105)以及在通讯接口(102)上的数据都是通过Security Controller、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中的全部嵌入式软件。而具有超高安全性和防破解性能的加密芯片保护了那些保存在加密芯片中的那部分关键算法程序的安全。从而在根本上解决了目前嵌入式软件容易被破解复制的隐患。
上述为本发明的优选实现过程,本领域的技术人员在本发明的基础上进行通常变化和替换包含在本发明的保护范围之内。

Claims (9)

1.一种嵌入式软件防盗版加密方法,在带有加密芯片的MCU设备系统(1),用户设备的MCU(2)中有用户自己编写的嵌入式软件程序(3、5),采用智能卡芯片平台的加密芯片(6)中有可以运行MCU端移植代码的安全操作系统(7),加密芯片(6)中有从MCU中移植进来的一段关键代码程序(4),MCU(2)与加密芯片(6)通过UART、IO、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.如权利1所述的一种嵌入式软件防盗版加密方法,其特征在于:加密芯片(6)内部要有安全操作系统(7),这个安全操作系统可以运行从MCU端移植过来的关键代码程序(4)。
3.如权利1所述的防盗版加密方法,其特征在于,需要把MCU(2)中的嵌入式软件抠出一部分代码程序(4)移植到加密芯片(6)中运行,MCU(2)中的嵌入式软件(3、5)只是MCU中嵌入式软件的一部分,是不完整的。
4.如权利1所述的一种嵌入式软件防盗版加密方法,其特征在于:MCU(2)与加密芯片(6)采用标准UART、IO、IIC、SPI通讯接口用于交互指令。
5.如权利1所述的一种嵌入式软件防盗版加密方法,其特征在于:加密芯片(6)必须采用高安全性智能卡芯片,智能卡芯片和MCU具有CPU、ROM、RAM、EEPROM、FLASH和各种安全防护逻辑,具有芯片内部代码无法拷贝、无法读取、防探测、防攻击、防剖片等安全保护机制。
6.如权利1所述的一种嵌入式软件防盗版加密方法,其特征在于:加密芯片(6)拥有一定容量的可存储移植代码程序(4)的EEPROM或FLASH存储区以及可运行移植代码程序的RAM。
7.如权利1所述的一种嵌入式软件防盗版加密方法,其特征在于:采用相应程序编译器通过汇编、C语言、JAVA语言编写移植代码程序(4),编译生成HEX或者CAT类型文件,下载到加密芯片(6)中。
8.如权利1所述的一种嵌入式软件防盗版加密方法,其特征在于,MCU(2)中程序(3)向加密芯片(6)输入参数数据(8),加密芯片(6)接收到输入参数数据(8)后,内部调用移植于MCU中的代码程序(4)调用输入参数数据(8)运行产生输出参数数据(9)返回给MCU(2),MCU内部嵌入式软件(5)用输出参数数据(9)运算产生输出数据和结果(10),使得MCU内部嵌入式软件(3、5)完整运行,从而完成整个MCU程序功能的运行。
9.如权利1所述的一种嵌入式软件防盗版加密方法,其特征在于:MCU(2)中的嵌入式软件(2、3)只是MCU(2)中程序的一部分,是不完整的,必须结合加密芯片(6)中移植的程序(4)才能完成全部功能,缺少加密芯片(6),也就缺少了那部分关键代码(4),MCU内部嵌入式软件(3)无法跳过加密芯片(6)中程序(4)与MCU中程序(5)直接交互。从而MCU(2)无法完成全部功能从而达到防破解、盗版目的。
CN201210546174.9A 2012-12-17 2012-12-17 一种嵌入式软件防盗版加密方法 Active CN103020495B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210546174.9A CN103020495B (zh) 2012-12-17 2012-12-17 一种嵌入式软件防盗版加密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210546174.9A CN103020495B (zh) 2012-12-17 2012-12-17 一种嵌入式软件防盗版加密方法

Publications (2)

Publication Number Publication Date
CN103020495A true CN103020495A (zh) 2013-04-03
CN103020495B CN103020495B (zh) 2015-06-10

Family

ID=47969092

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210546174.9A Active CN103020495B (zh) 2012-12-17 2012-12-17 一种嵌入式软件防盗版加密方法

Country Status (1)

Country Link
CN (1) CN103020495B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105205357A (zh) * 2015-09-22 2015-12-30 上海斐讯数据通信技术有限公司 一种嵌入式系统的软件代码防盗方法及装置
CN105677586A (zh) * 2016-01-07 2016-06-15 珠海格力电器股份有限公司 Mcu的闪存的访问权限控制方法和装置
CN106933218A (zh) * 2017-04-25 2017-07-07 重庆市创锦程科技有限公司 适配obd接口的多协议诊断模块及其控制方法
CN107330318A (zh) * 2017-06-30 2017-11-07 中国航空工业集团公司雷华电子技术研究所 一种数字信号处理板卡及其调试系统的绑定加密方法
CN108733987A (zh) * 2018-04-12 2018-11-02 惠州市源医科技有限公司 一种基于嵌入式设备的二进制目标文件的加密方法和装置
CN109446757A (zh) * 2018-10-25 2019-03-08 石生花微电子(南京)有限公司 一种用于通用mcu程序保护的方法
CN109902453A (zh) * 2019-02-22 2019-06-18 山东欧德利电气设备有限公司 一种软件加密方法
CN115563589A (zh) * 2022-12-05 2023-01-03 苏州浪潮智能科技有限公司 一种芯片防盗版方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101038615A (zh) * 2007-03-12 2007-09-19 吴晓栋 一种直接从软件中任意分离代码到加密锁实现软件版权保护的方法
CN101635019A (zh) * 2009-08-25 2010-01-27 中国华录集团有限公司 基于安全mcu的嵌入式软件程序的加密系统
CN201917914U (zh) * 2011-02-14 2011-08-03 凌科芯安科技(北京)有限公司 嵌入式加密芯片
CN102339369A (zh) * 2011-08-18 2012-02-01 珠海天威技术开发有限公司 Mcu信息保护方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101038615A (zh) * 2007-03-12 2007-09-19 吴晓栋 一种直接从软件中任意分离代码到加密锁实现软件版权保护的方法
CN101635019A (zh) * 2009-08-25 2010-01-27 中国华录集团有限公司 基于安全mcu的嵌入式软件程序的加密系统
CN201917914U (zh) * 2011-02-14 2011-08-03 凌科芯安科技(北京)有限公司 嵌入式加密芯片
CN102339369A (zh) * 2011-08-18 2012-02-01 珠海天威技术开发有限公司 Mcu信息保护方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
LINKSAFE: "加密芯片", 《百度百科》, 13 September 2012 (2012-09-13), pages 1 - 1 *
佚名: "如何选择真正有效的加密芯片", 《中国防伪报道》, 30 September 2011 (2011-09-30), pages 56 - 57 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105205357A (zh) * 2015-09-22 2015-12-30 上海斐讯数据通信技术有限公司 一种嵌入式系统的软件代码防盗方法及装置
WO2017050110A1 (zh) * 2015-09-22 2017-03-30 上海斐讯数据通信技术有限公司 一种嵌入式系统的软件代码防盗方法及装置
CN105205357B (zh) * 2015-09-22 2018-07-31 上海斐讯数据通信技术有限公司 一种嵌入式系统的软件代码防盗方法及装置
CN105677586A (zh) * 2016-01-07 2016-06-15 珠海格力电器股份有限公司 Mcu的闪存的访问权限控制方法和装置
CN105677586B (zh) * 2016-01-07 2018-11-30 珠海格力电器股份有限公司 Mcu的闪存的访问权限控制方法和装置
CN106933218A (zh) * 2017-04-25 2017-07-07 重庆市创锦程科技有限公司 适配obd接口的多协议诊断模块及其控制方法
CN107330318A (zh) * 2017-06-30 2017-11-07 中国航空工业集团公司雷华电子技术研究所 一种数字信号处理板卡及其调试系统的绑定加密方法
CN108733987A (zh) * 2018-04-12 2018-11-02 惠州市源医科技有限公司 一种基于嵌入式设备的二进制目标文件的加密方法和装置
CN109446757A (zh) * 2018-10-25 2019-03-08 石生花微电子(南京)有限公司 一种用于通用mcu程序保护的方法
CN109902453A (zh) * 2019-02-22 2019-06-18 山东欧德利电气设备有限公司 一种软件加密方法
CN115563589A (zh) * 2022-12-05 2023-01-03 苏州浪潮智能科技有限公司 一种芯片防盗版方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN103020495B (zh) 2015-06-10

Similar Documents

Publication Publication Date Title
CN103020495B (zh) 一种嵌入式软件防盗版加密方法
CN101419652B (zh) 一种软硬件结合的保护程序的方法
US9454456B2 (en) Method for separately executing software, apparatus, and computer-readable recording medium
JP6227772B2 (ja) 動的ライブラリを保護する方法及び装置
CN111931251B (zh) 一种基于区块链的可信计算芯片
CN109582354A (zh) 安全引擎方法、物联网设备、非暂时性计算机可读存储介质
CN101216775A (zh) 一种软件程序的保护方法、装置及系统
CN110210190A (zh) 一种基于二次汇编的代码混淆方法
CN101103584A (zh) 安全及后向兼容处理器以及在其上的安全软件的执行
CN109992987B (zh) 基于Nginx的脚本文件保护方法、装置及终端设备
CN102118512A (zh) 一种手机应用程序防破解方法及系统
CN103440441A (zh) 软件保护的方法及系统
CN113722683B (zh) 模型保护方法、装置、设备、系统以及存储介质
CN109284585A (zh) 一种脚本加密方法、脚本解密运行方法和相关装置
CN109446757B (zh) 一种用于通用mcu程序保护的方法
JP2021515314A (ja) コンパイルデバイス及び方法
Guo et al. Eliminating the hardware-software boundary: A proof-carrying approach for trust evaluation on computer systems
CN102136052A (zh) 一种软件的保护方法
Gressl et al. Design space exploration for secure iot devices and cyber-physical systems
CN104850764B (zh) 一种基于智能卡的软件保护方法及系统
Li et al. Security-aware Modeling and Analysis for HW/SW Partitioning.
You et al. Deoptfuscator: Defeating Advanced Control-Flow Obfuscation Using Android Runtime (ART)
CN104361280A (zh) 一种通过smi中断实现对usb存储设备进行可信认证的方法
Wang et al. Invalidating analysis knowledge for code virtualization protection through partition diversity
Hataba et al. A proposed software protection mechanism for autonomous vehicular cloud computing

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant