控制板加密和解密方式、终端设备及计算机可读存储介质的制作方法

文档序号:17235173发布日期:2019-03-30 08:19阅读:253来源:国知局
控制板加密和解密方式、终端设备及计算机可读存储介质的制作方法

本发明实施例涉及加密技术领域,特别涉及用于伺服驱动器的控制板加密和解密方法、终端设备及计算机可读存储介质。



背景技术:

伺服驱动器是现代运动控制的重要组成部分,被广泛应用于工业机器人及数控加工中心等自动化设备中,主要由驱动部分、电容部分及模块部分构成。伺服驱动器因可以利用复杂的控制算法对电机进行高精度的控制,从而实现了对电机的智能化控制。随着我国自动化市场的快速发展,伺服驱动器也进入了高速发展期。因伺服相关产品存在开发成本高,难度大,周期长等特点,则需要对科研成果进行保护。

现有技术中通常对伺服驱动器的控制板进行加密,其中控制板主要包括cpu(centralprocessingunit,中央处理器),fpga(field-programmablegatearray,即现场可编程门阵列),。如图1所示,在现有技术中,通过cpu访问外部的加密芯片(例如ds82e01,dn2016n等)来实现对控制板的加密。

发明人发现现有技术中至少存在如下问题:

1)采用外部的加密芯片,增加了产品成本,在伺服产品竞争如此激烈的市场格局下,增加器件成本必定削减了产品的竞争力;

2)采用外部加密芯片的加密方式非常公开,在相关芯片手册上就有相关的说明,从而减低了产品的破解难度;

3)采用外部加密芯片的加密算法只能加密cpu程序,不能加密fpga程序,但是随着伺服控制精度越来越高,越来越多的电机算法使用fpga来实现,因此保护fpga代码的安全也至关重要。



技术实现要素:

本发明实施方式的目的在于提供一种控制板加密和解密方式、终端设备及计算机可读存储介质,在不需要增加伺服驱动的硬件成本的前提下,实现对伺服驱动器控制板嵌入式程序和fpga程序的安全加密。

为解决上述技术问题,本发明的实施方式提供了一种控制板加密方式,包括以下步骤:根据cpu唯一序列号和程序固化密钥生成第一次加密密文,再通过fpga对cpu数据和fpga数据进行二次加密,生成的加密密文包括携带cpu唯一序列号和程序固化密钥的有效密文及随机产生的迷惑密文;将所述加密密文保存在eeprom中,其中所述有效密文根据预设规则进行多地址保存,迷惑密文随机保存;解密时,cpu根据所述唯一序列号和程序固化密钥计算出cpu加密密文,fpga读取eeprom中的加密密文,进行有效密文提取并进行二次加密的解密,如果经fpga提取并解密后有效密文和cpu计算出的cpu加密密文匹配,则解密成功。

本发明的实施方式还提供了一种终端设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如前所述的控制板加密和解密方法。

本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现如前所述的控制板加密和解密方法。

本发明实施方式相对于现有技术而言,将加密密文保存在eeprom中,eeprom是控制器自带的元件,因此在不需要增加伺服驱动的硬件成本的前提下,实现对控制板的加密。此外,加密密文包括有效密文和迷惑密文,其中有效密文携带cpu的唯一序列号代码,能够保证加密密文的唯一性,避免了被非法拷贝的风险,迷惑密文通过随机数产生,则对非法拷贝能够起到很强的迷惑作用,从而实现对控制板的安全加密。

另外,在eeprom中预先指定多个地址作为eeprom的密文区用以保存加密密文,保存加密密文的地址序列在每次上电后会按预设规律改变,迷惑密文每次上电后会也会随机改变,能够让加密密文的编号杂乱无章,让破解者难以找不到密文的变化规律,从而大大的是提高了破解难度。

另外,当需要解密时,cpu根据所述唯一序列号和程序固化密钥计算出密文,fpga从eeprom预先指定多个地址中读取加密密文,并进行有效数据提取,然后将fpga提取的有效密文和cpu计算出的密文进行比较,如果匹配,则解密成功,程序正常运行;如果不匹配,则解密不成功,程序停止运行。比较密文的流程在fpga中完成,保证在解密不成功时,fpga代码不能运行,从而避免了fpga代码未授权的使用情况。

附图说明

一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。

图1是现有技术中控制板加密的示意图;

图2是本发明提供的控制板加密的示意图;

图3是本发明第一实施方式提供的控制板加密的流程示意图;

图4是本发明第二实施方式提供的控制板加密方法的流程示意图;

图5是本发明实施方式提供的终端设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。

如图2所示,伺服驱动器的控制板包括cpu、fpga、功率模块和m序列,此外控制板还包括eeprom(electricallyerasableprogrammablereadonlymemory,带电可擦可编程只读存储器)。和现有技术不同的是,本发明创造性的将加密信息保存在控制板内部的eeprom中,从而能够在不需要增加伺服驱动的硬件成本的前提下,实现对伺服驱动器控制板的安全加密。

本发明的第一实施方式涉及一种控制板加密和解密方法,具体流程可以参考图3所示,包括以下步骤:

步骤301,根据cpu唯一序列号和程序固化密钥生成第一次加密密文,再通过fpga对cpu数据和fpga数据进行二次加密,生成的加密密文包括携带cpu唯一序列号和程序固化密钥的有效密文及随机产生的迷惑密文。

步骤302,将所述加密密文保存在eeprom中,其中所述有效密文根据预设规则进行多地址保存,迷惑密文随机保存。

步骤303,解密时,cpu根据所述唯一序列号和程序固化密钥计算出cpu加密密文,fpga读取eeprom中的加密密文,进行有效密文提取并进行二次加密的解密,如果经fpga提取并解密后有效密文和cpu计算出的cpu加密密文匹配,则解密成功。

上述步骤301中,根据cpu的唯一序列号和程序固化密钥生成第一次加密密文,再通过fpga对cpu数据和fpga数据进行二次加密,具体包括:

在cpu中首先根据cpu的唯一id号和程序固定密码,也可以再结合一些别的用途的字符串,例如一些时间字符,通过ase(advancedencryptionstandard,高级加密标准)算法生成第一次加密密文,即计算出32byte字符串,再通过fpga对加密出来的32byte与固定序列的32byte数据进行异或,异或后的代码再进行不固定位数的循环移位,这样就实现了在fpga中进行的二次加密过程,然后根据预先设定好的保存位置,将32byte密文保存到一个杂乱无章的位置上,最后在通过fpga产生随机数填入非保存密文的地址中,通过上述步骤完成加密过程。

上述步骤302中,在eeprom中对加密密文进行多地址保存,具体包括:在eeprom中,预先指定多个地址作为eeprom的密文区用以保存加密密文,在密文区,所述有效密文保存到预先设定好的保存位置,并通过fpga产生随机数填入非保存有效密文的地址;保存所述有效密文的地址在每次上电后根据规则进行改变,而保存所述迷惑密文的地址在每次上电后随机改变。

上述步骤303中,由于fpga没有唯一序列号,因此在本发明实施例中将比较密文的流程在fpga中完成,保证在解密不成功时,fpga代码不能运行,从而避免了fpga代码未授权的使用情况。当需要解密时,cpu根据所述唯一序列号和程序固化密钥计算出cpu加密密文,fpga从eeprom预先指定的多个地址中读取加密密文,并进行有效数据提取,然后将fpga提取的有效密文和cpu计算出的密文进行比较,如果匹配,则解密成功,程序正常运行;如果不匹配,则解密不成功,程序停止运行。

通过上述的流程可以看出,将加密密文保存在eeprom中,eeprom是控制器自带的元件,因此在不需要增加伺服驱动的硬件成本的前提下,实现对控制板的加密。此外,加密密文包括有效密文和迷惑密文,其中有效密文携带cpu的唯一序列号代码,能够保证加密密文的唯一性,避免了被非法拷贝的风险,迷惑密文通过随机数产生,则对非法拷贝能够起到很强的迷惑作用,从而实现对控制板的安全加密。

本发明的第二实施方式涉及一种控制板加密和解密方法。本实施方式在第一实施方式步骤303的解密流程的基础上做了进一步改进,具体可以参考图4所示,包括以下步骤:

步骤401,fpga读取eeprom中的加密密文。

在本步骤中,在解密的过程中,首先fpga从eeprom中的密文区读取加密密文。

步骤402,fpga去除迷惑密文,进行有效密文提取并进行二次加密的解密。

在本步骤中,fpga根据代码中固化的位置序列,进行有效密文的提取,再通过逆移位和与固定字符的异或完成二次加密的解密。

步骤403,fpga判断提取的有效密文是否为初始密文,如果是,则返回步骤401;如果否,则执行步骤404。

在本步骤中,为了生产方便,代码需要确定一个默认的初始密文,该初始密文的字符串通常是假设cpu的唯一序列号,例如假设cpu的唯一序列号为“88888888”计算出来的,这样在出厂时,所有的eeprom密文区只需要写入同一段数据就可以。而一旦cpu上电运行后,eeprom的密文就改为根据cpu真实的唯一序列号生成的唯一密文。因此,需要首先判断fpga的密文是否为一个初始密文的字符串。

步骤404,cpu根据唯一序列号和程序固化密钥计算出密文。

cpu通过将唯一序列号和程序固化密钥,也可以再结合一些别的用途的字符串,例如一些时间字符,通过aes加密算法计数出不可逆的密文。

步骤405,将fpga提取和解密的有效密文和cpu计算出的密文进行比较,判断是否匹配,如果匹配,则执行步骤406,如果不匹配,则执行步骤408。

在本步骤中,如果fpga提取和解密的字符串与cpu根据唯一序列号和程序固化密钥计算出的字符串相同,即为匹配。

步骤406,产生新的迷惑密文填入eeprom的密文区。

在本步骤中,产生迷惑的密文主要是让破解者不知道密文保存的具体位置,而且迷惑性密文是有随机数产生的,而密文的保存地址也是按照一定规律在变的,这样让破解者觉得每次上电后eeprom中的数据都再变,根本找不到规律。

步骤407,解密成功,程序正常运行。

步骤408,解密不成功,程序停止运行。

通过上述的流程可以看出,使用eeprom保存加密密文,能够保护cpu数据和fpga数据安全,通过集合cpu的唯一序列号和程序固化的密钥通过不可能算法计算出密文,在fpga中读取eeprom中的加密密文并进行有效数据提取后和cpu计算的密文进行比较,将比较密文的任务在fpga中完成,保证在解密不成功时,fpga代码不能运行,从而避免了fpga代码未授权的使用情况。

上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。

本发明第三实施方式涉及一种终端设备,如图5所示,包括存储器和处理器。其中,存储器和处理器采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器和存储器的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器。

处理器负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器可以被用于存储处理器在执行操作时所使用的数据。

本发明第六实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。

即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

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