一种基于硬件信息的水声通信设备软件加密方法技术

技术编号:34840085 阅读:21 留言:0更新日期:2022-09-08 07:36
本发明专利技术公开了一种基于硬件信息的水声通信设备软件加密方法,包括以下步骤,步骤1,水声通信软件引导程序初始化;步骤2,水声通信出厂初始化软件运行;步骤3,进入水声通信算法及加密校验程序;步骤4,水声通信软件随机数填充程序。本发明专利技术通过水声通信设备固有的值班电路和信号处理模块相配合,通过密钥交互验证的方式对水声通信设备软件进行加密,大大降低了水声通信软件在同样硬件结构平台上被复制破解的可能性。的可能性。的可能性。

【技术实现步骤摘要】
一种基于硬件信息的水声通信设备软件加密方法


[0001]本专利技术涉及水声通信领域,具体涉及一种基于硬件信息的水声通信设备软件加密方法。

技术介绍

[0002]传统的水声通信设备结构主要分成值班电路和数字信号处理模块两部分,其中水声通信设备在平时静默状态时只有值班电路处于工作状态,当接收到唤醒信号时,值班电路将数字信号处理模块上电并将信号输入通道交给数字信号处理模块控制,数字信号处理模块利用内部水声信号处理软件进行复杂的水声通信信号的调制解调工作。由此,信号处理模块中的水声通信软件在整个水声通信机中起着决定性的作用。
[0003]随着海洋观测、探测数据传输、水下定位导航等任务对水声通信的需求越来越大,大规模水声通信设备应用的可能性越来越大。由于进行水声通信进行研究的大多是高校和科研机构,对于软件的保护能力不够,大多数软件直接被处理器引导,没有相应的加密和保护措施,这样极易被复制和破解,从而阻碍水声通信技术的发展。
[0004]现有的程序加密方式主要有程序段编译加密、特定序列号加密及网络授权加密等方式。由于水声通信设备大多数长期工作在水下,无法与现有互联网连接,网络授权方式存在较大缺陷。同时程序段编译加密已经广泛应用于嵌入式处理平台,所以利用特定序列号进行加密是提高水声通信设备程序安全性中比较高效的方式。

技术实现思路

[0005]本专利技术所要解决的技术问题是,提供一种基于硬件信息的水声通信设备软件加密方法,通过水声通信设备固有的值班电路和信号处理模块相配合,通过密钥交互验证的方式对水声通信设备软件进行加密,大大降低了水声通信软件在同样硬件结构平台上被复制破解的可能性。
[0006]本专利技术的技术解决方案是,提供一种基于硬件信息的水声通信设备软件加密方法,
[0007]通过信号处理模块收集自身和值班电路的唯一序列号作为密钥,通过初次引导程序进行加密,正常引导程序验证的方式,实现水声通信软件的加密。
[0008]具体的,包括以下步骤,
[0009]步骤1,水声通信软件引导程序初始化,通过开机引导程序选择出厂初始化程序和通信算法及加密校验程序,其中开机引导程序实现的功能是在初次上电后引导处理器进入出厂初始化程序完成加密消息摘要生成,在完成第一次引导后,以后的每次引导都直接进入到通信算法及加密校验程序;
[0010]步骤2,水声通信出厂初始化软件运行,利用水声通信设备中值班电路和数字信号处理单元间的特定结构关系,利用二者上特有的独立序列号作为密钥生成加密消息摘要的方式对水声通信软件第一次上电后加密;
[0011]步骤3,进入水声通信算法及加密校验程序,首先对密钥生成消息摘要进行校验,来判断程序是否在原始硬件上运行,如果校验成功,水声通信设备会正常运行水声通信算法程序,如果不匹配则自动跳入死循环中或低性能水声通信算法程序,让破译者完全无法使用或不能全部使用;
[0012]步骤4,水声通信软件随机数填充程序,在程序烧写设备中运行的水声通信软件随机数填充软件获取三段程序的二进制文件及大小后,先将三段程序烧写进通信设备的FLASH中,再生成随机数烧写进每段程序间的空白位置。
[0013]作为优选,步骤1的流程具体如下,
[0014]步骤1.1,首次进入引导程序,将烧写在FLASH内存区域内的出厂初始化程序入口地址读取到RAM内存中的临时变量中,等待程序进行引导;
[0015]步骤1.2,由于步骤1.1中已经将出厂初始化程序入口地址存入RAM中临时变量中,为了避免下次进入引导程序后再次将处理器引导进出厂初始化程序位置,需将水声通信算法及加密校验程序入口地址覆盖出厂初始化程序,保证引导程序完成首次引导后每次都引导处理器进入通信算法及加密校验程序;
[0016]步骤1.3,首次上电时,临时变量中存储的是出厂初始化程序地址入口,处理器将临时变量中的值重新装载即可完成出厂初始化程序引导;再次上电时,临时变量中存储的是水声通信算法及加密校验程序入口地址,处理器将临时变量中的值重新装载即可完成对水声通信算法及加密校验程序引导。
[0017]作为优选,步骤2的流程具体如下,
[0018]步骤2.1,进入程序后数字信号处理单元发送获取值班电路唯一序列号命令,然后进入等待循环中等待值班电路回复,获取到值班电路唯一序列号后,数字信号处理单元再读取本芯片的唯一序列号,将两组序列号交替排序后生成的新序列号作为加密密钥;
[0019]步骤2.2,将生成的密钥通过SHA256加密算法计算出对应的消息摘要,再通过写FLASH的方式将消息摘要永久写入加密消息摘要存储位置;
[0020]步骤2.3,完成消息摘要生成后,水声通信软件出厂初始化程序执行擦写自身程序所在FLASH区域函数。由于执行程序时,水声通信软件出厂初始化程序已经读取到RAM区中,所以不会对本次程序执行造成影响,完成擦除程序后,将入口地址重新设定为引导程序位置,由于步骤1中完成对出厂初始化程序入口地址的替换,所以当处理器再次进入到引导程序后会被直接引导入水声通信算法及加密校验程序中。
[0021]作为优选,步骤3的流程具体如下,
[0022]步骤3.1,和步骤2.1方式相同,将获取到的值班电路序列号和数字信号处理模块内部序列号进行组合生成密钥,再次通过SHA256的方式生成加密消息摘要,读取本地消息摘要所在的存储段将两组消息摘要进行逐字符对比;
[0023]步骤3.2,完成步骤3.1后,若比对结果匹配,自动进入到水声通信程序中;若比对结果不匹配,自动跳入死循环中或低性能水声通信算法程序,从而停止执行上位机下发的信号传输功能及相应的信号解调功能。
[0024]采用以上方案后与现有技术相比,本专利技术具有以下优点:
[0025]该方法利用水声通信设备具有值班电路和其他外围电路的特殊结构,采用多个密钥加密,逐个硬件验证的方式,大大降低了水声通信软件被同结构硬件复制破解风险;通过
出厂引导程序自动根据密钥生成消息摘要并存储到储存区的固定位置,在完成消息摘要生成后,出厂引导程序会自动将自身所在的储存区擦除,不仅降低大规模量产难度,还防止生成消息摘要程序被抓取破解;通过在不同程序段间填充随机数,完成对生成消息摘要位置的隐藏,降低通过分析消息摘要存储位置进而破解加密程序的可能性,并通过多段模块化程序进行密钥生成及密钥填充验证完成程序加密,加密算法可以进行相应的替换及增加,为后续加密算法升级更新降低复杂度。
附图说明:
[0026]图1为水声通信软件引导程序流程图;
[0027]图2为水声通信软件出厂初始化程序流程图;
[0028]图3为水声通信软件算法及加密校验程序流程图;
[0029]图4为水声通信软件随机数填充程序流程图;
[0030]图5为水声通信软件程序在存储器中存储结构图。
具体实施方式:
[0031]下面结合附图就具体实施方式对本专利技术作进一步说明:
[0032]一种基于硬件信本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于硬件信息的水声通信设备软件加密方法,其特征在于:通过信号处理模块收集自身和值班电路的唯一序列号作为密钥,通过初次引导程序进行加密,正常引导程序验证的方式,实现水声通信软件的加密。2.根据权利要求1所述的基于硬件信息的水声通信设备软件加密方法,其特征在于:包括以下步骤,步骤1,水声通信软件引导程序初始化,通过开机引导程序选择出厂初始化程序和通信算法及加密校验程序,其中开机引导程序实现的功能是在初次上电后引导处理器进入出厂初始化程序完成加密消息摘要生成,在完成第一次引导后,以后的每次引导都直接进入到通信算法及加密校验程序;步骤2,水声通信出厂初始化软件运行,利用水声通信设备中值班电路和数字信号处理单元间的特定结构关系,利用二者上特有的独立序列号作为密钥生成加密消息摘要的方式对水声通信软件第一次上电后加密;步骤3,进入水声通信算法及加密校验程序,首先对密钥生成消息摘要进行校验,来判断程序是否在原始硬件上运行,如果校验成功,水声通信设备会正常运行水声通信算法程序,如果不匹配则自动跳入死循环中或低性能水声通信算法程序,让破译者完全无法使用或不能全部使用;步骤4,水声通信软件随机数填充程序,在程序烧写设备中运行的水声通信软件随机数填充软件获取三段程序的二进制文件及大小后,先将三段程序烧写进通信设备的FLASH中,再生成随机数烧写进每段程序间的空白位置。3.根据权利要求1所述的基于硬件信息的水声通信设备软件加密方法,其特征在于:步骤1的流程具体如下,步骤1.1,首次进入引导程序,将烧写在FLASH内存区域内的出厂初始化程序入口地址读取到RAM内存中的临时变量中,等待程序进行引导;步骤1.2,将水声...

【专利技术属性】
技术研发人员:崔英桥谢哲王桢铎杜鹏宇王超
申请(专利权)人:中国船舶重工集团公司第七一五研究所
类型:发明
国别省市:

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

1