水下武器测控系统数据加密技术探讨
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
水下武器测控系统数据加密技术探讨
发布时间:2022-07-15T06:31:08.669Z 来源:《科学与技术》2022年第5期3月作者:袁日
[导读] 针对水下武器平台试验中对实时数据采集、加密、上传的需求,对测控系统的结构功能进行设计,数据加密采取DES加密算法
袁日
(中国船舶集团公司第七一○研究所,湖北宜昌 443003)
摘要:针对水下武器平台试验中对实时数据采集、加密、上传的需求,对测控系统的结构功能进行设计,数据加密采取DES加密算法。采用DES加密算法的dsp实现、数据处理中心的实现方式有效解决实际需求中测控系统数据加密面临的问题和难点。通过实践和数据加密中心的效果及数据分析得出文章设计的测控系统加密算法具有高效、快捷、稳定的特点,满足试验需求。
关键词:水下武器平台;DSP;FPGA;数据加密;数据安全
0 引言
水下武器航行试验时,需要水下武器系统的测控系统实时记录整个水下武器平台的信息,这些信息都属于保密信息,如何保证数据的加密和安全转存是急需解决的问题。文章在测控系统的一般原理上进行了资源优化、合理分工、运用科学手段和工具,使水下武器平台测控系统较好的达到了数据加密效果。
1 水下武器测控系统加密的意义
水下武器数据的即时加密存储,可以有效防止存储介质落入敌方手中,可理解的信息不被解开,对方得到的只是不可理解的的二进制数。设计时需要着重考虑加密后的数据安全可靠,敌方难于解开,考虑硬件资源的有限性,保持系统各种功能具有较高的执行效率。
数据转存就是要把下位机(即本系统)的数据转到上位机(即PC机),为了防止上位机有木马程序窃取下位机的转存密码,数据转存时需要建立数据转存密码和一套加密算法。数据转存密码的多样性在每一次转存数据时,使用的合法密码不一样,即便某一次转存时密码被泄漏了,但是由于下一次的密码是不一样的,这样就避免进一步的泄密。
2 水下武器平台测控系统构造
某型水下武器平台的测控系统的应用平台是DSP+FPGA,负责采集和记录运载器的数据,以及运载器的安全管制。它的数据管理技术可以分解成:数据安全中心,高速开关量的采集模块,数据加密中心,数据模块化管理机制。
数据安全中心负责数据的安全采集,主要功能是把接收到的以太网数据和串口数据跟通讯协议做字符匹配,能应对非法数据的侵入,防止系统死机和控制流程的误动。
高速开关量的采集模块用于采集微妙级的高速开关量,包括采集开关量的脉宽和开关量的个数,本文章设计时使用了FPGA在软件里模拟触发器实现高速开关量的采集。
数据加密中心使用DES算法在不到10 ms时间内,把约2 000个字节的数据加密。
数据模块化管理机制用于处理复杂的程序源代码,用模块化的思想对系统程序进行划分,最后产生源代码,且利于程序维护。
测控系统主要从以太网口、RS485串口和I/O口上收集、加密和存储信息。在一定条件下触发两路DO,对运载器的安全进行控制。运载器回收以后,通过以太网把数据送到PC机上分析。测控系统功能框图如图1。
图1 测控系统功能框图
3 测控系统加密的难点
试验中需要系统实时处理海量数据,系统完成数据的接收、存储和传输、数据接收前的智能识别、数据的即时加密、高速数据的可靠采集、海量程序数据的分解处理等。
加密技术的核心就是把要加密的信息(明文)通过一张张的置换表(密钥),变成难以识别的信息(密文)。试验中,测控系统里每个200 ms工作周期内数据加密需要的时间要控制在10 ms内,如何选择合适的算法在不影响系统本身功能的前提下,保证数据的安全加密是研究的重点。
测控系统所采集的信息量非常巨大,难点在以太网通讯上。在采集到合法信息的时候,需要在很短的时间内(小于2 ms)判断和回复,而且每次采集到的以太网报文的桢长都在1 400个字节左右。我们采用了字符匹配方法,用于接收数据和通讯协议的字符比对和判断,如何选择合适的算法建立数据安全中心,保证可靠地接收、判断和存储这些海量信息是一个重点研究的问题。
测控系统还要采集一些特殊的高速开关量,开关量的脉宽只有1~10 μs。该系统的dsp对开关量的采集周期是200 ms,而需要采集的高
速开关量的脉宽只有2 μs,如果直接使用dsp采集这些开关量,那么成功采集的概率只有100 000分之一。如果有2个2 μs脉宽的开关量出现在同一个dsp采集周期内,那么肯定有一个开关量的采集是轮空的,这是要解决的一个难点。
测控系统功能多,软件软代码复杂,大概有20 000行,这些代码如果管理不妥善,会使得编程思路不清晰且不便于维护修改。模块化思想是一种处理方法,但需要封装很多函数,当这些函数又具有一定关联性时,源代码越多,文字翻译工作的工作量越大。修改一处的源代码,容易关联到好几处需要修改的源代码,系统越复杂关联的源代码就越多,给修改带来了难度,这也是要解决的问题。
4 测控系统的设计方案
本测控系统应用平台是DSP+FPGA,DSP芯片具有并行乘法器等优越架构,适用于实时高速信号处理。FPGA芯片可以大规模地集成数字电路,减少了PCB的元器件,还可以通过修改软件可达到修改硬件的目的。
总体思路:用一个最常见的数据加密算法DES算法在DSP应用层软件里实现,然后再考虑把FPGA加进来,把一部分加密工作下放到FPGA。对于数据加密中心,考核指标主要是以太网报文的丢包率、每个周期加密需要的时间、密码本的长度以及每次转存密码长度。具体做法就是把字符串匹配工作换成了数据加密工作,收到的每桢以太网报文先做逻辑左移2个字节,再做DES加密,完了以后立即回一桢给测控系统,考核的指标是以太网报文的丢包率小于万分之一,数据加密速度小于2 ms。此外,数据转存的密码本长度要达到10 000个字节,每次转存密码长度要达到10个字节。
4.1 DES加密算法
DES算法是一个分组加密算法,以64位一组的明文从算法的一端输入,64位的密文从另一端输出。加密和解密用的是同一算法,密匙的长度为56位,所有的保密性都依赖于16把不同的密匙。算法原理分别如图2。
图2 初始置换示意图
算法的原理概述:在图2里,DES通过一个IP变换(初始变换),把输入的64位数据块按位重新组合,搅乱数据原来的顺序后,把明文分成左半部分和右半部分,各32位长。也就是将原来的第58位换到第1位,第50位换到第2位,以此类推,最后一位是原来的第7位。L0和R0则是换位输出后的两部分,L0是输出的左32位,R0是右32位。
图3 第i+1轮加密示意图图4 末置换示意图然后进行16轮完全相同的运算,如图3所示,这些运算被称为函数f,在运算过程中,数据和密匙结合。经过16轮后,左右半部分合在一起经过一个末变换(初始变换的逆变换),如图4所示,算法完成。
使用者所持有的初始密钥是64位。初始密钥首先经过密钥置换A,生成一个56位的密钥,接着,将这56位的密钥分成两个28位的分组C0和D0,再分别经过一个循环左移函数,得到C1和D1。C1和D1连接成一个56位的数据,再按照密钥置换B做重排动作,得到了子密钥K1、C1和D1,再分别经过一个循环左移函数得到C2和D2,C2和D2连接成56位数据,再按照密钥置换B做重排动作,这样就产生了子密钥K2。依次下去就产生了子密钥K3,K4,......,K16。值得注意的是,密钥置换A的输入为64位,输出为56位,而密钥置换B的输入为56位,输出为48位。
函数f的构成如图5所示,在每一轮中密匙位移位,然后从密匙的56位选出48位。通过一个扩展置换将数据的右半部分扩展成48位,并通过一个异或操作与48位密匙结合,再通过8个S-盒(相当于置换表),将这48位替代成新的32位数据,再将其通过P-盒置换(相当于把每位数据的顺序做直接置换)一次。每一轮的循环公式就是: