一种嵌入式设备系统升级的安全性签名算法技术方案

技术编号:27202401 阅读:55 留言:0更新日期:2021-01-31 12:15
本发明专利技术公开了一种嵌入式设备系统升级的安全性签名算法,属于嵌入式操作系统升级和数据安全加密技术领域,该方法包括如下步骤:步骤一,读取待差分的二进制数据包;步骤二,对数据包进行分块;步骤三,使用预定好的签名算法对数据块分别进行签名,并记录签名算法标记值;步骤四,检验对应块的签名数据,判断是否签名数据存在冲突,若未发生签名冲突,则进行步骤七;步骤五,若签名数据发生冲突,则调整分块的大小,重复步骤二至步骤四,直至数据块签名唯一,进行步骤七。本发明专利技术的方法理论上和实践上都完全避免了数据块签冲突导致升级失败的隐患,提高了系统升级的安全。提高了系统升级的安全。提高了系统升级的安全。

【技术实现步骤摘要】
一种嵌入式设备系统升级的安全性签名算法


[0001]本专利技术涉及嵌入式操作系统升级和数据安全加密
,具体为一种嵌入式设备系统升级的安全性签名算法。

技术介绍

[0002]嵌入式操作系统被广泛的用于各个领域,同时为了适应业务更新,终端系统的更新换代也是常规性的迭代。为提高系统升级的可靠性、安全性,在升级掉电的情况下,消除升级失败的隐患,本专利技术基于本公司自行研发的专利技术专利《针对IOT设备二进制系统文件的差分升级算法》、《基于块回写的自适应双向差分算法》和《整数数组的混合打包压缩技术》的基础上,开发了一款针对嵌入式设备系统升级的安全性签名算法。

技术实现思路

[0003]本专利技术的目的在于提供一种嵌入式设备系统升级的安全性签名算法,以解决上述
技术介绍
中提出的问题。
[0004]为实现上述目的,本专利技术提供如下技术方案:一种嵌入式设备系统升级的安全性签名算法,包括如下步骤:
[0005]步骤一,读取待差分的二进制数据包;
[0006]步骤二,对数据包进行分块;
[0007]步骤三,使用预定好的签名算法对数据块分别进行签名,并记录签名算法标记值;
[0008]步骤四,检验对应块的签名数据,判断是否签名数据存在冲突,若未发生签名冲突,则进行步骤七;
[0009]步骤五,若签名数据发生冲突,则调整分块的大小,重复步骤二至步骤四,直至数据块签名唯一,进行步骤七;
[0010]步骤六,若使用该签名算法,每一次调整的块大小都发生了签名冲突,则需要更换签名算法并重复步骤二至步骤五,直至数据块签名唯一;
[0011]步骤七,记录分块的大小,签名数据,以及所用签名算法的标记值;
[0012]步骤八,对分块成功的数据进行差分,打包;
[0013]步骤九,对打包后的数据进行压缩,写入差分包。
[0014]优选的,所述步骤六中更换的签名算法为Murmur3、CRC32、xxHash或者lookup3,更换所述签名算法的顺序为Murmur3、CRC32、xxHash和lookup3。
[0015]优选的,所述步骤八中的差分得到的数据用比整数存储长度小的基础存储比特数对整数数组进行打包。
[0016]优选的,所述步骤八中的差分分为正向和反向,所述正向和反向同时进行。
[0017]优选的,所述二进制数据包包括旧版本和新版本。
[0018]与现有技术相比,本专利技术的有益效果是:
[0019]本专利技术,在差分前对数据分块并进行签名检验,保证了签名唯一性,以及掉电升级
的可靠性;该专利技术方法理论上和实践上都完全避免了数据块签冲突导致升级失败的隐患,提高了系统升级的安全。
附图说明
[0020]图1为本专利技术的生成唯一签名数据的算法流程图;
[0021]图2为本专利技术的签名唯一性说明附图,其中(a)为升级时发生掉电的情况示意图,(b)为数据块签名都发生冲突的状况示意图,(c)为数据块签名不发生冲突的状况示意图;
[0022]图3为本专利技术的签名算法标记值说明附图。
具体实施方式
[0023]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0024]请参阅图1,本专利技术提供一种技术方案:一种嵌入式设备系统升级的安全性签名算法,包括如下步骤:
[0025]步骤101,读取待差分的二进制数据包。
[0026]步骤102,分别对新旧版本的数据包进行分块。
[0027]步骤103,使用预定好的签名算法对数据块分别进行签名,以便以在升级时发生掉电,准确定位掉电的位置以继续升级;避免了在掉电情况下升级的失败。
[0028]步骤104,验证签名数据,判断新旧版本对应块的签名是否相同,若对应块的签名数据都不同,则进行步骤107。
[0029]步骤105,若签名相同,则进一步判断对应数据内容是否相同,若数据内容相同,没有数据签名冲突,则进行步骤107。
[0030]步骤106,若数据内容不同,说明该块发生了数据签名冲突,则调整数据分块的大小,重复步骤102至步骤105,使之保证签名数据的唯一性,避免数据签名冲突。
[0031]步骤107,记录分块大小,新旧版本的签名数据,以及所用算法的标记值,并写入差分包。
[0032]步骤108,对唯一签名的数据进行差分,对差分结果进行打包。
[0033]步骤109,对打包的数据进行压缩,并写入差分包。
[0034]实施方式中差分数据,均使用比整数存储长度小的基础存储比特数对整数数组进行打包,提高整数存储空间的有效利用;对打包后的数据再进行压缩。
[0035]由于在嵌入式设备的系统掉电升级时,首先会校验第一块的数据签名,并与差分包所存储的新旧版本签名数据进行对比,若与旧版本签名数据相同,则从该块开始进行升级;若与旧版本签名数据不同,则对比对应新版本数据块签名,若与新版本数据块签名相同,则说明该块已经被升级过,依次对比下一块数据签名;若与新旧版本数据块签名都不同,则说明该块升级了一部分,说明在该块发生了掉电,则应该将backup(拷贝的该块旧版本数据)覆盖至该块,再从该块开始进行升级。
[0036]若使得以上过程正常进行,就须保证新旧版本对应块的签名唯一;若对应块的签
名发生冲突,则掉电升级就可能失败。例如在图2所示,2(a)是升级时发生掉电的情况,需要校验新旧版本(A1、A2、B1、B2、C1、C2)数据块的签名,确定在哪一块发生的掉电。
[0037]当数据块签名A1、A2、B1、B2都发生冲突2(b),不仅对应块发生冲突,相邻块也发生冲突,则依次比较A1、B1、C1块的签名,发现A1与A2块的签名相同,B1与B2块的签名相同,C1块通过签名判断出是旧版本,而backup的签名与A1、A2、B1、B2都相同。这就无法通过签名确定A1或者B1是否已经升级过了,也无法判断是在升级A1块还是升级B1块发生的掉电。
[0038]当数据块A1、A2签名唯一,数据块B1、B2签名唯一,无论相邻快A1、B1有没有发生冲突2(c),都可确定掉电的位置;假设在B1块发生掉电,则A1块已经升级至A2,A1块的签名等于A2块的签名,backup的签名数据此时不等于A1块,B1块的签名不等于B2块的签名,唯一确定了在B1发生了掉电,将backup覆盖至B1块;假设在A1块发生掉电,则A1块的签名不等于A2块的签名,唯一确定了在B1发生了掉电,将backup覆盖至A1块。所以,只需要保证新旧版本对应数据块签名的唯一性,就可以避免掉电升级的失败。
[0039]在本算法中使用了murmur3哈希算法作为首选签名算法(经调研发现该签名算法质量最好),若在极端情况下,通过自适应分块进本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种嵌入式设备系统升级的安全性签名算法,其特征在于包括如下步骤:步骤一,读取待差分的二进制数据包;步骤二,对数据包进行分块;步骤三,使用预定好的签名算法对数据块分别进行签名,并记录签名算法标记值;步骤四,检验对应块的签名数据,判断是否签名数据存在冲突,若未发生签名冲突,则进行步骤七;步骤五,若签名数据发生冲突,则调整分块的大小,重复步骤二至步骤四,直至数据块签名唯一,进行步骤七;步骤六,若使用该签名算法,每一次调整的块大小都发生了签名冲突,则需要更换签名算法并重复步骤二至步骤五,直至数据块签名唯一;步骤七,记录分块的大小,签名数据,以及所用签名算法的标记值;步骤八,对分块成功的数据进行差分,打包;步骤九,对打包后的数据进行压缩,写入差分包。2.根...

【专利技术属性】
技术研发人员:仵晨阳孙荣卫张波武鹏程高佳玲
申请(专利权)人:上海艾拉比智能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1