一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种通过二次烧录实现单片机程序加密的方法与流程

2023-01-15 10:41:28 来源:中国专利 TAG:


1.本发明属于程序加密技术领域,具体为一种通过二次烧录实现单片机程序加密的方法。


背景技术:

2.充电终端(ccu)是一个连接矿灯的充电终端设备,它可以将矿灯内置锂电池充电,实时读取充电电压、充电电流并在液晶屏幕上显示信号内容;同时充电参数可以通过数据传输信号线发送到计算机,计算机也可以通过数据传输信号线下发充电柜单元人员照片,姓名、工号、班组等文字信息,在充电终端(ccu)生产的过程中,需要将对应的程序文件数据烧录至ccu中。
3.当前,将数据烧录至ccu时,通常是通过直接将需要烧录的数据烧录至ccu,烧录数据(程序)容易被反汇编窃取程序代码(数据),窃取后烧录芯片,降低了产品的保密性与数据安全性。
4.现有单片机程序加密方法中的有以下七种方式:一、烧断数据总线:这个方法效果不错,但有损坏单片机的风险,另外此方法只适用于并行总线,不适合所有的单片机系统;二、芯片打磨改型:这个方法有一定作用,改了型号能误导,但同时也增加成本,解密者一般也能分析出来;三、软件加密:是一些防止别人读懂程序的方法,单一的这种方法不能防止别人全盘复制。须配合其他的加密方法;四、通过序列号加密:这个方法当你的产品是连接pc时或网络,是一个比较理想的方法,原理跟电话产品防伪标志相近,是在单片机中生成一个唯一的随机长序列号,并加入复杂的特种算法,每个芯片内不同,复制者只能复制到一个序列号,这个方法不能防止复制,但能发现复制品,并可在升级或在网络状态控制它或让他自毁,如果产品不联机或不可升级,则这个方法完全无效,另外在比较庞大的系统里,校验序列号增加了工作量,特别是在增加新的终端时,还要人为在系统里添加新增终端序列号以作识别,因此费时费力;五、通过单片机唯一的特性标识(不可修改)进行加密:此方法可做到芯片内程序被读出也无法直接在另一个同型号的单片机上正常运行,这种方法主要是在程序中嵌入这个唯一性标识序列号与读取芯片序列号比较,存在比较明显的缺点是:每个终端要写入不同的序列号,因此生产和维护带来一定困难;资深单片机工程师容易查找到这种加密方式,只要去掉程序中这段比较代码,复制程序就成功了;六、通过加密位实现加密:部分单片机在烧录程序时,同时烧录加密位,一般为熔丝,此种加密方式比较可靠,但是也存在缺点,因加密位一般在程序代码前,通过专用工具擦除加密位后设置延时断点,依旧可以读出程序代码;七、通过终端外存储介质加密:通过外置存储介质,例如u盘,读取u盘秘钥进行相互验证,这种方法保密性高,缺点是增加成本,同时也不能防止程序被复制,只要反汇编成功去掉验证代码,也能复制程序。
5.综上所述,现有技术防范单片机程序泄密存在着成本高、加密存在漏洞的缺点。


技术实现要素:

6.本发明的目的在于提供一种通过二次烧录实现单片机程序加密的方法,以解决上述背景技术中提出的问题。
7.为了实现上述目的,本发明提供如下技术方案:一种通过二次烧录实现单片机程序加密的方法,所述产品包括微处理器cpu、外部非易失性存储器、lcd模组、电源芯片、485通信芯片、电机驱动芯片和声光驱动电路单元。
8.优选地,所述微处理器cpu内含ram、非易失性存储器、定时器、id号只读存储单元、逻辑运算单元和a/d转换器,所述lcd模组显示图片及文字信息,所述外部非易失性存储器可存储图片及人员信息,所述电源芯片为ccu终端提供电源,所述485通信芯片实现ccu终端与计算机通信,所述电机驱动芯片可驱动控制电机正反装实现开关锁功能,所述声光驱动电路单元可实现语音播报及led发光指示,所述微处理器cpu与外部非易失性存储器、lcd模组通过485通信芯片总线连接,其他单元通过i/o口连接。
9.优选地,所述烧录数据的加密方法:第一次烧录32bit秘钥至外部非易失性存储器;第二次烧录程序文件数据验证两个非易失性存储器32bit秘钥是否相等;第一步:第一次烧录秘钥:由公司生产ccu所具有的唯一性编码生成32位唯一性秘钥,秘钥烧录在ccu模块的第二非易失性存储器地址2中;第二步:第二次烧录程序文件数据:ccu模块的cpu读取第一非易失性存储器地址1芯片id数据及第二非易失性存储器地址2数据,通过解密运算后,比较地址1数据内容与地址2数据解密后内容是否相等,若相等,则秘钥验证通过;否则擦除地址2数据内容,然后令程序进入死循环。
10.优选地,所述烧录数据进行加密的步骤:第一步:由cpu读取唯一id序列号,通过加密算法生成唯一32bit秘钥;第二步:第一次烧录将烧录秘钥发送到ccu上外部非易失性存储器,秘钥存储于第二存储器地址2中;第三步:第二次烧录将目标程序文件(数据)烧录至第一存储器中。
11.优选地,所述第二次烧录目标程序文件的秘钥验证步骤包括:第一步:获取使用所述烧录数据的第一存储器物理地址1和第二存储器的物理地址2;第二步:将所述物理地址1获得数据1,将所述物理地址2秘钥数据进行解密运算获得数据2,数据1和数据2进行比较,若相等则秘钥验证成功;若不相等,则验证失败。
12.优选地,所述秘钥验证结果的处理步骤:s1:秘钥验证成功,程序文件跳转到程序地址1,执行正常运行程序,运行到程序地址2;s2:秘钥验证失败,程序文件跳转至程序地址3,执行非正常运行程序,擦除第一存储器程序地址1至程序地址2的数据、地址1数据及第二存储器的地址2数据,然后令程序进入死循环。
13.优选地,所述第一次烧录秘钥数据,所述第二次烧录数据后程序运行进行秘钥验证,所述第一次烧录秘钥与第二次烧录无相关性。
14.优选地,所述终端包括有处理器、第一存储器、第二存储器和通信总线,所述处理器为cpu,所述通信总线用于实现各个组件之间的连接通信。
15.优选地,所述第一存储器和第二存储器位置可以互换,所述第一存储器和第二存储器皆可为cpu内嵌存储器或者外部存储器,所述第一存储器和第二存储器可一个为内部存储器,一个为外部存储器,所述第一存储器和第二存储器可以是prom、eeprom存储器,也可以是flash存储器。
16.优选地,所述cpu可读存储介质的第一存储器和第二存储器中烧录程序,所述cpu可以用于调用存储器第一存储器和第二存储器中存储的烧录数据和秘钥并执行以下操作:第一步:第一次烧录秘钥至第二存储器地址2;第二步:第二次烧录程序文件数据至第一存储器,cpu可以用于调用第一存储器中存储的烧录数据的程序,并执行以下操作:s1:获取第一存储器地址1的id数据和第二存储器地址2数据,比较两个数据是否相等,相等则跳转程序地址1至程序地址2之间执行用户程序;s2:若不相等,则是非法获取程序,跳转至程序地址3,擦除第二存储器地址2秘钥数据。
17.本发明的有益效果如下:1、本发明通过程序被复制以后,应用在另外终端上,由于cpu读取外部存储器秘钥1解密后与单片机id号不一致,会导致验证失败,自动擦除内外存储器重要数据,使得数据复制失败,避免数据丢失。
18.2、本发明通过找到程序中单片机id号与外部存储器秘钥1存在关联关系,但由于无法获取特征编码及加密算法,破译概率在k=,因此破译难度很大,提高数据的加密安全性。
19.3、本发明通过可以在程序中多处校验秘钥,因此,通过找出秘钥验证代码实现解密无疑工作量是极其巨大的,只有理论上存在可能,故而使得数据的安全性极高。
附图说明
20.图1为本发明终端的硬件架构示意图;图2为本发明秘钥生成流程图;图3为本发明第一次烧录流程图;图4为本发明第二次烧录流程图;图5为本发明秘钥验证流程图。
具体实施方式
21.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
22.如图1至图5所示,本发明实施例提供了一种通过二次烧录实现单片机程序加密的
方法,产品包括微处理器cpu、外部非易失性存储器、lcd模组、电源芯片、485通信芯片、电机驱动芯片和声光驱动电路单元;如图1所示,在一个实施例中,微处理器cpu内含ram、非易失性存储器、定时器、id号只读存储单元、逻辑运算单元和a/d转换器,lcd模组显示图片及文字信息,外部非易失性存储器可存储图片及人员信息,电源芯片为ccu终端提供电源,485通信芯片实现ccu终端与计算机通信,电机驱动芯片可驱动控制电机正反装实现开关锁功能,声光驱动电路单元可实现语音播报及led发光指示,微处理器cpu与外部非易失性存储器、lcd模组通过485通信芯片总线连接,其他单元通过i/o口连接;微处理器cpu功能是采样电压、电流信号,通过485通信芯片接口与计算机进行通信驱动lcd模组显示系统下发的人员信息、图片及完成计算机控制指令上传数据信息,控制外部语音电路发出语音,驱动外部led点亮指示,控制电机正反转实现开锁、关锁功能。
23.如图1至图5所示,在一个实施例中,烧录数据的加密方法:第一次烧录32bit秘钥至外部非易失性存储器;第二次烧录程序文件数据验证两个非易失性存储器32bit秘钥是否相等;第一步:第一次烧录秘钥:由公司生产ccu所具有的唯一性编码生成32位唯一性秘钥,秘钥烧录在ccu模块的第二非易失性存储器地址2中;第二步:第二次烧录程序文件数据:ccu模块的cpu读取第一非易失性存储器地址1芯片id数据及第二非易失性存储器地址2数据,通过解密运算后,比较地址1数据内容与地址2数据解密后内容是否相等,若相等,则秘钥验证通过;否则擦除地址2数据内容,然后令程序进入死循环;如图1至图5所示,在一个实施例中,烧录数据进行加密的步骤:第一步:由cpu读取唯一id序列号,通过加密算法生成唯一32bit秘钥;第二步:第一次烧录将烧录秘钥发送到ccu上外部非易失性存储器,秘钥存储于第二存储器地址2中;第三步:第二次烧录将目标程序文件(数据)烧录至第一存储器中。
24.如图1至图5所示,在一个实施例中,第二次烧录目标程序文件的秘钥验证步骤包括:第一步:获取使用烧录数据的第一存储器物理地址1和第二存储器的物理地址2;第二步:将物理地址1获得数据1,将物理地址2秘钥数据进行解密运算获得数据2,数据1和数据2进行比较,若相等则秘钥验证成功;若不相等,则验证失败。
25.如图1所示,在一个实施例中,秘钥验证结果的处理步骤:s1:秘钥验证成功,程序文件跳转到程序地址1,执行正常运行程序,运行到程序地址2;s2:秘钥验证失败,程序文件跳转至程序地址3,执行非正常运行程序,擦除第一存储器程序地址1至程序地址2的数据、地址1数据及第二存储器的地址2数据,然后令程序进入死循环。
26.如图1所示,在一个实施例中,第一次烧录秘钥数据,第二次烧录数据后程序运行进行秘钥验证,第一次烧录秘钥与第二次烧录无相关性;通过第一次烧录秘钥与第二次烧录无相关性,使得非法窃取第二次烧录数据后,
无法在其它ccu上通过秘钥验证,提供了烧录数据的安全性。
27.如图1所示,在一个实施例中,终端包括有处理器、第一存储器、第二存储器和通信总线,处理器为cpu,通信总线用于实现各个组件之间的连接通信。
28.如图1所示,在一个实施例中,第一存储器和第二存储器位置可以互换,第一存储器和第二存储器皆可为cpu内嵌存储器或者外部存储器,第一存储器和第二存储器可一个为内部存储器,一个为外部存储器,第一存储器和第二存储器可以是prom、eeprom存储器,也可以是flash存储器;通过第一存储器和第二存储器位置可以互换,通过第一存储器和第二存储器皆可为cpu内嵌存储器或者外部存储器,通过第一存储器和第二存储器可一个为内部存储器,一个为外部存储器,通过第一存储器和第二存储器可以是prom、eeprom存储器,也可以是flash存储器,使得第一存储器和第二存储器不止局限于本文中提出的个例,亦不代表应用例子的全部,即本文中内容可运用在其他相关技术领域,增强本文内容的实用性。
29.如图1至图5所示,在一个实施例中,cpu可读存储介质的第一存储器和第二存储器中烧录程序,cpu可以用于调用存储器第一存储器和第二存储器中存储的烧录数据和秘钥并执行以下操作:第一步:第一次烧录秘钥至第二存储器地址2;第二步:第二次烧录程序文件数据至第一存储器,cpu可以用于调用第一存储器中存储的烧录数据的程序,并执行以下操作:s1:获取第一存储器地址1的id数据和第二存储器地址2数据,比较两个数据是否相等,相等则跳转程序地址1至程序地址2之间执行用户程序;s2:若不相等,则是非法获取程序,跳转至程序地址3,擦除第二存储器地址2秘钥数据;通过cpu可以用于调用存储器第一存储器和第二存储器中存储的烧录数据和秘钥,再将第一次烧录秘钥至第二存储器地址2,接着第二次烧录程序文件数据至第一存储器,在实施例中,cpu可以用于调用第一存储器中存储的烧录数据的程序,若不相等,则是非法获取程序,跳转至程序地址3,擦除第二存储器地址2秘钥数据,使得窃取则无法读取数据,避免数据泄露。
30.工作原理及使用流程:本发明通过二次烧录,在单片机外部存储器和内部存储器烧录有关联关系的两组秘钥,通过解密算法,实现单片机终端系统自行验证,即使程序复制成功,也只能在原终端上运行,若更换终端,则秘钥验证无法通过,同时启动自毁程序,外部存储器秘钥,令其无法获得秘钥内容,无从解密,从而达到保密的目的;本发明第一次烧录,烧录程序在外部存储器写入秘钥1,秘钥1是32bit数据,是在单片机唯一标识id基础上与32bit特征编码的加密数据;s1:第二次烧录,烧录用户目标程序;s2:目标程序运行,读取外部存储器秘钥1进行解密运算;本发明获得解密数据与单片机内部存储器id号比较,若相等,验证成功,程序顺序执行;若不相等,则擦除外部存储器秘钥1,提高数据安全性;通过以上描述,本领域的技术人员可以清楚地了解到上述实施方法可借助软件必
需的通用硬件平台的方式来实现,也可以通过硬件,但很多情况下前者是更佳的实施方式;基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该处理器(cpu)软件产品存储在如上述的一个存储介质(如rom/eeprom、falsh、其他存储介质如磁碟、光盘)中,执行本发明各个实施例的方法。
31.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
32.尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献