本发明属于嵌入式设备软件远程升级领域,具体涉及一种无人清洁车软件包的生成、更新方法及装置。
背景技术:
1、无人清洁车,作为道路清洁领域的自动化先锋,旨在通过其自主导航的能力,替代传统人力进行道路清扫工作。它们遵循预设的路径,高效地执行清洁作业,从而提升清洁效率并降低人力成本。
2、随着无人清洁车的智能化水平不断提升,其软件的远程更新变得至关重要。鉴于这些车辆通常处于无人监控的运行环境,因此必须确保在进行软件升级时,采取严格的安全措施和保障机制,以确保升级过程的高可靠性和安全性。
3、尽管在其他技术领域,已有一些软件包的生成和更新方法,但这些方法并不适用于无人清洁车这一特定领域。例如,中国发明专利-一种智能音箱操作系统ota包升级方法及系统(cn202011350658)公开了一种针对智能音箱的ota包升级方法,其使用了数字证书链和根ca证书对ota包进行签名,这种方式对系统的算力和存储空间有一定要求,不适合在算力和存储空间都比较有限的无人清洁车上应用。另外,中国发明专利-生成软件包的方法、软件包的刷写更新方法及签名方法(cn202111350757)公开了一种软件包的生成、更新和签名方法,但该方法在传输过程中不采用加密措施,直接传输明文信息,这对于无人值守且对安全性和可靠性要求较高的无人清洁车来说,存在数据被窃取和远程攻击的风险。
技术实现思路
1、为解决现有技术的不足,实现既适应无人清洁车硬件资源限制,又保障数据传输高安全性的软件更新的目的,本发明采用如下的技术方案:
2、一种无人清洁车软件包的生成方法,包括如下步骤:
3、步骤101、将用于更新的软件包分块,得到软件包数据块,以匹配硬件安全引擎,优化安全算法的计算效率;
4、步骤102、对每个软件包数据块,采用带密钥的不可逆算法,使用第一预置密钥,生成子消息认证码,将其保存为局部变量,等待后续通过组合逻辑生成消息认证码组合表;带密钥的不可逆算法包括hmac和cmac,这些算法继承了传统摘要算法的单向特性,确保了从摘要无法逆向推导出原始信息,同时,它们通过引入密钥机制,增强了生成摘要的安全性;
5、步骤103、根据软件包数据块的子消息认证码,通过逻辑组合方法,生成消息认证码组合表,将其存储于软件包的尾部;
6、步骤104、对每个软件包数据块和消息认证码组合表,采用对称加密算法,使用第二预置密钥加密,生成软件包密文数据块;
7、步骤105、将软件包密文数据块进行组合,生成用于发布的软件包。
8、进一步地,所述步骤101中,基于控制器容量,确定数据块尺寸,调整软件包大小以使其尺寸为数据块的整数倍,基于数据块尺寸对软件包分块,得到软件包数据块。
9、进一步地,所述调整软件包大小packagesize的计算方式如下:
10、
11、其中,blocksize表示数据块尺寸,在软件包末尾填充paddingsize个数的0xff字节,以便消息认证码表的检索;
12、划分的数据块个数blocknums的计算方式如下:
13、
14、进一步地,所述步骤103中的子消息认证码的逻辑组合方法,是将块编号为奇数的数据块的子消息认证码组合在一起,块编号为偶数的数据块的子消息认证码组合在一起。
15、进一步地,所述步骤103中的子消息认证码的逻辑组合方法,是将块编号为素数的数据块的子消息认证码组合在一起,块编号为非素数的数据块的子消息认证码组合在一起。
16、一种无人清洁车软件包的更新方法,包括如下步骤:
17、步骤201、根据软件包中数据块的地址,将发布的用于更新的软件包分块,得到软件包密文数据块;
18、步骤202、对软件包密文数据块采用对称的解密算法,使用第二预置密钥,得到软件包数据块和用于验证的消息认证码组合表;
19、步骤203、对软件包数据块采用带密钥的不可逆算法,使用第一预置密钥,生成实际的子消息认证码;
20、步骤204、根据软件包数据块的实际的子消息认证码,通过逻辑组合方法,生成实际的消息认证码组合表,并将其存储于软件包的尾部;
21、步骤205、比较用于验证的消息认证码组合表和实际的消息认证码组合表是否一致,若是,则通过软件包数据块进行更新,否则,更新失败。
22、进一步地,所述步骤204中实际的子消息认证码的逻辑组合方法,是将块编号为奇数的数据块的子消息认证码组合在一起,块编号为偶数的数据块的子消息认证码组合在一起。
23、进一步地,所述步骤204中实际的子消息认证码的逻辑组合方法,是将块编号为素数的数据块的子消息认证码组合在一起,块编号为非素数的数据块的子消息认证码组合在一起。
24、一种无人清洁车软件包的生成装置,包括分块模块、子认证模块、组合模块、加密模块和打包模块;
25、所述分块模块,将用于更新的软件包分块,得到软件包数据块;
26、所述子认证模块,对每个软件包数据块,采用带密钥的不可逆算法,使用第一预置密钥,生成子消息认证码;
27、所述组合模块,根据软件包数据块的子消息认证码,通过逻辑组合方法,生成消息认证码组合表,将其存储于软件包;
28、所述加密模块,对每个软件包数据块和消息认证码组合表,采用对称加密算法,使用第二预置密钥,生成软件包密文数据块;
29、所述打包模块,将软件包密文数据块进行组合,生成用于更新的软件包。
30、一种无人清洁车软件包的更新装置,包括分块模块、解密模块、实际认证模块、实际组合模块和比较模块;
31、所述分块模块,根据软件包中数据块的地址,将发布的用于更新的软件包分块,得到软件包密文数据块;
32、所述解密模块,对软件包密文数据块采用对称的解密算法,使用第二预置密钥,得到软件包数据块和用于验证的消息认证码组合表;
33、所述实际认证模块,对软件包数据块采用带密钥的不可逆算法,使用第一预置密钥,生成实际的子消息认证码;
34、所述实际组合模块,根据软件包数据块的实际的子消息认证码,通过逻辑组合方法,生成实际的消息认证码组合表,并将其存储于软件包的尾部;
35、所述比较模块,比较用于验证的消息认证码组合表和实际的消息认证码组合表是否一致,若是,则通过软件包数据块进行更新,否则,更新失败。
36、本发明的优势和有益效果在于:
37、本发明的一种无人清洁车软件包的生成、更新方法及装置,通过对软件包进行分块、计算与组合消息认证码,以及对数据严格加密,为无人清洁车提供了一个多层次的安全防护体系。这不仅有效预防了数据泄露和软件包篡改的风险,而且通过增强的数据完整性验证和安全加密,显著提升了系统的安全性和操作的可靠性,确保无人清洁车能安全可靠的完成升级。
1.一种无人清洁车软件包的生成方法,其特征在于包括如下步骤:
2.根据权利要求1所述的一种无人清洁车软件包的生成方法,其特征在于:所述步骤101中,基于控制器容量,确定数据块尺寸,调整软件包大小以使其尺寸为数据块的整数倍,基于数据块尺寸对软件包分块,得到软件包数据块。
3.根据权利要求2所述的一种无人清洁车软件包的生成方法,其特征在于:所述调整软件包大小packagesize的计算方式如下:
4.根据权利要求1所述的一种无人清洁车软件包的生成方法,其特征在于:所述步骤103中的子消息认证码的逻辑组合方法,是将块编号为奇数的数据块的子消息认证码组合在一起,块编号为偶数的数据块的子消息认证码组合在一起。
5.根据权利要求1所述的一种无人清洁车软件包的生成方法,其特征在于:所述步骤103中的子消息认证码的逻辑组合方法,是将块编号为素数的数据块的子消息认证码组合在一起,块编号为非素数的数据块的子消息认证码组合在一起。
6.一种无人清洁车软件包的更新方法,其特征在于包括如下步骤:
7.根据权利要求1所述的一种无人清洁车软件包的生成方法,其特征在于:所述步骤204中实际的子消息认证码的逻辑组合方法,是将块编号为奇数的数据块的子消息认证码组合在一起,块编号为偶数的数据块的子消息认证码组合在一起。
8.根据权利要求1所述的一种无人清洁车软件包的生成方法,其特征在于:所述步骤204中实际的子消息认证码的逻辑组合方法,是将块编号为素数的数据块的子消息认证码组合在一起,块编号为非素数的数据块的子消息认证码组合在一起。
9.一种无人清洁车软件包的生成装置,包括分块模块、子认证模块、组合模块、加密模块和打包模块,其特征在于:
10.一种无人清洁车软件包的更新装置,包括分块模块、解密模块、实际认证模块、实际组合模块和比较模块,其特征在于:
