CN113297546A - 一种复合加密的代码保护方法及装置 - Google Patents
一种复合加密的代码保护方法及装置 Download PDFInfo
- Publication number
- CN113297546A CN113297546A CN202110684190.3A CN202110684190A CN113297546A CN 113297546 A CN113297546 A CN 113297546A CN 202110684190 A CN202110684190 A CN 202110684190A CN 113297546 A CN113297546 A CN 113297546A
- Authority
- CN
- China
- Prior art keywords
- encryption
- module
- address
- ciphertext
- code
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 239000002131 composite material Substances 0.000 title claims description 18
- 238000013507 mapping Methods 0.000 claims abstract description 33
- 230000003068 static effect Effects 0.000 claims abstract description 10
- 150000001875 compounds Chemical class 0.000 claims abstract description 8
- 230000006870 function Effects 0.000 claims description 8
- 238000012886 linear function Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
Abstract
一种复合加密的代码保护方法及装置,其特征在于:包括处理器、地址映射算法模块、加密模块、只读存储器模块、静态随机存取存储器、一次性编程存储器和随机数模块;处理器、地址映射算法模块、加密模块、只读存储器模块、静态随机存取存储器、一次性编程存储器和随机数模块均与总线相电连接;所述地址映射算法模块用于执行地址乱序加密;对要保护的代码明文a首先采用国密加密方式加密处理,得到密文A;再对密文A的地址进行地址乱序加密方式生成密文B存储于外部存储器。通过装置的存储器内部存储的密钥加密外部应用程序代码,使得本发明所述代码保护装置与外部应用程序之间具备唯一相关性,可有效解决非授权代码可运行的问题。
Description
技术领域
本发明属于嵌入式领域代码的保护方法领域,尤其涉及一种复合加密的代码保护方法及装置。
背景技术
在信息化日益普及的今天,信息安全变得至关重要,因而数据加密技术对于信息安全变得不可或缺,目前现有的敏感数据加密,无论是非对称加密算法,还是对称加密算法处理的对象都是数据,目标方案都是针对数据本身进行加密处理,嵌入式领域代码存放一般是采用与芯片分离的外部存储器件,这样的方案无疑在扩展性、灵活性上有了提升,但在安全性上就有所欠缺。
发明内容
本发明旨在解决上述问题,提供一种基于国密的复合加密的代码保护方法及装置。
本发明所述复合加密的代码保护方法,对所要保护的代码明文a首先采用国密加密方式加密处理,得到密文A;再对密文A的地址进行地址乱序加密方式生成密文B存储于外部存储器。
进一步,本发明所述复合加密的代码保护方法,所述地址乱序加密方式采用线性函数运算;设加密函数为fe(x);解密函数为fd(x);密文A经加密函数fe(x)加密后为密文B;密文B经解密函数fd(x)解密后为密文A;
加密后的地址可表示为:加密地址 = Seed* fe(x)+Offset;
其中x为密文A的原地址;Seed为加密种子;Offset为代码块内首地址偏移。
进一步,本发明所述复合加密的代码保护方法,所述地址乱序加密方式中的加密种子Seed设置有若干个;不同的Seed对应的不同的地址映射加密方式。
进一步,本发明所述复合加密的代码保护方法,所述对所要保护的代码明文a首先采用国密加密方式加密处理具体包括:
通过SM3杂凑算法压缩代码明文a,产生压缩数据;
通过SM2椭圆曲线公钥密码算法对压缩后的数据进行签名,生成数据签名包;
通过SM4对称加密算法对生成的数据签名包进行加密生成密文A。
进一步,本发明所述复合加密的代码保护方法,所述数据签名包中包含明文a压缩数据、SM2私钥与随机数组。
本发明所述复合加密的代码保护装置,包括处理器、地址映射算法模块、加密模块、只读存储器模块ROM、静态随机存取存储器Sram、一次性编程存储器OTP和随机数模块;所述处理器、地址映射算法模块、加密模块、只读存储器模块ROM、静态随机存取存储器Sram、一次性编程存储器OTP和随机数模块均与总线相电连接;所述地址映射算法模块用于执行地址乱序加密。
进一步,本发明所述复合加密的代码保护装置,还包括控制寄存器RC;所述控制寄存器RC与前述总线相电连接;所述控制寄存器RC与前述地址映射算法模块相电连接;可通过控制寄存器RC来控制开启或关闭乱序地址加密过程。
进一步,本发明所述复合加密的代码保护装置,所述加密模块包括SM2模块、SM3模块和SM4模块。
本发明所述复合加密的代码保护方法及装置的技术效果包括:
1)本发明通过装置的存储器内部存储的密钥加密外部应用程序代码,使得本发明所述代码保护装置与外部应用程序之间具备唯一相关性,可有效解决非授权代码可运行的问题;
2)本发明所述代码保护方法对外部代码进行数据地址乱序映射的方式处理,有效解决外部代码被剖片破译问题;
3)本发明所述代码保护方法采用SM2、SM3、SM4混合加密的方式处理代码,使得系统具备识别非法植入代码攻击的能力,从而全方位的保证系统的安全性。
附图说明
图1为本发明实施例所述地址乱序映射示意图;
图2为本发明实施例所述代码外部加密流程示意图;
图3为本发明实施例所述复合加密的代码保护装置结构示意图。
具体实施方式
下面通过附图及实施例对本发明所述复合加密的代码保护方法及装置进行详细说明。
实施例一
在本公开实施例中公开一复合加密的代码保护装置,包括处理器、地址映射算法模块、加密模块、只读存储器模块ROM、静态随机存取存储器Sram、一次性编程存储器OTP和随机数模块;所述处理器、地址映射算法模块、加密模块、只读存储器模块ROM、静态随机存取存储器Sram、一次性编程存储器OTP和随机数模块均与总线相电连接;所述地址映射算法模块用于执行地址乱序加密。
在本公开实施例中还包括控制寄存器RC;所述控制寄存器RC与前述总线相电连接;所述控制寄存器RC与前述地址映射算法模块相电连接;可通过控制寄存器RC来控制开启或关闭乱序地址加密过程;所述加密模块包括SM2模块、SM3模块和SM4模块。
如图3所示,外部应用程序与静态随机存取存储器Sram相电连接,将需要加密的代码存入静态随机存取存储器Sram,对所要保护的代码明文a首先采用国密加密方式加密处理,得到密文A;再对密文A的地址进行地址乱序加密方式生成密文B存储于外部存储器。
实施例二
本公开实施例在实施例一基础上,公开一复合加密的代码保护装置,在本实施例中将复合加密的代码保护装置集成于同一芯片上,包括处理器、地址映射算法模块、加密模块、只读存储器模块ROM、静态随机存取存储器Sram、一次性编程存储器OTP和随机数模块;所述处理器、地址映射算法模块、加密模块、只读存储器模块ROM、静态随机存取存储器Sram、一次性编程存储器OTP和随机数模块均与总线相电连接;其中ROM用以存放芯片初始化及解密、加载程序,OTP用以存储SM2公钥、SM4秘钥及地址映射模块Seed;地址映射算法模块用于运行地址乱序映射算法。芯片上电后程序入口为ROM起始地址,ROM程序具备解密外部密文的能力。
在本公开实施例中,原始代码明文a包括Head明文和Code明文,其中Head明文为头文件,包含原始明文的数据结构,Code明文为外部应用程序代码;代码明文a的加密过程如图2所示,具体包括:
步骤11、通过SM3杂凑算法压缩明文a,产生压缩数据;
步骤12、通过SM2椭圆曲线公钥密码算法对步骤1压缩后的数据进行签名,生成数据签名包,包含明文a压缩数据、sm2私钥与随机数组;
步骤13、通过SM4对称加密算法对步骤2生成的数据签名包进行加密生成密文A;
步骤14、通过地址映射算法模块对密文A进行地址乱序加密生成密文B,地址映射算法模块所需Seed写入芯片OTP,不同的Seed对应的地址映射方式不同;
步骤15、密文B为外部文件,存入相应外部存储器件,其中控制寄存器RC=1时关闭乱序地址映射算法,芯片上电默认RC=0。
在本公开实施例中,地址乱序映射模块运行的映射算法设为fe(x),fe(x)为线性运算,待加密数据长度为256KB,其中,总线地址位宽为32位,加密地址 = Seed* fe(原地址)+Offset,经过线性运算后原数据乱序排列,乱序加密后的数据经过fd(x)可还原为待加密数据,由于此处地址变换为线性运算,故加解密具有双向性,其中Offset为fe(SEED)对ram地址取余,即ram内循环偏移,如图1;
代码明文a的解密过程具体包括:
步骤21、读取OTP存储的SM2公钥、SM4密钥、地址映射算法种子Seed,并写入相应模块用以密钥扩展;
步骤22、读取外部存储器存放的密文B,其中如图3所示,外部存储器与存储器控制器、地址映射模块、总线、CPU连接,此时,CPU对存储器的读取命令将会是一个乱序的过程,读取后的数据为密文A;
步骤23、密文A通过SM4模块解密后存放于Sram区,解密后的数据包括Head明文、Code明文、SM2签名明文;通过SM3模块对解密后的Head明文和Code明文进行数据压缩;并将压缩后数据写入SM2模块;并将读取的SM2签名明文写入SM2模块;
步骤24、SM2模块通过随机数发生器获取一组随机数;
步骤25、CPU读取SM2签名验签结果;验签成功,CPU开始执行Code包含的外部应用程序;验签失败,CPU视外部应用程序为非法,不执行,并报中断。
本实施例所述复合加密的代码保护方法创新的使用一种地址乱序映射的加密方式,使得数据及数据地址均进行加密,从根本上保证代码的安全性,从而极大地保证代码运行环境的安全性。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (8)
1.一种复合加密的代码保护方法,其特征在于:对所要保护的代码明文a首先采用国密加密方式加密处理,得到密文A;再对密文A的地址进行地址乱序加密方式生成密文B存储于外部存储器。
2.根据权利要求1所述复合加密的代码保护方法,其特征在于:所述地址乱序加密方式采用线性函数运算;设加密函数为fe(x);解密函数为fd(x);密文A经加密函数fe(x)加密后为密文B;密文B经解密函数fd(x)解密后为密文A;
加密后的地址可表示为:加密地址 = Seed* fe(x)+Offset;
其中x为密文A的原地址;Seed为加密种子;Offset为代码块内首地址偏移。
3.根据权利要求2所述复合加密的代码保护方法,其特征在于:所述地址乱序加密方式中的加密种子Seed设置有若干个。
4.根据权利要求1或3所述复合加密的代码保护方法,其特征在于:所述对所要保护的代码明文a首先采用国密加密方式加密处理具体包括:
通过SM3杂凑算法压缩代码明文a,产生压缩数据;
通过SM2椭圆曲线公钥密码算法对压缩后的数据进行签名,生成数据签名包;
通过SM4对称加密算法对生成的数据签名包进行加密生成密文A。
5.根据权利要求4所述复合加密的代码保护方法,其特征在于:所述数据签名包中包含明文a压缩数据、SM2私钥与随机数组。
6.一种复合加密的代码保护装置,其特征在于:包括处理器、地址映射算法模块、加密模块、只读存储器模块ROM、静态随机存取存储器Sram、一次性编程存储器OTP和随机数模块;所述处理器、地址映射算法模块、加密模块、只读存储器模块ROM、静态随机存取存储器Sram、一次性编程存储器OTP和随机数模块均与总线相电连接;所述地址映射算法模块用于执行地址乱序加密。
7.根据权利要求6所述复合加密的代码保护装置,其特征在于:还包括控制寄存器RC;所述控制寄存器RC与前述总线相电连接;所述控制寄存器RC与前述地址映射算法模块相电连接。
8.根据权利要求7所述复合加密的代码保护装置,其特征在于:所述加密模块包括SM2模块、SM3模块和SM4模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110684190.3A CN113297546A (zh) | 2021-06-21 | 2021-06-21 | 一种复合加密的代码保护方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110684190.3A CN113297546A (zh) | 2021-06-21 | 2021-06-21 | 一种复合加密的代码保护方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113297546A true CN113297546A (zh) | 2021-08-24 |
Family
ID=77328898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110684190.3A Withdrawn CN113297546A (zh) | 2021-06-21 | 2021-06-21 | 一种复合加密的代码保护方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113297546A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024066533A1 (zh) * | 2022-09-30 | 2024-04-04 | 深圳市中兴微电子技术有限公司 | 芯片组件及其信息处理的方法、计算机可读介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541762A (zh) * | 2010-12-27 | 2012-07-04 | 北京国睿中数科技股份有限公司 | 用于外部存储器的数据保护器和数据保护方法 |
CN105280227A (zh) * | 2015-09-15 | 2016-01-27 | 中国兵器工业集团第二一四研究所苏州研发中心 | 一种引信电路地址移位数据乱序加密方法 |
US20180137294A1 (en) * | 2014-06-20 | 2018-05-17 | Cypress Semiconductor Corporation | Encryption for xip and mmio external memories |
US20180248692A1 (en) * | 2017-02-27 | 2018-08-30 | Cord3 Innovation Inc. | One-to-many symmetric cryptographic system and method |
CN111163108A (zh) * | 2020-02-04 | 2020-05-15 | 国网江苏省电力有限公司南京供电分公司 | 一种电力物联网安全终端芯片复合加密系统和方法 |
CN112363956A (zh) * | 2020-11-11 | 2021-02-12 | 上海磐启微电子有限公司 | 一种对flash存储器加解密的方法及装置 |
-
2021
- 2021-06-21 CN CN202110684190.3A patent/CN113297546A/zh not_active Withdrawn
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541762A (zh) * | 2010-12-27 | 2012-07-04 | 北京国睿中数科技股份有限公司 | 用于外部存储器的数据保护器和数据保护方法 |
US20180137294A1 (en) * | 2014-06-20 | 2018-05-17 | Cypress Semiconductor Corporation | Encryption for xip and mmio external memories |
CN105280227A (zh) * | 2015-09-15 | 2016-01-27 | 中国兵器工业集团第二一四研究所苏州研发中心 | 一种引信电路地址移位数据乱序加密方法 |
US20180248692A1 (en) * | 2017-02-27 | 2018-08-30 | Cord3 Innovation Inc. | One-to-many symmetric cryptographic system and method |
CN111163108A (zh) * | 2020-02-04 | 2020-05-15 | 国网江苏省电力有限公司南京供电分公司 | 一种电力物联网安全终端芯片复合加密系统和方法 |
CN112363956A (zh) * | 2020-11-11 | 2021-02-12 | 上海磐启微电子有限公司 | 一种对flash存储器加解密的方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024066533A1 (zh) * | 2022-09-30 | 2024-04-04 | 深圳市中兴微电子技术有限公司 | 芯片组件及其信息处理的方法、计算机可读介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8160244B2 (en) | Stateless hardware security module | |
EP2329622B1 (en) | Message authentication code pre-computation with applications to secure memory | |
JP4865694B2 (ja) | プロセッサ装置 | |
US8000467B2 (en) | Data parallelized encryption and integrity checking method and device | |
US8909932B2 (en) | Method and apparatus for security over multiple interfaces | |
CN110490008B (zh) | 安全装置及安全芯片 | |
CN112560058B (zh) | 基于智能密码钥匙的ssd分区加密存储系统及其实现方法 | |
US20060072748A1 (en) | CMOS-based stateless hardware security module | |
US20120201379A1 (en) | Method and apparatus for protecting security parameters used by a security module | |
CN101441601B (zh) | 一种硬盘ata指令的加密传输的方法及系统 | |
WO2007067221A2 (en) | Methods and apparatus for the secure handling of data in a microcontroller | |
KR101303278B1 (ko) | 비트스트림 보호를 위한 fpga 장치 및 그 방법 | |
KR20100120671A (ko) | 스마트 카드의 보안 | |
CN111614467B (zh) | 系统后门防御方法、装置、计算机设备和存储介质 | |
US20150256343A1 (en) | Securely Generating and Storing Passwords in a Computer System | |
US7841014B2 (en) | Confidential information processing method, confidential information processor, and content data playback system | |
CN102163267A (zh) | 固态硬盘安全访问控制方法、装置和固态硬盘 | |
CN110298186B (zh) | 一种基于动态可重构密码芯片的无密钥数据加解密方法 | |
JP2010517449A (ja) | 信頼できない受信者における秘密の保護 | |
CN111884814B (zh) | 一种用于智能终端防伪造的方法和系统 | |
CN108920984B (zh) | 一种防克隆篡改安全ssd主控芯片 | |
CN111914309A (zh) | 密码保护的数据储存装置以及非挥发式存储器控制方法 | |
CN110659506A (zh) | 基于密钥刷新对存储器进行重放保护 | |
CN113297546A (zh) | 一种复合加密的代码保护方法及装置 | |
US8379850B1 (en) | Method and integrated circuit for secure encryption and decryption |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210824 |