嵌入式设备加密与验证方法

文档序号:9249403阅读:516来源:国知局
嵌入式设备加密与验证方法
【技术领域】
[0001]本发明涉及嵌入式技术领域,尤其涉及一种嵌入式设备加密与验证方法。
【背景技术】
[0002]随着嵌入式设备的广泛应用,其软硬件设计技术直接代表着设备的价值,对嵌入式设备的加密保护显得愈发重要。目前,对于嵌入式的加密方式主要为:在设备中使用保护型EEPROM对软件进行密钥验证加密,即嵌入式系统在出厂时将生成的密钥同时写入EEPROM芯片和设备存储器中,每次设备上电后CPU都会读取EEPROM芯片中的密钥与存储器中的密钥进行一致性验证,验证通过则加载核心代码。
[0003]上述方式要在设备中额外增加一片加密芯片,增加了生产成本。此外,这种方式的密码验证过程信息可以简单地通过芯片管脚信号监测获取,非法者通过回放验证信息即可完成破解,从而对设备的软件和硬件进行复制。
[0004]另外,同一厂家往往会根据市场需求和售价的高低基于同一软硬件平台开发出多个不同功能版本的设备,出于设计复杂度考虑往往采用同一种加密方式,现有的加密方式在密钥验证通过后即加载核心代码,不会验证该核心代码是否已授权在当前版本的设备中运行,这就可能导致不同版本设备之间核心软件的非法移植,不利于厂家的设备版本控制。

【发明内容】

[0005]本发明所要解决的技术问题在于,提供一种嵌入式设备加密与验证方法,本发明在不增加额外加密器件的情况下对嵌入式设备进行加密和验证,避免了嵌入式设备的核心代码和硬件被恶意复制和篡改。
[0006]为了解决上述技术问题,本发明提供一种嵌入式设备加密与验证方法,包括:
[0007]S101、将驱动代码和核心代码烧录至嵌入式设备;其中,所述驱动代码包含有加密程序和存储器的驱动程序,所述核心代码中含有核心应用程序和适用于本型号设备的设备版本序列号;
[0008]S102、嵌入式设备上电后,嵌入式设备的CPU运行所述驱动代码;
[0009]S103、所述CPU从所述存储器中读取出所述存储器的芯片号,并从所述核心代码中提取出所述设备版本序列号;
[0010]S104、所述CPU通过所述加密程序将所述芯片号和所述设备版本序列号加密形成第一设备密码;
[0011]S105、所述CPU从所述存储器的设备密码区中读取第二设备密码;若读取到的第二设备密码为空,则执行S106,否则执行S107 ;
[0012]S106、所述CPU将所述芯片号输出至所述存储器的数据安全区,并终止运行;
[0013]S107、所述CPU对所述第一设备密码和所述第二设备密码进行一致性验证;若一致,则验证通过,所述CPU运行所述核心代码,否则执行S106。
[0014]进一步的,还包括步骤:
[0015]S108、采用计算机从所述存储器的数据安全区中提取所述芯片号;
[0016]S109、计算机根据输入的嵌入式设备的设备型号采用加密软件从内部检索到对应的设备版本序列号;
[0017]S110、计算机采用所述加密软件将检索到的设备版本序列号和所述芯片号加密形成第二设备密码,并写入至所述存储器的数据安全区中,其中,述加密软件的加密方式和S104的加密方式相同;
[0018]S111、重启嵌入式设备,返回执行S102。
[0019]进一步的,所述S104包括步骤:
[0020]S1041、CPU将读取的芯片号加密;
[0021]S1042、CPU将读取的设备版本序列号加密;
[0022]S1043、CPU将加密后的芯片号和加密后的设备版本序列号再综合加密生成第一设备密码。
[0023]进一步的,所述存储器具体为NAND FLASH。
[0024]进一步的,所述芯片号为所述存储器自带的全球唯一芯片ID。
[0025]实施本发明,具有如下有益效果:
[0026]1、无需额外增加加密芯片,降低生产成本;
[0027]2,NAND FLASH芯片ID数据受保护,无法更改,确保了每台设备的设备密码全球唯一,即使复制了全部的软件和硬件也无法正常运行;
[0028]3、增加设备版本加密因素,可防止具有相同加密方式的不同版本之间的软硬件非法移植,且设备版本序列号位于核心代码的特定位置,难以从庞大的二进制数据中破解出来;
[0029]4、加密方式可由厂家按照自身要求开发,个性化较强,破解难度极大。
【附图说明】
[0030]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0031]图1是本发明提供的嵌入式设备加密与验证方法的一个实施例的流程示意图。
【具体实施方式】
[0032]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0033]图1是本发明提供的嵌入式设备加密与验证方法的一个实施例的流程示意图,如图1所示,包括步骤:
[0034]S101、将驱动代码和核心代码烧录至嵌入式设备。
[0035]其中,所述驱动代码包含有加密程序和存储器的驱动程序,所述核心代码中含有核心应用程序和适用于本型号设备的设备版本序列号。其中,所述存储器具体为NANDFLASH。
[0036]S102、嵌入式设备上电后,嵌入式设备的CPU运行所述驱动代码。
[0037]S103、所述CPU从所述存储器中读取出所述存储器的芯片号,并从所述核心代码中提取出所述设备版本序列号。
[0038]其中,所述芯片号具体为NAND FLASH自带的全球唯一芯片ID。
[0039]S104、所述CPU通过所述加密程序将所述芯片号和所述设备版本序列号加密形成第一设备密码。
[0040]具体的,所述S104包括步骤:
[0041]S1041、CPU将读取的芯片号加密;
[0042]S1042、CPU将读取的设备版本序列号加密;
[0043]S1043、CPU将加密后的芯片号和加密后的设备版本序列号再综合加密生成第一设备密码。
[0044]S105、所述CPU从所述存储器的设备密码区中读取第二设备密码。
[0045]若读取到的第二设备密码为空,则执行S106,否则执行S107 ;
[0046]S106、所述CPU将所述芯片号输出至所述存储器的数据安全区,并终止运行。
[0047]S107、所述CPU对所述第一设备密码和所述第二设备密码进行一致性验证。若一致,则验证通过,所述CPU运行所述核心
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1