飞行试验是在真实飞行条件下进行的科学研究和产品试验,它所产生的飞行数据极为珍贵,具有信息量大,保密要求高,数据不可重现等特点;因此,飞行数据的安全存储管理问题非常重要。为此,我们提出了一种综合AES(高级加密标准)和ECC(椭圆由线密码)来对飞行数据进行保护的一种加密方案。该方案能够有效对飞行数据进行加密存储,在飞行数据安全管理方面得到了很好地应用。
一、飞行数据文件加密
数据文件加密的基本过程就是对原来的可读信息(明文)进行一组可逆的数字变换,成为一种隐蔽的不可读的代码形式(密文)。被授权的数据文件接收者在收到密文数据之后,进行与文件加密相逆的变换,恢复明文的过程称为解密。文件加密和解密过程组成加密系统。
飞行数据文件加密分为实时数据文件加密和事后数据文件加密。实时数据加密就是在飞行过程中由数据记录器将数据文件加密存储,地面站的数据处理器则读取加密数据文件后进行解密,事后数据文件加密则是对于飞行过程中未加密的数据文件在存储管理时进行加密,确保实现数据文件安全存储,当数据需要处理时再进行解密。
二、数据加密算法的分类
数据加密算法一般可以分为对称加密算法和非对称加密算法。
1、对称加密算法
对称加密算法,又叫单钥加密算法、秘钥加密算法、经典密码算法或传统密码算法。对称加密算法中明文的加密和相应密文的解密使用相同或相互容易导出的密钥。
对称加密算法的优点在于算法实现效率高、速度快,缺点在于密钥的管理过于复杂。如果任何一对发送方和接收方都有他们各自商议的密钥的话,那么很明显,假设有N个用户进行对称加密通信,如果按照上述方法,则他们要产生N(N-1)把密钥,每一个用户要记住或保留N-1把密钥,当N很大时,记住是不可能的,而保留起来又会引起密钥泄漏可能性的增加。
最著名的对称加密算法有DES、IDEA、AES加密算法等,其中影响最大且应用广泛的是DES加密算法。DES使用64位密钥,在内部重复实现多次替换和变位操作,属于一种抗破译能力很强的乘积密码体制。DES将64位密钥中的56位用于加密过程,其余8位用于奇偶校验位,通过密钥对64位的二进制信息进行加密,把明文的64位信息加密成密文的64位信息。
IDEA加密算法的明文和密文都是64比特,但密钥长为128比特q它基于混合使用来自不同代数群中的运算,通过三个不相容的群运算作用在16位子分组上来进行密码变换。IDEA是作为循环的分组密码实现的,加密过程由连续的8轮循环和一个输出变换组成,作为高级加密标准(AES)的Rijndael加密算法是一种灵活的分组加密算法,其分组的大小可变(128、192或256位),密钥大小可变(128、192或256位),循环次数也可变(10、12或14)。AES不像DES那样在每个阶段中使用替换和置换,而是进行多重循环的替换、列混合、密钥加操作。
2、非对称加密算法
非对称加密算法,又叫双钥加密算法、公钥加密算法或现代加密算法。在非对称加密算法中,用作加密的密钥不同于用作解密的密钥,而且解密密钥不能根据加密密钥计算出来(至少在合理假定的长时间内)。非对称加密的缺点在于算法实现效率低、速度慢以及对于某些复杂的数学难题过分依赖。非对称加密的优点在于用户不必记忆大量提前商定好的密钥,因为发送方和接收方事先根本不必商定密钥,发送方只要可以得到可靠的接收方公钥就可以给他发送信息。
著名的非对称加密算法有RSA、DSA和ECC等,其中最有影响且应用广泛的是RSA公钥加密算法。RSA公钥加密算法是1978年由Rivest,Shamir,Adelman提出的。它依赖于大整数素因子分解,而大整数因子分解问题是数学上著名的难题,迄今为止没有有效的方法予以解决,因此可以确保RSA算法的安全性。它生成一对RSA密钥,私钥由用户保存,公钥可对外公开,人们用公钥加密文件发给个人,个人用私钥解密接受。
DSA加密算法基于离散对数的求解,即给定正整数x,y,n,求出正整数k(如果存在的话),使y≡xkmod n。目前而言,还没有找到计算离散对数的快速算法。 DSA加密算法的安全强度和速度均低于RSA加密算法,它仅提供数字签名,不提供数据文件加密功能,所以它只适用于邮件、电子转帐等认证系统。ECC加密算法基于椭圆曲线上的离散对数问题的求解,即给定素数p和椭圆曲线Q,对于Q=kP,在已知P,Q的情况下求出小于p的正整数k。ECC是目前国际上公认的比较安全实用的公钥加密算法,与RSA相比,具有安全性能更高、计算量小、处理速度快、存储空问占用小、带宽要求低等优点。 ECC的这些特点使它必将取代RSA,成为通用的公钥加密算法。比如SET协议的制定者已把它作为下一代SET协议中缺省的公钥加密算法。
三、混合加密技术
1、混合加密技术
由于对称加密算法和非对称加密算法都具有自身的局限性,而彼此恰好可以由另一种加密算法来弥补。比如对称加密算法加密效率高,但是密钥保存难,而非对称加密算法虽然加密效率低,但安全性高,实际应用中经常把两者结合起来使用。
在大多数实际实现过程中,非对称加密算法用来保护和分发会话密钥。这些会话密钥用在对称加密算法中,对通信消息进行加密,有时称这种技术为混合加密技术,混合加密技术的特点有:
(1)利用对称加密算法的高效性,使用对称加密算法对大量传输信息进行加密;
(2)非对称加密算法具有保密性好的特点,可以用来加密传输对称加密算法中使用的密钥;
(3)为了实现不可否认性,利用对称加密算法等抽取摘要信息,然后用非对称加密算法进行数字签名及身份验证。
2、密钥的管理与分配
所渭密钥的管理与分配,是指数据存储、传输和使用过程中涉及到的加密和解密密钥的保存、传递、认证等方面的策略。密钥管理综合了密钥的设置、产生、分配、存储、进入、使用、销毁、提取等一系列过程,其宗旨是确保使用中的密钥是安全的。
在对称加密算法中,通信双方共享的密钥必须通过安全的渠道传送,普遍的做法是采用非对称加密算法进行密钥交换。保护密钥安全的最直接方法是让密钥驻留在密码装置之内,但开销太大,可采用由一个密钥来保护其他密钥的原理(主密钥原理),极少的主密钥驻留在密码装置之内是容易实现的。
四、飞行数据文件加密系统设计与实现
混合加密技术可以应用到飞行数据文件加密中。我们使用对称加密算法对大量飞行数据文件加密,通过非对称算法来加密传送对称加密算法中的密钥。这样就既利用了对称加密算法的高效性,又发挥了非对称加密算法便于管理密钥的长处。
1、飞行数据文件加密解密过程
事后数据加密解密过程如下:
数据加密系统每次加密前随机生成一个对称加密密钥,用对称加密算法将飞行数据文件加密,同时将该对称加密密钥用非对称加密算法利用加密方私钥签名后,再与对称密钥自身一起利用数据解密方公钥加密,得到的结果与加密后的飞行数据一起存储起来,同时将此次加密运算对应的数据加密方公钥和数据解密方私钥存储到密钥管理系统。需要处理数据时,计算机读取密文,利用密钥管理系统内对应的解密方私钥解密后得到对称密钥和签名,再利用对应的加密方公钥解签名后得到的数和对称密钥作比较来进行签名认征,最后利用对称密钥将密文解密后得到飞行数据进行常规处理。
实时数据文件加密解密过程与事后数据文件加密和解密类似,在此不再重述,只以事后数据加密算法为例介绍。
2、密钥更改
加密和解密过程中非对称加密算法所用密钥如果一直保持不变,会给窃密者进行密码分析带来方便。因此,需要一个密钥分配器来实现对这些公钥和私钥的产生和更改。本文数据文件加密系统的ECC密钥生成模块实现此功能。
3、飞行数据加密算法实现
鉴于AES和ECC加密算法的优越性,本文选择AES作为对称加密算法,选择ECC为非对称加密算法。
(1)AES加密算法
AES加密算法是分组长度和密钥长度均可变的分组加密算法,循环次数与分组和密钥的大小有关。假设我们采用的密钥长度为128比特、分组长度为128比特,则算法由10轮循环组成,每一循环都有一个循环密钥,它来自于初始密钥。每一循环输入的是128位,产生的输出也是128位。每一循环由字节转换、移动行、混合列、加循环密钥4个基本步骤组成口解密过程为加密过程的逆过程,每一循环同样需要逆字节转换,逆移动行、逆混合列和加循环密钥4个步骤o AES的加密解密原理如图1所示。
(2)ECC加密算法
设m→Pm是明文空间到椭圆曲线的嵌入(即将明文编码转化为椭圆曲线上的点,这种编码不同于加密,任何用户都可以解码恢复明文),G是椭圆曲线上的基点。
1)用户A选取私钥dA,产生一个公开密钥PA=dAG;
2)用户B为了向A发送信息m,选取随机数dB作为他的私钥,并计算出他的公钥PB=dBG,然后将m经编码嵌入到椭圆曲线上的点P限,并向A发送(PB,Pm+dBPA);
3)用户A用自己的私钥dA计算dAPB;
4)用户A计算(Pm+ dRPA)- dAPB=Pm+dBdAG - dAdBG=Pm,然后利用Pm解码就可以得到明文信息m。
4、飞行数据加密系统软件设计与介绍
本文数据加密系统采用Visual C++实现编程,由于飞行试验实时数据处理系统对实时性要求很高,它目前只能应用于事后数据文件加密。对于实时数据文件加密,可以考虑利用硬件来满足其速度要求。
飞行数据种类繁多,数据信息量大,主要包括遥测数据、总线数据和视频数据等。本文开发的数据文件加密系统主要针对遥测数据和各类总线数据。
数据文件加密系统的加密流程图如图2所示,解密流程图如图3所示。
在ECC加密算法中,椭圆曲线的选取是影响加密系统安全性的主要因素。如果自己定义椭圆曲线参数,一则曲线建立代价太大,二则很难从密码分析角度验证参数选取对系统安全的影响,因此本文系统采用NIST推荐的曲线,采用素数P192为有限域的阶。
ECC加密算法所用密钥的产生与更改可以通过加密软件界面上的“生成ECC密钥对“来实现,系统自动导出到相关文件保存。如图4所示为生成密钥的画面。若数据加密前不进行密钥更改,系统自动从相关文件导人上次加密过程所用密钥。
系统初始化完成后,直接点击“加密”按钮即可完成数据文件加密,如图5所示。
数据解密则需要先点击解密界面上的“签名认证”通过后,点击“解密”按钮即可完成,如图6所示。
5、系统优点
(1)飞行数据每次加密前随机自动产生AES密钥,增强了加密安全性;
(2)利用AES对称加密算法对飞行数据文件加密,提高了数据文件加密速度;
(3)通过采用先签名后加密的方法来传递AES密钥,实现了数据的签名认证;
(4)需要时可对ECC密钥进行更改。
小知识之ECC
ECC是一种公钥加密体制,最初由Koblitz和Miller两人于1985年提出,其数学基础是利用椭圆曲线上的有理点构成Abel加法群上椭圆离散对数的计算困难性。