针对信息化弹药引信装定系统中数据的安全件问题,通过对DES加密算法和SDES加密算法的分析,我们提出了采用SDES加密算法实现引信多数据装定信息加密的方法,并设计出了引信多数据装定芯片解密电路。
一、DES加密算法与SDES加密算法分析
要实现对数据的加密,常用的加密算法是数据加密标准( Data Encryption Standard) DES算法和简化数据加密标准(Sunplilied Data EncrypiionStanclard) SDES算法。
DES加密算法的入口参数有两个64 bit明文和56 bit密钥,其加密原理如图1所示,64 bit明文通过初始置换逻辑后进行16轮的加密,每次的加密都利用原始密切产牛各不相同的子密钥,其加密逻辑中主要进行了扩展置位、异或、迭代选择等操作,这些操作既可以使用软件实现,也可以用逻辑电路实现。
SDES算法是DES算法的一个简化版本,两者的加密解密过程基本相同,只是SDES参数较小,图2所示为一个密文为8 bit、密钥为16 bit、循环次数为2次的SDES加密示意图。
从上面的介绍中可以发现,DES算法比SDES算法更为安全,但DES算法需要消耗的资源更多,对系统的要求更高。考虑到以下因素,本文采用SDES算法作为引信装定技术的加密算法。
(l)引信装定芯片成本较低、硬件规模小;
(2)引信装定芯片采用无源装定技术,能量供应有限;
(3)引信装定信息传输信道相对比较封闭,本身的保密性较好,密文被窃听的可能较小。
二、引信装定芯片的加密解密方案
图3为采用SDES的引信加密系统设计办案。从图中可以看出装定器内部的加密算法采用软件实现,而引信装定芯片用硬件电路实现解密算法。当开始装定时,装定器先将16 bit的明文通过SDES算法进行加密得到16 bit密文(利用装定器上已有的微处理器通过软件实现),然后将16 bit密文通过信道传递给引信,当引信接收完毕,将此密文通过解密逻辑解密16 bit明文。在本设计中,将16 bit的明文按照高低位分为两个8 bit的明文,然后通过SDES算法对分组的两组8 bit 明文文进行加密,加密后得到两组8 bit的密文,再按照高低位分组的逆变化组合成一个16 bit的密文,解密过程如同加密过程,将16 bit的密义也按照高低位分为两个8 bit的密文,然后通过SDES算法对分组的两组8 bit密文进行解密,解密后得到两组8 bit的明文,然后再按照高低位分组的逆变换组合得到16 bit的明文。
从图3也可以看出加密和解密的核心模块是个可复用的SDES解密模块,该模块可以用l6 bit密钥对8 bit数据进行解密或者加密。
三、引信装定芯片的加解密模块设计
SDES的加密模块和解密模块本质相同,只是加密和解密所用密钥顺序相反。本文以解密模块为例进行介绍。
图4是SDES解密模块逻辑框图,SDES解密逻辑输入是8 bit密文和16 bit密钥。SDES解密模块先将16 bit的密文分为两个8 bit的密文分别进行解密操作。将16 bit初始密钥进行置换选择生成两个8 bit的子密钥Kl和K2,然后利用这两个子密钥对密文进行两次解密。解密完成后将两个8bit明文重新组合成16 bit的明文。
解密时,将8 bit密文经过初始置换、两轮解密和初始逆置换后得到8 bit明文。与解密模块相比加密模块只是第一轮加密时采用K2子密钥,第二轮加密时采用k1子密钥。
四、功能验证及性能仿真
本文用Verilog语言设计出8bit明文输入、16bit密钥输入的SDES解密电路,并在工作站上进行仿真,图5是一个SDES加密算法的部分仿真结果(由于进行了1OO%功能测试,波形文件较大,只抓取部分图形说明,详细仿真结果请参见相关测试文件)。图5中Plaintext为引信装器输入的8 bit明文,Key表示装定器和引信芯片共有的16 bit初始密钥,Ciphertext表示对Plaintext用Key作为密钥进行加密得到的8 bit密文,此结果作为引信装定芯片的输入,DeCiphertext为引信装定芯片用密钥Key对8 bit密文进行解密得到的8 bit复原明文。
从图中可以看出,在当明文Text发生变化后,相应的最终明文也发生变化,且变化结果相同。表明SDES解密电路设计正确,可以正确实现最终的解密过程。在验证设计结果的同时对该加密算法的雪崩效应进行了分析,以递增的8 bit GRAY码作为测试激励,对不同密钥时雪崩效应分别测试得到结果如表1所示。
从表1中可以看出,对于本文设计的SDES加密模块,输入明文有1 bit的变化时,输出密文平均会有3.33657bit变化量。
从上述测试结果可以看出,本文设计的引信装定芯片SDES加密算法可以实现引信装定信息的加密和解密。
小知识之GRAY码
简称格雷码,因1953年公开的弗兰克·格雷(Frank Gray,18870913-19690523)专利“Pulse Code Communication”而得名,当初是为了通信,现在则常用于模拟-数字转换和位置-数字转换中。