针对某型导弹的弹载记录仪对其测试参数保密的要求,而目前最好的办法就是对记录仪内数据进行加密处理方可确保数据安全,保证国防科技的信息安全。

一、弹载记录仪电路模块设计

弹载记录仪由信号采集模块、加密模块、电源变换模块、中央控制模块及读数接口模块5部分组成,如图1所示,通过核心控制芯片(CPLD及单片机)的控制,将接收到的弹上模拟量进行调理、跟随,经A/D转化为数字量,并进行加密按序存人存储芯片FLASH中。

1

二、加密设计

弹载记录仪测试环境极其特殊且恶劣,其设计的更改极有可能对弹上系统造成影响。故在不影响弹载记录仪原有设计的前提下,添加本加密设计,数据加密是在原有的存储模块中的CPLD内部进行,在数据写入Flash前采用软件进行加密,加密后数据与原始数据字节对应且数据量不变,无时间延迟,密钥选取随机。

1、加密原理

弹上模拟量经A/D转换成数字量后,分高八位和低八位先后进入加密程序,加密模块原理框图如图2所示,该部分软件主要由3大部分组成:数据位交换模块、密钥选择模块及加密运算模块。

1

加密采用的方法是:

(1)并行数据首先进行数据位交换,(位交换规则及密钥提前进行预设),而数据位交换后的最低两位将被用作选取密钥,密钥包括7位与数据进行计算的2进制数Ki和对应的7位二进制数与数据计算的7个位计算规则Si(密钥位数可以小于等于每一字节的数据位,可以仅对数据的部分位进行加密处理,密钥的预设须保证用于选取密钥的数据在与Ki按Si进行运算时保持不变),每一位的计算规则为同或、异或2种中的一种。

(2)交换后的数据位最低两位组成二进制数OO、01、10、1 1,故与之相对应的密钥为4个,分别为KEYO、KEY1、KEY2、KEY3(KEYi是7位,程序设定为KEYi-对数据的第2位至第8位进行加密处理最低位不作处理),密钥选取规则见表1。当选定密钥之后,位交换后的其中7位数据将与选定的密钥按Si进行运算,运算过程如图3所示,Di、Ki、Si、Ji分别代表参与加密运算的7位交换后的数据、7位密钥、7位运算规则、7位加密后的数据。

1

2、加密强度分析

8位2进制数参与位交换,数据经位交换生成的数据排列组合有8 种可能。密钥由7位数字量数据组成4个密钥,采用的密钥组合形式有4x27种可能。交换后的数据与密钥进行的算法也有6位在同或与异或间选择,组合形式有26种可能。这样加密后数据和原来数据的对应关系有660602880种的可能性,加密后的数据在不知道交换次序、密钥、计算组合形式的情况下要恢复原始数据的概率是1/660 602 880,数量级为1亿分之1。

3、防错可靠性分析

加密后的数据与原始数据具有唯一的对应关系,这个由同或与异或的计算方法决定的。加密后的数据前后间没有关联关系,即使由于某一字节存储或读取错误,导致加密数据解密发生错误,但也仅限于某字节出错,并不影响其他数据。

4、解密

解密流程图如图4所示。

1

解密是通过计算机读取加密后的数据,由计算机软件进行的。解密软件检测到数据的第1位、第2位为OO,则选择KEYO对其进行解密,若检测到01,则选择KEY1对其进行解密,依此类推,解密运算是加密运算的逆运算。

三、加解密原理验证及应用情况

该加密软件模块的程序通过FPGA的仿真软件Xinlinx ISE9.1和Modelsim SE PLUS 6.1f环境下及计算机读数软件上进行了加密算法验证。

1

1、仿真软件验证

首先在Xinlinx ISE9.1中建立仿真文件,进而采用Modelsim SE PLUS 6.1f对其进行仿真。在仿真文件中设置其输入值为Ox00一OxFF,覆盖8位所有取值情况。预设的key 0、key 1、key 2、key 3分别为0100101、101 1010、0101001、00101 10。

其中jmq为加密前O一8的二进制数,bchange为加密前数据进行位交换的二进制数结果,jmh为加密后的二进制数数据输出。key0、keyl、key2、key3为交换后数据位最低两位分别为OO、01、10、11的二进制数密钥。经过对本加密算法进行仿真验证可知,加密后的数据与原始数据唯一地对应。

2、计算机软件读数验证

通过计算机读数软件读取弹载记录仪采集到的数据,点击“读取文件”得到加密后数据,之后点击“数据解密”即可完成数据解密,如图6所示,并最终得到解密后的数据波形,如图7所示。

1

2、应用

该加密软件模块在用于2010年实弹测试的存储电路中首次使用,数据经加密存储后,通过地面软件读取数据能够正确解密恢复测试数据。

小知识之Flash

Flash又被称之为闪客,是由macromedia公司推出的交互式矢量图和 Web 动画的标准,由Adobe公司收购。