APP下载

军事物流数据库加密与AES算法的探究

2016-11-01王凤忠吕亚飞邹饶邦彦

物流技术 2016年9期
关键词:加解密加密算法密文

王凤忠,吕亚飞,邹饶邦彦

(1.军事交通学院 军用车辆系,天津 300161;2.军事交通学院 研究生管理大队,天津 300161)

军事物流数据库加密与AES算法的探究

王凤忠1,吕亚飞2,邹饶邦彦2

(1.军事交通学院 军用车辆系,天津 300161;2.军事交通学院 研究生管理大队,天津 300161)

针对目前军事物流信息系统中数据库安全面临的严峻形势,分析数据库加密技术方法和AES算法的加解密过程及轮密钥生成过程,采用Java语言在my eclipse中实现AES算法的编程及测试,通过实例验证了算法的有效性。

军事物流;数据库安全;AES算法;轮密钥

1 引言

军事物流主要完成军用物资的后勤保障任务,主要包括武器、装备、弹药、器材、军需被服与军用食品等。军事物流信息涉及部队生活、训练、执勤及作战情况,对于敌我双方都是十分敏感的信息。在军事物流信息系统中,军事物流的主要信息如物资信息、实力信息、运输信息、仓储信息和计划信息等,均以数据库为基础进行存取,数据库的安全作为军事物流信息系统安全的三大基石之一,与操作系统安全、通信安全同样重要。目前我国所使用的操作系统、防火墙硬件以及数据库产品大多依赖国外产品的进口,这些产品是否留有后门,是否安全,难以确定。因此,采取加密技术是我们自主、主动保护信息安全的重要而有效的方法。

根据美国国防部颁发的《可信计算机系统评估标准关于可信数据库系统的解释》,可将数据库管理系统的安全等级分为4类7个等级,由低到高依次是:D级、C1级、C2级、B1级、B2级、B3级和A1级。D级产品是没有任何安全保护的产品,只能用于没有安全威胁的环境中;C级产品只具有初步安全功能;B级以上的标准被认为是产品真正安全的开始,具有安全保护、结构化保护等功能。由于美国对高安全级别的产品出口有严格的限制,出口至我国的数据库产品安全级别只能达到C级。目前我军大部分军事物流信息系统中所采用的数据库,都是SQL Server、Oracle等C级的国外产品,有关乎战斗力的敏感数据仍在防范较弱的国外数据库系统中运行,其安全性

令人堪忧。而要将应用系统迁移至国产数据库还需大量的投入和一定时段。因此,对现行数据库中的涉密信息采取加密措施进行有效保护,是当前军事物流信息安全的最后一道防线,也是迫在眉睫的事情。

2 数据库加密技术方法

数据加密技术一般是通过数学变换的方式加密数据,使攻击者无法从密文中读取重要信息,而密文的接收方能通过密钥将密文还原成明文,其一般流程如图1所示。

图1 数据加密的一般流程

2.1 数据库加密层次

数据库加密技术可以在数据库管理系统的内核层、外核层以及操作系统层进行。在操作系统层进行数据加密就是将存储于操作系统的关系文件进行整体加密。由于其加密粒度是文件级的,数据库管理系统无法辨认数据库文件中各数据之间的关系,对加密关系进行操作时,要先解密文件,降低了系统的工作效率。

在内核层进行加密是指在数据存取时对数据进行加解密处理,其过程如图2所示。其优点是可以不影响数据库管理系统的正常功能并且支持各种加密粒度,但加密的实行需要数据库管理系统开发商提供数据接口,修改内核,实现较为复杂;且加解密运算在服务器端进行,易增加数据库服务器的负载。

图2 系统内核层加密

在外层进行加密是在用户客户端和数据库管理系统之间增加一个加解密层,在敏感数据存入数据库之前进行相应的加密处理,其过程如图3所示。加解密操作既可以放在服务器上进行也可以放在客户端进行,对数据库管理系统没有太多要求。这种加密方式被当前大多数数据库所采取。

图3 外层加密

2.2 加密算法

密码系统的两个基本要素包括加密算法和密钥管理,加密算法作为数据加密的核心,其规定了明文、密文之间的转换方法。数据加密算法可以按密文发送方和密文接收方的密钥是否相同分为两类:对称密码算法和非对称密码算法。

非对称密码算法的密钥可分为加密密钥和解密密钥,加密密钥作为公开密钥对外公布,解密密钥作为私有密钥加以保存。其加解密过程为:拥有私钥的信息接收方生成一对密钥,将其中的加密密钥对外公开;信息发送方利用公开密钥对信息进行加密,然后传送给信息接收方;信息接收方则利用保密的解密密钥对加密信息进行解密。常用的非对称密码算法有RSA算法和MD5算法。

对称密码算法是信息发送方和接收方共用一个密钥和一个算法去加解密信息,其中,必须保证密钥的安全保密。其加解密的速度快、密钥短、破译困难、安全有效,是广泛采用的加密算法。对称密码算法可分为流加密和分组加密两种。本文所采用的AES算法就是取代DES算法的新一代的高级加密算法。

3 AES加密算法

DES算法开创了公开密码的先河,由于其密钥长度只有56位,人们只用了20年时间就用穷举法将DES算法的全部密钥破解。由此,更安全性的算法AES应运而生。AES算法的分组长度为128位,密钥长度可为128位、192位、256位,对应的循环轮次为10轮、12轮、14轮。AES算法迄今为止还未被破解过,据估算,按照摩尔定律依然有效,穷举法依然为最有效的破解密钥的方法,128位密钥的AES算法一直到21世纪70年代左右依然安全。

AES算法的数学理论主要是GF(28)域,其以字节定义,每个字节是8位二进制的比特数,与GF(28)域中每个元素相对应。

3.1 加密过程

AES算法的加密是以状态为单位的,状态的生成是将明文每128位为一组,共16个字节,按次序生成一个4×4矩阵。AES算法的加密过程由状态矩阵开始,共

十轮加密操作,前九轮的加密各包含四步,分别是:字节代换、行移位变换、列混合变换和轮密钥相加变换;第十轮加密只包括三步操作,不包括列混合。

3.1.1 字节代换。字节代换也称S-盒变换,是一种非线性变换,其变换过程分为两步。

其中,La为仿射矩阵,v为16进制数‘63’。

在实际的操作过程中,为了简化操作,本文将字节代换转化为查表操作,预先构建一个16×16字节的矩阵,又叫S-盒,其生成过程和以上字节代换过程相同,具体形式见表1。将状态矩阵中,每一字节的高四位作为x值,低四位作为y值,对应查找S-盒中的元素,完成代换。

表1 S-盒

3.1.2 行移位变换。行移位变换是AES算法里的一种基本线性变换,其作用是使密文进行充分的混乱,以提高密文的复杂程度。行移位变换是在字节变换的基础上,在所得状态矩阵的每一行进行变换,将每一行的字节进行循环向左移位。具体为,第一行字节不变,第二行向左移动一位,第三行移动两位,第四行移动三位,这样就将原来每一列的字节分到了四列上去。具体移位操作如图4所示。

图4 行移位变换示意图

3.1.3 列混合变换。列混合变换是对状态矩阵进行矩阵乘法变换。状态矩阵的一列为四个字节,在GF(28)中,可以用四项多项式表示该字。

相对应的系数即为相应的矩阵元素,将每一列所代表的多项式与一个固定的矩阵相乘,并将结果对x4+1取模运算,见下式:

图5 列混合变换示意图

3.1.4 轮密钥相加变换。轮密钥相加变换是将状态矩阵与轮密钥进行加法运算,即异或运算。每一轮的轮密钥是由初始密钥经过密钥扩展算法经过十轮扩展得到的,且加解密过程使用相同的轮密钥。轮密钥有128位,相当于16个字节,与状态矩阵相对应。轮密钥相加过程如图6所示。

3.2 解密过程

AES算法是对称算法,其加密和解密过程的操作基本相同,解密过程也分为四步:逆向行移位变换、逆向字

节代换、轮密钥相加和逆向列混合变换。由于每一步操作基本相同,在这里就不重新一一赘述,只将加密和解密过程的异同加以总结。

图6 轮密钥相加过程

首先,加解密过程所使用的轮密钥都是相同的,只是使用顺序是相反的;加解密过程每轮的四步操作是互为逆运算的过程,轮密钥相加的逆过程就是其本身;加解密过程每轮的操作顺序不相同,加密过程的顺序为字节代换、行移位变换、列混合变换和轮密钥相加变换,而解密过程为逆向行移位变换、逆向字节代换、轮密钥相加、逆向列混合变换。加解密操作流程图如图7所示。

图7 加解密操作流程图

3.3 轮密钥扩展算法

在加密过程中的轮密钥相加中提到,每一轮加密都需要一个轮密钥,这些轮密钥就是由初始密钥通过轮密钥扩展算法得来的。初始密钥有16个字节,通过扩展算法,输出176个字节的一维线性数组,为每一轮的加密提供16个字节的轮密钥。首先,将初始密钥按照处理初始明文一样分为四列,分别记为w[0]、w[1]、w[2]、w[3]。在此基础上,确定以后每一轮的w[i]。

若i能被4整除,则:

若i不能被4整除,则:

其中,T函数为一个更复杂的变换函数,其包括行移位变换、字节代换和Rcon运算。行移位和字节代换与加密过程中的操作一致,而Rcon为一个轮常量,将该轮常量与经过行移位和字节代换的结果进行异或运算。Rcon也是由四个字节组成,其后三个字节都为0,形式如下:

其中Rc[i]每一轮的值(16进制),见表2。

表2 Rc[i]的值

4 AES加密算法实例验证

基于上述AES算法加解密原理,可以在不同操作环境下,使用不同编程工具对应用系统中的敏感数据进行加解密运算。

4.1 算法编程

采用Java工具在my eclipse中实现算法的编程。在Java中的包aessuanfa中创建了四个类,分别为aes1、aes2、aes3和test,其中aes1、aes2、aes3为算法程序,test为测试程序,如图8所示。

图8 算法的类

其中的加密算法的部分程序如下:

public void Cipher(byte[]input,byte[]output)

this.State=new byte[4][Nb];

for(int i=0;i<(4*Nb);i++)

this.State[i/Nb][i%Nb]=input[i];

}//初始化状态矩阵

AddRoundKey(0);//轮密钥加

for(int round=1;round<Nr;++round)

SubBytes();//S盒变换

ShiftRows();//行移位

MixColumns();//列混合

AddRoundKey(round);

SubBytes();//S盒置换

ShiftRows();//行移位

AddRoundKey(Nr);//轮密钥加

for(int i=0;i<(4*Nb);i++)

output[i]=this.State[i/Nb][i%Nb];

//System.out.println(i%Nb);

}//输出密文

4.2 算法实例

下面用一个数据库用户的登录数据验证上面算法的可行性。设置登录的明文为“登录用户:平津埠车材库 登录密码:tbbgyz”,经过AES加密算法运算,对用户名和登录密码加密后得到的密文为“e9bd1aa3b5fc7a10ee4d42ac286e3b9bc408893c935ddbd3 97cc749f9ac5c7c49bf7147f3c5d7610963dfb0baebb108b4b d975b9”;将此密文与储存于数据库登录表中的登录用户和登录密码密文相对比,若一致则登录成功。

同时验证解密算法,将密文数据用上面算法解密,得到的结果为“登录用户:平津埠车材库 登录密码:tbbgyz”,与原来明文结果一致,证实了算法的有效性,其运行结果如图9所示。

图9 实例运行结果

5 AES加密算法的应用

AES算法作为取代DES算法的新一代加密算法,在无线通信加密和数据存储加密方面都有良好的应用前景。目前,在通讯、网络和芯片等领域,涉及数据安全传输和安全存取等问题的重大突破,都有AES加密算法的贡献,在路由器、存储器、闪存盘等生活数字产品中也有AES加密算法的身影,而将AES加密算法应用于各种数据库产品也成了各大数据库公司的重要任务。

ORACLE公司自Oracle8i第一次通过内置的工具包允许用户对数据实现字段级加密,其加密包中应用的是DES、3DES算法,而到了Oracle9i就支持使用AES算法的加密,但限于美国对安全产品出口的严格管理,其只支持56位长度的密钥,如今Oracle已经可以支持256位密钥的AES加密。同Oracle一样的还有SYBASE公司,在其产品Adaptive Server Anywhere 8.0中,引入了数据库加密的功能,其支持数据库级的加密,使用的算法是AES和MDSR,其中,AES算法为默认的加密算法,长度为128位。

6 结语

数据库作为信息安全的最后一道防线,对敏感数据保护是加强信息系统安全的重要举措。AES算法的运用是自主保护涉密信息的重要有效的手段。军事物流数据库因其内存数据高度涉密,在操作系统和网络防护可能存在不完备的情况下,急需相应灵活的加密保护措施,而AES算法具备良好的可行性,为下一步军事物流数据库的加密提供了一个很好的途径。

[1]陈越,寇红召,费晓飞.数据库安全[M].北京:国防科技大学出版社,2011.

[2]胡志奇.数据库安全与加密技术[J].计算机与现代化,2003,(11):70-74.

[3]张焕国.演化密码引论[M].武汉:武汉大学出版社,2010.

[4]王小伟.AES加密算法的研究与IP核设计实现[D].哈尔滨:哈尔滨工业大学,2012.

[5]苗杰.基于AES算法的数据库二级密钥系统的设计与实现[D].镇江:江苏科技大学,2013.

[6]董翔英,张大鹏.器材仓库信息管理加密系统的研究[J].仓储管理与技术,2008,(3):20-22.

[7]孙爱娟.基于AES加密算法的改进及其Matlab实现[D].哈尔滨:哈尔滨理工大学,2009.

[8]谷大武,徐胜波,高级加密标准(AES)算法—Rijindael的设计[M].北京:清华大学出版社,2003.

Exploration of Military Logistics Database Encryption and AES Algorithm

Wang Fengzhong1,Lv Yafei2,Zou Raobangyan2
(1. Department of Military Vehicle, Military Transportation Academy, Tianjin 300161;2. Graduate Student Management Brigade, Military Transportation Academy, Tianjin 300161, China)

In this paper, in light of the dire situation of database safety of the military logistics information system, we analyzed thedatabase encryption technology and the encryption and decryption processes and the round key generation process of the AES algorithm, usedJava to realize the programming and testing of the algorithm in My Eclipse and at the end, through a numerical example, demonstrated thevalidity of the algorithm.

military logistics; database safety; AES algorithm; round key

TP309.7;E234

A

1005-152X(2016)09-0164-05

10.3969/j.issn.1005-152X.2016.09.034

2016-08-02

王凤忠(1969-),男,山东莱阳人,军事交通学院副教授,主要研究方向:军事供应链、军用车辆器材管理;吕亚飞(1992-),山东文登人,军事交通学院在读硕士研究生,研究方向:器材信息管理。

猜你喜欢

加解密加密算法密文
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
混沌参数调制下RSA数据加密算法研究
PDF中隐私数据的保护方法
一种基于密文分析的密码识别技术*
一种基于密文分析的密码识别技术*
HES:一种更小公钥的同态加密算法
电子取证中常见数据加解密理论与方法研究
基于小波变换和混沌映射的图像加密算法
网络数据传输的加解密系统研究