一种复合加密的代码保护方法及装置制造方法及图纸

技术编号:29790467 阅读:57 留言:0更新日期:2021-08-24 18:09
一种复合加密的代码保护方法及装置,其特征在于:包括处理器、地址映射算法模块、加密模块、只读存储器模块、静态随机存取存储器、一次性编程存储器和随机数模块;处理器、地址映射算法模块、加密模块、只读存储器模块、静态随机存取存储器、一次性编程存储器和随机数模块均与总线相电连接;所述地址映射算法模块用于执行地址乱序加密;对要保护的代码明文a首先采用国密加密方式加密处理,得到密文A;再对密文A的地址进行地址乱序加密方式生成密文B存储于外部存储器。通过装置的存储器内部存储的密钥加密外部应用程序代码,使得本发明专利技术所述代码保护装置与外部应用程序之间具备唯一相关性,可有效解决非授权代码可运行的问题。

【技术实现步骤摘要】
一种复合加密的代码保护方法及装置
本专利技术属于嵌入式领域代码的保护方法领域,尤其涉及一种复合加密的代码保护方法及装置。
技术介绍
在信息化日益普及的今天,信息安全变得至关重要,因而数据加密技术对于信息安全变得不可或缺,目前现有的敏感数据加密,无论是非对称加密算法,还是对称加密算法处理的对象都是数据,目标方案都是针对数据本身进行加密处理,嵌入式领域代码存放一般是采用与芯片分离的外部存储器件,这样的方案无疑在扩展性、灵活性上有了提升,但在安全性上就有所欠缺。
技术实现思路
本专利技术旨在解决上述问题,提供一种基于国密的复合加密的代码保护方法及装置。本专利技术所述复合加密的代码保护方法,对所要保护的代码明文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,并写入相应模块用以密钥扩展;本文档来自技高网...

【技术保护点】
1.一种复合加密的代码保护方法,其特征在于:对所要保护的代码明文a首先采用国密加密方式加密处理,得到密文A;再对密文A的地址进行地址乱序加密方式生成密文B存储于外部存储器。/n

【技术特征摘要】
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椭圆曲线公钥密...

【专利技术属性】
技术研发人员:高明扬王剑立郝晨唐先芝谷卫青
申请(专利权)人:尧云科技西安有限公司
类型:发明
国别省市:陕西;61

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

1