CN102938046A - 一种基于静态加密存储动态解密运行的代码保护方法 - Google Patents

一种基于静态加密存储动态解密运行的代码保护方法 Download PDF

Info

Publication number
CN102938046A
CN102938046A CN2012103870642A CN201210387064A CN102938046A CN 102938046 A CN102938046 A CN 102938046A CN 2012103870642 A CN2012103870642 A CN 2012103870642A CN 201210387064 A CN201210387064 A CN 201210387064A CN 102938046 A CN102938046 A CN 102938046A
Authority
CN
China
Prior art keywords
code
dynamic
static
ciphertext
protection method
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
CN2012103870642A
Other languages
English (en)
Other versions
CN102938046B (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.)
HANGZHOU SYNODATA SECURITY TECHNOLOGY CO., LTD.
Original Assignee
HANGZHOU SHENGYUAN CHIP TECHNIQUE CO Ltd
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 HANGZHOU SHENGYUAN CHIP TECHNIQUE CO Ltd filed Critical HANGZHOU SHENGYUAN CHIP TECHNIQUE CO Ltd
Priority to CN201210387064.2A priority Critical patent/CN102938046B/zh
Publication of CN102938046A publication Critical patent/CN102938046A/zh
Application granted granted Critical
Publication of CN102938046B publication Critical patent/CN102938046B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明涉及一种基于静态加密存储动态解密运行的代码保护方法,步骤如下:第一步:芯片复位启动后程序指针跳转于静态存储体内直接运行明文代码,执行代码保密性要求不高的应用操作;第二步:当需调用与密文代码相关的函数库时,当前运行的代码会把密文代码读取解密于动态存储体的代码运行区;第三步:程序指针跳转于动态存储体的代码运行区,运行解密所得代码函数;第四步:运行完解密所得代码函数后程序指针跳转回静态存储体清除动态存储体内代码运行区的数据,继续代码运行;第五步:当需再次调用与密文代码相关的函数库时,重复第二、三、四步骤。本发明有益的效果是:关键代码以密文方式进行静态存储,实现代码实时动态解密运行,解决嵌入式芯片的代码容易被剖片读取破译问题。

Description

一种基于静态加密存储动态解密运行的代码保护方法
技术领域
本发明涉及MCU、MPU、DSP、ARM等嵌入式编程芯片领域,尤其是一种基于静态加密存储动态解密运行的代码保护方法。
背景技术
在现在日益信息化的社会中,计算机和网络已经全面渗透到日常生活的每一个角落。对于我们每个人,需要的已经不再仅仅是那种放在桌上处理文档,进行工作管理和生产控制的计算机“机器”;各种各样的新型嵌入式系统设备在应用数量上已经远远超过通用计算机,任何一个普通人可能拥有从大到小的各种使用嵌入式技术的电子产品,小到mp3,PDA等微型数字化产品,大到网络家电,智能家电,车载电子设备。而在工业和服务领域中,使用嵌入式技术的数字机床,智能工具,工业机器人,服务机器人也将逐渐改变传统的工业和服务方式。
广而化之,可以认为凡是带有微处理器的专用软硬件系统都可以称为嵌入式系统。作为系统核心的微处理器又包括三类:微控制器(MCU)、数字信号处理器(DSP)、嵌入式微处理器(MPU)。所以有人简单的说:″嵌入式系统是指操作系统和功能软件集成于计算机硬件系统之中。″还有人认为嵌入式系统就是″以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统″。应该说后者从功能应用特征上比较好的给出了嵌入式系统的定义,嵌入式的概念的分析根本上应该从应用上加以切入。
从狭义上讲,我们更加强调那些使用嵌入式微处理器构成独立系统,具有自己的操作系统并且具有某些特定功能的系统,这里的微处理器专指32位以上的微处理器。按照这种定义,典型的嵌入式系统有使用x86的小型嵌入式工控主板,在各种自动化设备,数字机械产品中有非常广阔的应用空间;另外一大类是使用Intel,Motorola等专用芯片构成的小系统,它不仅仅在新兴的消费电子和通讯仪表等方面获得了巨大的发展应用空间,而且甚至有趋势取代传统的工控机。现在大家更加清楚的看到:嵌入式技术的春天已经来了。
但是,对于嵌入式来说,代码的安全性对企业越来越重要,如何防止他人读取嵌入式芯片里面的代码,保护自身程序的安全,和保护自己的利益呢,对嵌入式开发来说至关重要。
现有的技术方案如图1所示,硬件上通过SPI、I2C等串行芯片挂接一款滚动码编码芯片,软件上在嵌入式应用代码上根据设计者意愿增加一段动态密码验证段,当代码运行到密码验证段时主控芯片会向滚动码编码芯片发送一个动态密钥请求,然后主程序根据滚动码编码芯片反馈回来的动态密钥进行校验,密钥校验通过则程序继续执行,密钥校验不通过则程序停止后续流程并进行报错提示。该方案主要是基于滚动码的特性,通过代码与滚动码芯片绑定的方式进行嵌入式代码防抄板保护。经滚动码编译芯片生成的验证密码每次都会有变化,传输时可有效防止通讯数据复制重发破解。
上述技术方案的不足在于:1、需外加一款滚动码编码芯片(如基于KEELOQ原理的HCS300、HCS301等),既增加器件成本,又增加电路制板面积,而且还会增加生产故障检测率。2、代码未进行加密,剖片读取后进行反汇编编译可轻易解析代码功能。3、动态密码校验只是参差与代码段,反汇编后可以通过注销“密码验证”代码段的方式进行嵌入式代码快速抄板破解。
发明内容
本发明的目的正是要解决上述技术存在的不足,而提供一种基于静态加密存储动态解密运行的代码保护方法。关键代码以密文方式进行静态存储,实现代码实时动态解密运行,解决嵌入式芯片的代码容易被剖片读取破译问题。
本发明解决其技术问题采用的技术方案:这种基于静态加密存储动态解密运行的代码保护方法,该方法步骤如下:
第一步:芯片复位启动后程序指针跳转于静态存储体内直接运行明文代码,执行代码保密性要求不高的应用操作(即不需要保密的应用操作);
第二步:当需调用与密文代码相关的函数库时,当前运行的代码会把密文代码读取解密于动态存储体的代码运行区;
第三步:程序指针跳转于动态存储体的代码运行区,运行解密所得代码函数;
第四步:运行完解密所得代码函数后程序指针跳转回静态存储体清除动态存储体内代码运行区的数据,继续代码运行;
第五步:当需再次调用与密文代码相关的函数库时,重复第二、三、四步骤。
所述的动态存储体分成数据区与代码运行区两部分,数据区用于暂存代码运行时的中间数据,代码运行区用于暂存并运行静态存储器中的密文代码解密后的代码。
所述的静态存储体分成明文代码与密文代码两部分,明文代码是指芯片复位启动后能够直接运行的代码,密文代码是指需由明文代码运行后搬运解密到动态存储体的代码运行区方能运行的代码。
本发明有益的效果是:关键代码以密文的形式进行存储,密文与明文夹杂存储于同一存储器内,可有效防止代码被静态剖片破解。2、当明文代码运行到需要密文代码时才把密文代码解压于RAM中运行,运行完后马上删除。由于密文代码被解密于RAM中运行只占用极少的时间,再加上RAM一旦断电数据就丢失,可以有效降低代码破译风险。
附图说明
图1是现有技术系统方框示意图;
图2是本发明的系统方框示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明:
这种基于静态加密存储动态解密运行的代码保护方法,该方法步骤如下:
第一步:芯片复位启动后程序指针跳转于静态存储体3内直接运行明文代码31,执行代码保密性要求不高的应用操作;
第二步:当需调用与密文代码32相关的函数库时,当前运行的代码会把密文代码32读取解密于动态存储体2的代码运行区22;
第三步:程序指针跳转于动态存储体2的代码运行区22,运行解密所得代码函数;
第四步:运行完解密所得代码函数后程序指针跳转回静态存储体3清除动态存储体2内代码运行区22的数据,继续代码运行;
第五步:当需再次调用与密文代码相关的函数库时,重复第二、三、四步骤。
如图2所示,芯片存储体1:包含动态存储体及静态存储体两部分;所述的动态存储体2分成数据区21与代码运行区22两部分,数据掉电丢失,如SRAM、SDRAM等;数据区21用于暂存代码运行时的中间数据,代码运行区22用于暂存并运行静态存储器3中的密文代码32解密后的代码。所述的静态存储体3分成明文代码31与密文代码22两部分,数据掉电不丢失,如FLASH、EEPROM等;明文代码31是指芯片复位启动后能够直接运行的代码,密文代码32是指需由明文代码31运行后搬运解密到动态存储体2的代码运行区22方能运行的代码。
功效特点:
1.无需额外增加硬件成本,可广泛应用于可在RAM中运行代码的系统平台。
2.关键代码以密文方式存储,提升代码安全性,可以有效解决外挂代码存储器的代码破译问题。
3.加解密方式可以由系统应用开发者灵活设计,可以采用一些自定义非标准模式增加不确定因素,提高代码破译难度。
4.密文代码可以根据开发者灵活设计,根据需求分段分时驻留运行于RAM,提高时效性,降低动态运行破译风险。
5.方案商的关键代码可以以密文库的方式进行安全授权。
术语解释:
RAM:Random Access Memory随机存储器
SRAM:Static RAM静态随机存储器
SDRAM:Synchronous Dynamic RAM动态随机存储器
FLASH:闪存,一种不挥发性内存
EEPROM:Electrically Erasable Programmable Read-Only Memory,电可擦可编程只读存储器,掉电后数据不丢失
SPI:Serial Peripheral Interface,串行外设接口
I2C:Inter-Integrated Circuit,由PHILIPS公司开发的两线式串行总线
除上述实施例外,本发明还可以有其他实施方式。凡采用等同替换或等效变换形成的技术方案,均落在本发明要求的保护范围。

Claims (3)

1.一种基于静态加密存储动态解密运行的代码保护方法,其特征在于:该方法步骤如下:
第一步:芯片复位启动后程序指针跳转于静态存储体(3)内直接运行明文代码(31),执行代码保密性要求不高的应用操作;
第二步:当需调用与密文代码(32)相关的函数库时,当前运行的代码会把密文代码(32)读取解密于动态存储体(2)的代码运行区(22);
第三步:程序指针跳转于动态存储体(2)的代码运行区(22),运行解密所得代码函数;
第四步:运行完解密所得代码函数后程序指针跳转回静态存储体(3)清除动态存储体(2)内代码运行区(22)的数据,继续代码运行;
第五步:当需再次调用与密文代码相关的函数库时,重复第二、三、四步骤。
2.根据权利要求1所述的基于静态加密存储动态解密运行的代码保护方法,其特征在于:所述的动态存储体(2)分成数据区(21)与代码运行区(22)两部分,数据区(21)用于暂存代码运行时的中间数据,代码运行区(22)用于暂存并运行静态存储器(3)中的密文代码(32)解密后的代码。
3.根据权利要求1所述的基于静态加密存储动态解密运行的代码保护方法,其特征在于:所述的静态存储体(3)分成明文代码(31)与密文代码(22)两部分,明文代码(31)是指芯片复位启动后能够直接运行的代码,密文代码(32)是指需由明文代码(31)运行后搬运解密到动态存储体(2)的代码运行区(22)方能运行的代码。
CN201210387064.2A 2012-10-11 2012-10-11 一种基于静态加密存储动态解密运行的芯片存储体及代码保护方法 Active CN102938046B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210387064.2A CN102938046B (zh) 2012-10-11 2012-10-11 一种基于静态加密存储动态解密运行的芯片存储体及代码保护方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210387064.2A CN102938046B (zh) 2012-10-11 2012-10-11 一种基于静态加密存储动态解密运行的芯片存储体及代码保护方法

Publications (2)

Publication Number Publication Date
CN102938046A true CN102938046A (zh) 2013-02-20
CN102938046B CN102938046B (zh) 2015-08-26

Family

ID=47696942

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210387064.2A Active CN102938046B (zh) 2012-10-11 2012-10-11 一种基于静态加密存储动态解密运行的芯片存储体及代码保护方法

Country Status (1)

Country Link
CN (1) CN102938046B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103761456A (zh) * 2013-10-12 2014-04-30 利尔达科技集团股份有限公司 一种单片机核心代码防破解的方法
CN106055937A (zh) * 2016-05-25 2016-10-26 深圳创维数字技术有限公司 一种软件静态数据的加密方法及系统
CN113268717A (zh) * 2021-04-08 2021-08-17 东信和平科技股份有限公司 基于se的代码程序保护方法、装置及存储介质
CN114816581A (zh) * 2022-05-20 2022-07-29 中国电子科技集团公司第三十研究所 一种基于arm处理器的无操作系统算法动态加载方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101261665A (zh) * 2008-04-10 2008-09-10 北京深思洛克数据保护中心 一种通过加密数据文件实现软件保护的方法
CN101261666A (zh) * 2008-04-10 2008-09-10 北京深思洛克数据保护中心 一种通过加密可执行程序文件实现软件版权保护的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101261665A (zh) * 2008-04-10 2008-09-10 北京深思洛克数据保护中心 一种通过加密数据文件实现软件保护的方法
CN101261666A (zh) * 2008-04-10 2008-09-10 北京深思洛克数据保护中心 一种通过加密可执行程序文件实现软件版权保护的方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103761456A (zh) * 2013-10-12 2014-04-30 利尔达科技集团股份有限公司 一种单片机核心代码防破解的方法
CN103761456B (zh) * 2013-10-12 2016-05-11 利尔达科技集团股份有限公司 一种单片机核心代码防破解的方法
CN106055937A (zh) * 2016-05-25 2016-10-26 深圳创维数字技术有限公司 一种软件静态数据的加密方法及系统
WO2017202370A1 (zh) * 2016-05-25 2017-11-30 深圳创维数字技术有限公司 软件静态数据的加密方法及系统
CN106055937B (zh) * 2016-05-25 2018-11-09 深圳创维数字技术有限公司 一种软件静态数据的加密方法及系统
CN113268717A (zh) * 2021-04-08 2021-08-17 东信和平科技股份有限公司 基于se的代码程序保护方法、装置及存储介质
CN114816581A (zh) * 2022-05-20 2022-07-29 中国电子科技集团公司第三十研究所 一种基于arm处理器的无操作系统算法动态加载方法
CN114816581B (zh) * 2022-05-20 2023-06-02 中国电子科技集团公司第三十研究所 一种基于arm处理器的无操作系统算法动态加载方法

Also Published As

Publication number Publication date
CN102938046B (zh) 2015-08-26

Similar Documents

Publication Publication Date Title
CN103778380A (zh) 数据脱敏和反脱敏方法及相关设备
CN102073808B (zh) 一种通过sata接口加密存储的方法和加密卡
CN102938046B (zh) 一种基于静态加密存储动态解密运行的芯片存储体及代码保护方法
CN108491727B (zh) 一种融合通用计算、可信计算、密码计算的安全处理器
CN1838142A (zh) 带有数据存储和智能密钥的usb设备及其控制方法
CN103761456B (zh) 一种单片机核心代码防破解的方法
CN110674515B (zh) 一种多级别安全存储芯片构架
CN102955917B (zh) 一种保护数据的方法、装置及设备
CN105095945A (zh) 一种安全存储数据的sd卡
CN101996286A (zh) 动态安全度量的实现方法、安全度量装置和应用系统
CN111884814A (zh) 一种用于智能终端防伪造的方法和系统
US20140122871A1 (en) Security information sharing system and execution method thereof
CN1945591A (zh) 一种电子标签加密防伪技术
CN111628863A (zh) 一种数据签名的方法、装置、电子设备及存储介质
CN105512520B (zh) 一种反克隆的车载系统及其工作方法
CN105528545A (zh) 基于国产64位arm处理器的服务器及安全设计方法
CN104346575A (zh) 一种软件定义安全体系结构
CN102622621B (zh) 提高射频识别系统安全性的通信方法
CN103136454A (zh) 加密装置及加密方法
CN103701588A (zh) 一种秘密共享硬件实现方法及装置
EP3007092B1 (en) Mobile device-based authentication method and authentication apparatus
CN113392062B (zh) 数据存储方法、装置、电子设备和计算机可读存储介质
CN204667553U (zh) 一种atm机安全交易系统
CN2794074Y (zh) 用于机顶盒的硬件配置信息存取电路
CN105912964A (zh) Ic读头设备与ic卡动态码相互认证的开取装置方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: The city of Hangzhou in West Zhejiang province 311121 No. 998 Building 9 East Sea Park

Applicant after: Hangzhou Shengyuan Chip Technique Co., Ltd.

Address before: 310012, room 17, building 176, 203 Tianmu Mountain Road, Hangzhou, Zhejiang, Xihu District

Applicant before: Hangzhou Shengyuan Chip Technique Co., Ltd.

C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: Hangzhou City, Zhejiang province 311121 Yuhang Wuchang Street No. 998 West Sea Park Building 9 East

Applicant after: Hangzhou Shengyuan Chip Technique Co., Ltd.

Address before: The city of Hangzhou in West Zhejiang province 311121 No. 998 Building 9 East Sea Park

Applicant before: Hangzhou Shengyuan Chip Technique Co., Ltd.

C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: Hangzhou City, Zhejiang province 311121 Yuhang Wuchang Street No. 998 West Sea Park Building 9 East

Patentee after: HANGZHOU SYNODATA SECURITY TECHNOLOGY CO., LTD.

Address before: Hangzhou City, Zhejiang province 311121 Yuhang Wuchang Street No. 998 West Sea Park Building 9 East

Patentee before: Hangzhou Shengyuan Chip Technique Co., Ltd.