一种加密、验证发电机组控制器的方法及加密系统与流程

文档序号:20918902发布日期:2020-05-29 13:53阅读:190来源:国知局

本发明涉及发电机组防盗版技术领域,具体的说,涉及了一种加密、验证发电机组控制器的方法及加密系统。



背景技术:

发电机组控制器作为发电机组的大脑部分,不但提供发动机的开机、停机、数据测量、数据显示和故障保护功能,而且还提供发电机的电量测量、显示和保护功能。发电机组的自动化控制,历经继电器控制、plc控制和智能化控制3个阶段,向更智能、更人性化的方面发展。

通常企业投入大量的时间和资金研发出一款新型发电机组控制器,但是新型发电机组控制器刚一上市,竞争对手即通过非法复制发电机组控制器单片机内的程序代码来制作盗版控制器;市场上出现的盗版控制器,不但导致企业经济效益受损,而且不利于强化企业品牌影响力。

为了解决以上存在的问题,人们一直在寻求一种理想的技术解决方案。



技术实现要素:

本发明的目的是针对现有技术的不足,从而提供一种加密发电机组控制器的方法、安全验证方法及其系统。

为了实现上述目的,本发明所采用的技术方案是:

本发明第一方面提供一种加密发电机组控制器的方法,包括以下步骤:

上位机读取发电机组控制器的单片机唯一id序列号;

上位机生成随机数a,并将所述随机数a插入到单片机唯一id序列号中某个位置,生成中间码a;其中,所述中间码a包括单片机唯一id序列号和所述随机数a;

上位机对所述中间码a进行md5校验,并将获得的md5校验值作为对应发电机组控制器的秘钥;

上位机将所述随机数a和所述秘钥写入相应发电机组控制器,对发电机组控制器进行加密。

本发明第二方面提供一种验证发电机组控制器的方法,基于上述的加密发电机组控制器的方法对发电机组控制器进行加密;

发电机组控制器进入当前工作周期,开始验证时段计时;

当验证时段计时到达预设时间后,发电机组控制器开始读取单片机唯一id序列号和随机数b,将获得的随机数b插入单片机唯一id序列号中指定位置获得中间码b,对所述中间码b进行md5校验;并将md5校验结果与读取的秘钥进行比较;

若一致,则判定发电机组控制器安全验证通过;否则,判定发电机组控制器为盗版发电机组控制器,锁定发电机组控制器功能,并发出警告。

本发明第三方面提供一种发电机组控制器加密系统,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上述的加密发电机组控制器的方法的步骤。

本发明第四方面提供一种发电机组控制器,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上述的验证发电机组控制器的方法的步骤。

本发明相对现有技术具有突出的实质性特点和显著的进步,具体的说:

1)本发明提供一种加密发电机组控制器的方法,在发电机组控制器出厂时,上位机根据随机数a和单片机唯一id序列号采用md5校验方式对每台发电机组控制器进行加密,增加了加密破解难度,从而防止发电机组控制器的程序被他人复制及盗用;避免企业经济效益受损,有助于强化企业品牌影响力;

2)本发明提供一种验证发电机组控制器的方法,在发电机组控制器运行时间到达预设时间时或者发电机组控制器开机次数大于阈值时,发电机组控制器自动执行安全验证方法,对发电机组控制器的合法性进行验证;若安全验证未通过,则锁定所述发电机组控制器,并发出警告,保护企业知识产权;同时给发电机组控制器的盗版人员造成损失,从而起到震慑盗版的目的。

具体实施方式

下面通过具体实施方式,对本发明的技术方案做进一步的详细描述。

实施例1

一种加密发电机组控制器的方法,它包括以下步骤:上位机读取发电机组控制器的单片机唯一id序列号;上位机生成随机数a,并将所述随机数a插入到单片机唯一id序列号中某个位置,生成中间码a;其中,所述中间码a包括单片机唯一id序列号和所述随机数a;上位机对所述中间码a进行md5校验,并将获得的md5校验值作为对应发电机组控制器的秘钥;上位机将所述随机数a和所述秘钥写入相应发电机组控制器,对发电机组控制器的程序文件进行加密。

其中,单片机唯一id序列号为每个单片机芯片的唯一标识码;每台发电机组控制器的单片机唯一id序列号是独一无二的;上位机为每台发电机组控制器生成的随机数a也不相同;因此,上位机根据单片机唯一id序列号和所述随机数a获得的秘钥也是独一无二的,大大提高了发电机组控制器的加密性能;同时采用md5函数来获得秘钥,使得发电机组控制器加密破解难度大幅增加,有效防止发电机组控制器的程序被复制。

为了进一步增加加密破解难度,上位机还设置偏移量,在发电机组控制器接收所述随机数a和所述秘钥并存储后;上位机根据所述偏移量对所述随机数a和所述秘钥在发电机组控制器内的存储地址进行偏移。

在上述加密发电机组控制器的方法的基础上,本发明还给出了一种验证发电机组控制器的方法,利用上述加密发电机组控制器的方法对发电机组控制器进行加密后;发电机组控制器进入当前工作周期,开始验证时段计时;当验证时段计时到达预设时间后,发电机组控制器开始读取单片机唯一id序列号和随机数b,将获得的随机数b插入单片机唯一id序列号中指定位置获得中间码b,对所述中间码b进行md5校验;并将md5校验结果与读取的秘钥进行比较;若一致,则判定发电机组控制器安全验证通过;否则,判定发电机组控制器安全验证未通过,锁定所述发电机组控制器,并发出警告。其中,所述指定位置与上位机加密时所述随机数a插入的位置一致。

需要说明的是,发电机组控制器内的程序文件和数据文件是分开存储的,且存储所述随机数a和所述秘钥的数据文件是隐藏且不可复制的;盗版人员只能复制程序文件,无法复制数据文件。

可以理解,如果为原版发电机组控制器,发电机组控制器进行安全验证时,读取到的随机数b与加密时的随机数a是完全相同的,将随机数b插入单片机唯一id序列号中某个位置获得中间码b与中间码a是相同的;发电机组控制器读取秘钥为,上位机加密时写入的密钥;因而,对所述中间码b进行md5校验获得校验结果与发电机组控制器读取到的秘钥相比,必然是一致的。

需要说明的是,如果为盗版发电机组控制器,当发电机组控制器运行到达预设时间必然要进行安全验证,但盗版发电机组控制器里只存储有验证发电机组控制器的方法的程序,而未存储随机数a和密钥。此时,发电机组控制器读取到随机数b和秘钥均为空,显然将此时的空随机数b插入单片机唯一id序列号中指定位置计算出的中间码b与中间码a是完全不同的;发电机组控制器对中间码b进行md5校验获得的校验结果与发电机组控制器读取到的空秘钥相比,必然不一致。

实施例2

本实施例与实施例1的区别在于:

本实施例中,在将所述随机数a和所述秘钥发送至发电机组控制器之前,还执行:上位机向所述发电机组控制器发送解锁指令;所述发电机组控制器接收上位机发送的解锁指令,并判断解锁指令与预先设置的解锁指令是否一致;若一致,则判定发电机组控制器解锁成功,允许发电机组控制器与上位机进行通讯,以接收所述随机数a和所述秘钥;若不一致,则判定发电机组控制器解锁不成功,不允许发电机组控制器与上位机进行通讯。

在发电机组控制器接收并存储所述随机数a和所述秘钥之后,还执行:上位机向所述发电机组控制器发送加锁指令;所述发电机组控制器接收上位机发送的加锁指令,并判断加锁指令与预先设置的加锁指令是否一致;若一致,则判定发电机组控制器加锁成功,结束发电机组控制器与上位机之间的通讯进程;若不一致,则判定发电机组控制器加锁不成功,并输出加锁不成功的警示信息。

在其他实施例中,还统计发电机组控制器的开机次数,以判断是否启动安全验证进程;当发电机组控制器开机时,判断所述开机次数是否大于阈值;当所述开机次数大于阈值时,则执行权利要求7所述的验证发电机组控制器的方法。

实施例3

本实施例与上述实施例的区别在于:

本实施例中,上位机设置随机数生成模块,所述随机数生成模块用以生成两个字节的第一随机数;接着,上位机随机抽取单片机唯一id序列号中的两个字节作为第二随机数,对所述第一随机数和所述第二随机数求余处理,并将求余结果作为所述随机数a,进一步提高了发电机组控制器的加密破解难度。

在其他实施例中,上位机可以设置随机数生成模块,用以生成随机数a。或者,上位机设置随机数生成模块,用以生成第三随机数;然后,上位机对所述第三随机数加密,并将加密后的第三随机数作为随机数a。

实施例4

本实施例给出了一种发电机组控制器加密系统,它包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上述的加密发电机组控制器的方法的步骤。

实施例5

本实施例给出了一种发电机组控制器,它包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上述验证发电机组控制器的方法的步骤。

最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1