基于硬件加密的防刷机系统及方法与流程

文档序号:11951624阅读:464来源:国知局
基于硬件加密的防刷机系统及方法与流程

本发明涉及智能设备安全技术领域,尤其涉及一种基于硬件加密的防刷机系统及方法。



背景技术:

当前智能硬件产品中,一般包含硬件和软件两部分,存在三种可能损坏设计者或者用户利益的风险。第一种,很多公司没有自己的生产制造工厂,将生成制造交给第三方代工厂,公司做完产品设计,将PCB原理图和相对应的软件代码交由代工厂生成并烧录程序,设计公司对代工厂的实际生产数量无法严格控制,可能出现代工厂将原始未修改的软件运行在其盗版的硬件上,俗称抄板,比如代工厂多生产硬件,而使用原始软件,最终形成产品,损害设计公司的利益;第二种,将其他软件运行在原始硬件上,俗称刷机,比如定制机上刷通用版本的软件或私人定制版本软件,损害运营商的利益;第三种,在存在用户信息的原始硬件上恢复默认设置或刷成默认系统,也称为刷机,比如手机被盗后,通过刷机去除用户密码等,损害用户的利益。

当前针对防抄板,可以使用CPU或存储设备的产品序列号或硬件加密芯片,其中,使用加密芯片更加灵活和安全。针对防刷机,可以检测用户的使用习惯或借助硬件中固化的程序对外部程序进行检测或使用用户密钥来关闭刷机通路等,其中,使用用户密钥的方式更通用。当前防抄板和防刷机技术都是单独进行,没有兼备两种功能的低成本装置。



技术实现要素:

为了克服现有技术的不足,本发明的目的之一在于提供基于硬件加密的防刷机系统,其能同时实现防刷机和防抄板的功能。

本发明的目的之二在于提供基于硬件加密的防刷机方法,其能够同时实现防刷机和防抄板的功能,利用加密芯片的AES解密模块对软件进行验证,以硬件信号输出对软件的验证结果,以此作为对开关模块的控制信号。

本发明的目的之一采用以下技术方案实现:

一种基于硬件加密的防刷机系统,包括主机、加密芯片和开关模块;所述加密芯片包括接收模块、AES解密模块、处理模块、随机数生成模块、输出模块、OTP模块、密钥访问模块和存储模块;所述接收模块、密钥访问模块和输出模块均与主机连接;所述OTP模块、处理模块和AES解密模块均与密钥访问模块连接;所述OTP模块、接收模块和处理模块均与AES解密模块连接;所述开关模块、随机数生成模块和输出模块与处理模块连接,随机数生成模块与输出模块连接,所述存储模块与密钥访问模块连接;

所述随机数生成模块用于生成一随机数,并将该随机数通过输出模块发送至主机以及处理模块;所述主机用于根据来自随机数生成模块的随机数和存储于主机中的密钥生成密文,或根据主机产生的随机数和存储于主机中的密钥生成密文;所述接收模块用于将来自主机的启动信号和密文发送至AES解密模块,使AES解密模块获取OTP模块或存储模块的密钥,并结合密文生成相应的解密数据并发送至处理模块;所述处理模块用于将解密数据和随机数进行比对。

优选的,还包括I2C接口,所述接收模块、密钥访问模块和输出模块均通过I2C接口与主机连接。I2C为一种通信接口,用于加密芯片与主机通信,采用I2C协议。

优选的,所述开关模块包括电源开关、显示开关和数据通路开关中的一种或多种。

本发明的目的之二采用以下技术方案实现:

一种基于硬件加密的防刷机方法,应用于本发明目的之一所述的基于硬件加密的防刷机系统,包括如下步骤:

步骤一:接收模块接收来自主机的启动信号和密文,启动信号为抄板信号或刷机信号,密文为防刷机密文或防抄板密文;

当密文为防抄板密文,且启动信号为抄板信号时,执行步骤二;

当密文为防刷机密文,且启动信号为刷机信号时,执行步骤六;

步骤二:接收模块将防抄板密文发送至AES解密模块;

步骤三:AES解密模块从OTP模块中读取防抄板密钥,并根据防抄板密文和防抄板密钥生成第一解密数据,发送第一解密数据至处理模块;

步骤四:处理模块通过输出模块将第一解密数据发送至主机;

步骤五:主机根据第一解密数据控制程序的运行状态;

步骤六:随机数生成模块生成第二随机数并发送至处理模块,AES解密模块通过密钥访问模块读取存储模块中的防刷机密钥;

步骤七:AES解密模块根据防刷机密钥和防刷机密文得到第二解密数据,并发送该第二解密数据至处理模块;

步骤八:处理模块判断第二解密数据与第二随机数是否相同,若是,则通过处理模块输出启动信号至开关模块,否则,通过处理模块输出关闭信号至开关模块。

优选的,执行步骤一之前还包括如下步骤:

步骤A:主机通过输出模块接收来自随机数生成模块发送的第二随机数;

步骤B:主机根据存储于主机中的防抄板密钥和主机中生成的第一随机数生成防抄板密文,以及根据存储于主机中的防刷机密钥和第二随机数生成防刷机密文。

优选的,步骤一中,所述启动信号还可以为刷机更新信号,密文还可以为刷机更新密文,当启动信号为刷机更新信号,且密文为刷机更新密文时,执行如下步骤:

步骤九:随机数生成模块生成第三随机数并发送至处理模块,AES解密模块通过密钥访问模块读取存储模块中的防刷机密钥;

步骤十:AES解密模块根据防刷机密钥和更新密文得到第三解密数据,并发送该第三解密数据至处理模块;

步骤十一:处理模块判断第三解密数据与第三随机数是否相同,若是,则输出可写控制信号至处理模块,使处理模块通过密钥访问模块设置存储模块为可写状态,否则,输出不可写控制信号至处理模块,使处理模块通过密钥访问模块设置存储模块为不可写状态。

优选的,所述防刷机密文由主机根据存储于主机中的防刷机密钥和第三随机数生成。

相比现有技术,本发明的有益效果在于:

本发明能够同时实现防刷机和防抄板的功能,利用加密芯片的AES解密模块对软件进行验证,以硬件信号输出对软件的验证结果,以此作为对开关模块的控制,当验证通过时,控制开关模块为开启,当验证不通过时,控制开关模块为关闭。

附图说明

图1为本发明的基于硬件加密的防刷机系统的模块结构图;

图2为本发明的基于硬件加密的防刷机方法的流程图。

具体实施方式

下面,结合附图以及具体实施方式,对本发明做进一步描述:

参见图1,本发明提供一种基于硬件加密的防刷机系统,其包括主机、加密芯片和开关模块;所述加密芯片包括接收模块、AES解密模块、处理模块、随机数生成模块、输出模块、OTP模块、密钥访问模块和存储模块;所述接收模块、密钥访问模块和输出模块均与主机连接;所述OTP模块、处理模块和AES解密模块均与密钥访问模块连接;所述OTP模块、接收模块和处理模块均与AES解密模块连接;所述开关模块、随机数生成模块和输出模块与处理模块连接,随机数生成模块与输出模块连接,所述存储模块与密钥访问模块连接。

主机为运行程序的处理器系统,如单片机、嵌入式系统、SOC等。主机与加密芯片之间可以通过I2C接口连接,也就是接收模块、密钥访问模块和输出模块均通过I2C接口与主机连接。

随机数生成模块用于生成一随机数,并将该随机数通过输出模块发送至主机以及处理模块;在本发明中,使用的是伪随机序列发生算法,其输入序列为内部时钟计数器。主机用于根据来自随机数生成模块的随机数和存储于主机中的密钥生成密文,另外主机内部本身也可以生成随机数,因而主机也可以根据主机产生的随机数和存储于主机中的密钥生成密文;所述接收模块用于将来自主机的启动信号和密文发送至AES解密模块,当AES解密模块接收到启动信号和密文时,获取OTP模块或存储模块的密钥,获取方式为直接获取或者通过密钥访问模块获取,之后结合密文生成相应的解密数据并发送至处理模块;处理模块用于将解密数据和随机数进行比对。AES解密模块使用的是AES128bit算法。

OTP模块为one time program,即一次可编程存储,用于存储防抄板密钥、芯片的序列号以及防刷机密钥可编程使能信号。OTP模块只能编程一次,且需要在高压下进行,在正常工作电压下不能编程,防抄板密钥不能被外部读取。存储模块用于存储防刷机密钥,其为可多次编程存储,可以在正常工作电压下读写,防刷机密钥不能被外部读取。防刷机密钥只有在硬件防刷机可编程使能信号有效或存储模块为可写状态时才能被设置。防刷机可编程使能信号用于防刷机密钥的初始设置。密钥访问模块与主机连接,主机通过密钥访问模块可更新防刷机密钥。

开关模块包括电源开关、显示开关和数据通路开关中的一种或多种。这些开关模块当在lock=1的状态下,表示打开这些开关模块,当在lock=0的状态下,表示关闭这些开关模块,通过处理模块控制lock=1或lock=0。

另外一方面,参见图2,本发明提供基于硬件加密的防刷机方法,其应用于上述提供的基于硬件加密的防刷机系统,包括如下步骤:

步骤S1:接收模块接收来自主机的启动信号和密文,启动信号为抄板信号、刷机信号或更新信号中的一种,密文为防刷机密文、防抄板密文或更新密文中的一种;

当密文为防抄板密文,且启动信号为抄板信号时,执行步骤S2;

当密文为防刷机密文,且启动信号为刷机信号时,执行步骤S6;

当密文为更新密文,且启动信号为更新信号时,执行步骤S9;

步骤S2:接收模块将防抄板密文发送至AES解密模块;

步骤S3:AES解密模块从OTP模块中读取防抄板密钥,并根据防抄板密文和防抄板密钥生成第一解密数据,发送第一解密数据至处理模块;

步骤S4:处理模块通过输出模块将第一解密数据发送至主机;

步骤S5:主机根据第一解密数据控制程序的运行状态;这里的程序指的是发生抄板行为时所运行的程序。程序的运行状态包括运行或停止运行。

对于上述步骤S2至步骤S5为防抄板验证流程,实际上主机会生成一随机数,定义为第一随机数,并且主机内存储有与加密芯片OTP模块中所存储的防抄板密钥一样的防抄板密钥,主机根据防抄板密钥和第一随机数生成密文,之后主机将密文写入加密芯片中并等待加密芯片解密完成,之后主机从加密芯片中读回解密的结果,也就是解密数据,比较解密数据是否与第一随机数相同,如果是,就将程序继续运行,否则,停止该程序的运行。

步骤S6:随机数生成模块生成第二随机数并发送至处理模块,AES解密模块通过密钥访问模块读取存储模块中的防刷机密钥;

步骤S7:AES解密模块根据防刷机密钥和防刷机密文得到第二解密数据,并发送该第二解密数据至处理模块;

步骤S8:处理模块判断第二解密数据与第二随机数是否相同,若是,则通过处理模块输出启动信号至开关模块,否则,通过处理模块输出关闭信号至开关模块。

步骤S6至步骤S8为防刷机流程,实际上,随机数生成模块生成的第二随机数也会通过输出模块发送至主机,主机内部存储有与加密芯片中一致的防刷机密钥,主机根据第二随机数和防刷机密钥生成防刷机密文,并发送至加密芯片,执行步骤S6至步骤S7的流程。设置加密芯片上电时lock=0,保证在没有经过刷机验证之前,开关模块不能正常工作,同时防止主机绕过随机数生成。启动信号也就是刷机请求。处理模块判断到第二解密数据与第二随机数相同时,才设置lock=1,使开关模块工作,并且加密芯片接收刷机命令,执行刷机操作。

步骤S9:随机数生成模块生成第三随机数并发送至处理模块,AES解密模块通过密钥访问模块读取存储模块中的防刷机密钥;

步骤S10:AES解密模块根据防刷机密钥和更新密文得到第三解密数据,并发送该第三解密数据至处理模块;

步骤S11:处理模块判断第三解密数据与第三随机数是否相同,若是,则输出可写控制信号至处理模块,使处理模块通过密钥访问模块设置存储模块为可写状态,否则,输出不可写控制信号至处理模块,使处理模块通过密钥访问模块设置存储模块为不可写状态。

步骤S9至步骤S11为密钥更新流程,实际上,随机数生成模块所生成的第三随机数也会通过输出模块发送至主机中,主机是根据该第三随机数和自身存储的更新密钥生成更新密文,并写入至加密芯片中。加密芯片接收到主机的更新密文后启动解密操作,得到第三解密数据,处理模块判断第三解密数据与第三随机数是否一致,若一致的情况下,则控制存储模块为可写,主机通过密钥访问模块发送新密钥至存储模块,也就是此时可以对存储模块存储的密钥进行更新。

对本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及形变,而所有的这些改变以及形变都应该属于本发明权利要求的保护范围之内。

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