掌桥专利:专业的专利平台
掌桥专利
首页

一种防止嵌入式软件被盗版的方法

文献发布时间:2024-04-18 20:01:55


一种防止嵌入式软件被盗版的方法

技术领域

本发明涉及嵌入式软件防盗技术领域,具体涉及一种防止嵌入式软件被盗版的方法。

背景技术

嵌入式应用系统为了具备功能升级的能力,往往留出了在应用编程的接口,以实现通过软件升级的方式来增强设备能力。而编程接口往往具备双向数据传输功能,既可以用编程器向芯片内写入数据,也可以从芯片内读出数据。读出软件数据并存储为文件,再将其写入其它相同的硬件载体中就可以得到相同功能的设备,这个过程如果是以非授权的形式执行,就被视为嵌入式软件的盗版使用行为。

很多芯片本身提供了防读取芯片内部软件的方案,具有非常高的安全性能;有利用专用加密芯片或部件承载特定算法,以芯片特征码为输入,来鉴定主芯片中的软件是否盗版的;也有利用编程器承载特定算法,以芯片特征码为输入,完成加密信息的生成,并写入芯片,由主芯片软件运行时读取该信息,运行编程器提供的算法,生成加密信息,二者进行比对的方法进行鉴别的。

存在的缺点和不足:利用芯片自身功能防止软件被盗用的方法仅对本型号或同系列的芯片有效,不具有通用性,使用的灵活性相对差;使用专用加密芯片或部件,提升了产品化时的成本,经济性不够好;使用专用编程器的办法,受编程器有无及其算法、性能的影响,灵活性不够好。后两种办法都对外部因素有依赖,经济性也不好。

发明内容

本发明的目的在于提供一种防止嵌入式软件被盗版的方法,解决嵌入式软件被盗版的技术问题。

本发明的目的可以通过以下技术方案实现:

一种防止嵌入式软件被盗版的方法,包括以下步骤:

步骤一、设计信息表,信息表包括芯片、加密算子和加密串,信息表被设定存储在芯片的非易失存储器的特定位置,其地址简记为addr_of_uid,addr_of_ectr、addr_of_esn;

步骤二、芯片上电复位,软件运行后,从addr_of_uid,addr_of_ectr、addr_of_esn处读取信息表,得到uid1、ectr、esn1;同时从芯片id寄存器读取芯片uid,记为uid2;

步骤三、若uid1、ectr、esn1比特位全部为0或1,判定为芯片首次上电,软件运行加密算子产生程序,该程序产生ectr,以uid2、ectr通过按位进行逻辑计算产生加密串,记为esn2,将uid2、ectr、esn2分另写入地址addr_of_uid,addr_of_ectr、addr_of_esn;

步骤四、软件从addr_of_uid,addr_of_ectr、addr_of_esn处读取信息表,得到uid1’、ectr’、esn1’,软件从芯片id寄存器读取芯片uid,记为uid2’,若uid2’与uid1’不相同,判定为盗版软件,软件进入盗版处理程序;若uid2’与uid1’相同进行后续步骤;

步骤五、以uid1’、ectr’为输入运行步骤三相同算法产生加密串esn2’;

步骤六、将esn1’与esn2’按位进行信息比对,若不相同,判定为盗版软件,软件进入盗版处理程序;若相同,判定为非盗版软件,软件进入正常的业务程序。

作为本发明进一步的方案:所述芯片具有全球唯一id号且该id号在芯片生产完毕后不可更改。

作为本发明进一步的方案:所述芯片内非易失存储器可被软件在运行时修改。

作为本发明进一步的方案:所述芯片内只读存储器中内置有id,不同芯片个体其id具有只读、全球唯一属性,记为uid。

作为本发明进一步的方案:所述加密算子由固定部分和随机部分组成,其中固定部分由使用者填写特定的识别数据,随机部分由下面的方法产生,以芯片uid为输入初始化C语言标准库的随机数种子函数srand,再由随机数产生函数rand产生的随机数填入,称为加密算子encryptor,记为ectr。

作为本发明进一步的方案:所述加密串为uid与ectr通过按位进行逻辑计算后产生相同bit位数的数据串,记为esn。

本发明的有益效果:

(1)不使用专用加密芯片和部件,不利用专用编程器,仅以芯片自身特征码为输入,芯片软件自身完成加密、鉴权功能,让盗版软件不能正常运行的工作,从而达到防止嵌入式软件被盗版使用或让盗版者付出较高的破解经济成本、时间成本,从而起到保护作用。

(2)本方法对抄板式盗版使用嵌入式软件的行为防范极好,仅依赖芯片本身和软件本身,不受外部因素影响,是相对通用、成本低、防盗版效果较好的高性价比解决方案。

附图说明

下面结合附图对本发明作进一步的说明。

图1是本发明方法的流程示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

请参阅图1所示,本发明为一种防止嵌入式软件被盗版的方法,该方法方法适用于具有下述特征的通用微控制器和微处理器:

1)具有全球唯一id号且该id号在芯片生产完毕后不可更改;

2)芯片内非易失存储器可被软件在运行时修改包括以下步骤:

步骤一、设计信息表,信息表包括芯片、加密算子和加密串,信息表被设定存储在芯片的非易失存储器的特定位置,其地址简记为addr_of_uid,addr_of_ectr、addr_of_esn;

其中芯片内只读存储器中内置有id,不同芯片个体其id具有只读、全球唯一属性,记为uid。加密算子由固定部分和随机部分组成,其中固定部分由使用者填写特定的识别数据,随机部分由下面的方法产生,以芯片uid为输入初始化C语言标准库的随机数种子函数srand,再由随机数产生函数rand产生的随机数填入,称为加密算子encryptor,记为ectr。加密串为uid与ectr通过按位进行逻辑计算后产生相同bit位数的数据串,记为esn。

步骤二、芯片上电复位,软件运行后,从addr_of_uid,addr_of_ectr、addr_of_esn处读取信息表,得到uid1、ectr、esn1;同时从芯片id寄存器读取芯片uid,记为uid2;

步骤三、若uid1、ectr、esn1比特位全部为0或1,判定为芯片首次上电,软件运行加密算子产生程序,该程序产生ectr,以uid2、ectr通过按位进行逻辑计算产生加密串,记为esn2,将uid2、ectr、esn2分另写入地址addr_of_uid,addr_of_ectr、addr_of_esn;

步骤四、软件从addr_of_uid,addr_of_ectr、addr_of_esn处读取信息表,得到uid1’、ectr’、esn1’,软件从芯片id寄存器读取芯片uid,记为uid2’,若uid2’与uid1’不相同,判定为盗版软件,软件进入盗版处理程序;若uid2’与uid1’相同进行后续步骤;

步骤五、以uid1’、ectr’为输入运行步骤三相同算法产生加密串esn2’;

步骤六、将esn1’与esn2’按位进行信息比对,若不相同,判定为盗版软件,软件进入盗版处理程序;若相同,判定为非盗版软件,软件进入正常的业务程序。

将本方案的方法在恩智浦CORTEX M4芯片LPC54608上实施为例:

S1、信息表

芯片uid为128bit位宽,视作4个32bit整数。

加密算子ectr为128bit位宽,视作4个32bit整数。

加密串esn为128bit位宽,视作4个32bit整数。

uid、ectr、esn在芯片内部FLASH存储器的存放地址见下表1,

表1

算子ectr的被设计成如下形式(不包括冒号):XYxxJKXx1x01x00x,其中XY、JKX为固定部分,10100代表加密算法的版本号,随算法改变而改变,其余每个小写的x代表一个字节宽度随机数,这些随机数由C语言库函数rand生成,随机数种子函数srand的输入为uid的值。

S2、算法

软件从表1所示地址读取信息表,得到uid1、ectr、esn1,从0x01000100地址读取芯片id得到uid2;检查uid1、ectr、uid2的值是否为0或0xffffffff,0xffffffff,0xffffffff,0xffffffff,若是,则运行算子产生程序,将得到的值填入ectr变量,以uid2、ectr变量值按bit做异或运算,将得到的结果填入esn2变量,将uid2、ectr、esn2分另写入表1对应的地址;

算子产生程序的步骤:

A、以uid2低64比特值为输入初始化随机数种子函数srand;

B、运行随机数产生函数rand共6次,每次生成的数值依次填入ectr的第2、3、7、9、12、15字节位置。

从表1所示地址读取信息表,得到uid1’、ectr’、esn1’,从0x01000100地址读取芯片id得到变量uid2’,若uid1’与uid2’不相同,判定为盗版软件,软件进入盗版处理程序;否则进入后续步骤继续判断

以uid2’与ectr’变量值按bit做异或运算,将得到的结果记录为esn2’;

比较esn1’与esn2’值是否相同,若不相同,判定为盗版软件,软件进入盗版处理程序;否则进入正常业务程序。

以上对本发明的一个实施例进行了详细说明,但所述内容仅为本发明的较佳实施例,不能被认为用于限定本发明的实施范围。凡依本发明申请范围所作的均等变化与改进等,均应仍归属于本发明的专利涵盖范围之内。

相关技术
  • 一种检测次氯酸的荧光探针及其合成方法和应用
  • 一种聚合物点/金纳米簇比率荧光探针的合成及其对三聚氰胺比率荧光检测的应用
  • 一种荧光探针及其合成方法和检测CN-的应用
  • 一种用于检测CN-的增强型荧光探针及其制备方法和生物应用
技术分类

06120116570967