互联网的快速展与完善为数据传输提供了更快捷、方便的途径,它提高了数据传输效率,但也对数据安全提出了新要求。如何保证空间数据在网络上传输时不被第三方窃取,是数据生产方和应用方共同关注的问题,也是数据在网络上传输必须解决的首要问题。在现有技术条件下,数据加密技术是保证数据安全传输的有效手段之一。通过有效的加密手段,空间数据即使被窃取也无法被正常应用,保证了数据生产方和应用方的利益。

一、数据加密的基本模型

数据加密技术是对信息进行重新编码以达到隐藏信息内容,使非法用户无法获得真实内容的一种技术手段。一个加密系统由明文空间、密文空间、加密算法和密钥空间组成,一个加密系统的完整模型如图所示。

地图数据网络分发的混合加密算法

二、数据加密算法分析与比较

1、 加密算法分析

由加密密钥Ke和解密密钥Kd两者之间的关系,可将加密算法分为对称加密算法和非对称加密算法。当Ke=Kd时,称为对称密码体制,否则称为非对称加密体制。

DES加密算法是经典的对称加密算法,其安全性及效率较高,新的AES加密算法性能比DES加密算法更佳。

(1)DES加密算法与AES加密算法

DES加密算法是将明文m分为64位的数据块m=m1,_m2,…,m64。先进行初始置换,对明文数据块进行换位处理,然后通过子密钥K1-K16进行16次迭代处理,迭代的目的是增加混

乱性和扩散性,避免输出的密文残留统计规律,最后进行逆初始置换,得到64位密文c=c1,c2,…,c64。

AES的加密和解密流程如图所示。

地图数据网络分发的混合加密算法

AES加密算法的输入分组、输出分组和加/解密过程中的中间分组分别为128_bit,192_bit和256_bit,因此,由用户选定相应的密钥长度分别为128_bit,_192_bit和256_bit。密钥设计采用二维字节数组,共4行、Nk列。因为Nk等于密钥长度除以32,所以输入分组、输出分组和加/解密过程中的中间分组相应的Nk分别为4,_6,8,。用Nr表示对一个数据分组加密的轮数。每一轮都需要一个与输入分组具有相同长度(128_bit)的扩展密钥Key的参与。由于外部输入的加密密钥Key长度有限,因此在实际应用中要用一个密钥扩展程序把外部密钥Key扩展成更长的比特串,以生成各轮的加密密钥。

AES加解密过程如下:

循环取出输入数据中的16_Byte,将其复制到状态数组中(状态是指每次变换操作产生的中间结果,可用以字节为元素的二维数组表示,共4行、Nb列,Nb等于数据块长度除以32),加解密过程都在这个状态数据中进行处理,加解密结束后再将状态数组复制到结果数组。

(2)RSA加密算法

RSA加密算法是最常用的经典非对称加密算法,其数学基础是欧拉定理,建立在大整数因子的困难性之上。

欧拉定理:将Z/n表示为Zn,其中,n=pq,p,_q为素数且相异。若_Zn*≡{gZn|(n,g)=1},则Zn*nZ为_(n)阶的乘法群,且有g_(n)≡1modn,_(n)=(p-1)(q-1)。
若(a,_n)=1,则a_(n)≡1modn。密钥产生每位使用者,如A。任意选择2个大素数P和Q并求出其乘积N=PQ。使用者A任意选择一个整数e,使e与N互素,并求出e在阶T中的乘法逆d,即ed=1modT。根据欧拉定理,指数函数在模N中所有元素阶的最小公倍数等于P-1与Q-1的最小公倍数。一般使用T=(P-1)(Q-1)=_(n)。使用者A将(e,_N)公布为其公开密钥,并将d秘密保存为其私有密钥。

2、常用加密算法的分析与比较

(1)2种类型加密算法的特点

a、对称加密算法,其特点是加密密钥和解密密钥相同,算法简单、易于实现,加密和解密速度较快,但对密钥的管理较困难。

b、非对称加密算法,其特点如下:

a)加密密钥和解密密钥不同,计算解密密钥时无法由加密密钥推出,即使将加密密钥公开,也不存在可以轻易推导出另一个密钥的有效算法,其密钥管理较容易,但算法复杂,加密和解密速度慢。

b)不需要增加分发密钥的额外通道,将加密和解密密钥分开,实现由多个用户加密的消息只能被一个用户解读,或一个用户加密的数据能被多个用户解读。

(2)2种类型加密算法的比较

各种加密算法的具体实现各不相同,其性能也有很大差别。DES加密算法和RSA加密算法作为对称、非对称加密算法的典型代表,由于机制、算法的不同,因此有不同优缺点,具体如下:

a、加解密的处理效率,DES算法只有56位密钥,加解密速度快、保密度高,可实现高速处理;RSA算法须进行多位整数乘幂和求模等多倍字长处理,运算量大而复杂,加解密数据的速率较低,不适用于对较长明文的加密。

b、加密算法安全性和保密性,DES加密算法采用单密钥,其安全性完全依赖密钥的保密,易受穷举强力攻击;RSA算法由于采用双密钥,因此密钥产生较繁琐,其安全性依赖于大数分解的困难度。

c、密钥的分配和管理,DES加密算法必须在通信前对密钥进行秘密分配,人多时密钥数量大,因此,定期更换密钥难度较大;RSA加密算法只对自己的秘密密钥进行保密管理,无需秘密通道或复杂协议来传送密钥,易于更换密钥。

由上述分析可知,不同算法之间存在较大差异,适用场合不同。DES算法能加密大量数据,较适于用硬件来实现。RSA加密算法执行速度慢,适于给少量数据文件加密,例如用于数字签名等,也可以为公开密钥签发证书等提供高质量服务。

在现代高速计算机上针对DES体制用穷举法强力攻击寻求密钥是可以实现的。对RSA体制而言,如果找到把一个乘积数分解为2个大素数的快速算法,就意味着被击破。而作为高级加密体制所提出的AES加密算法是加密技术的最佳解决方案。AES的Rijndael加密算法具有高安全性、高效率和易用等优点。

三、散列组合加密算法

1、 散列组合加密算法原理

在地图数据网络分发过程中,传输的数据类型包括影像数据、地图数据、元数据、文本数据等,数据量范围在几十万字节到几百兆字节之间。数据加密算法必须适合不同数据类型与数据量,保证传输过程中的数据安全,并兼顾加密速度。在用户较分散的情况下,对密钥的管理与传递也是关键之一。

综上所述,我们提出一种对称加密算法和非对称加密算法相结合的散列组合加密算法。对数据实体采用对称加密算法,保证其安全性与效率;对密钥采用非对称加密算法,保证密钥安全并便于对其管理。在实际分发过程中,将密钥与数据相结合进行加密。

本文采用AES作为数据实体加密算法。加密采用的密钥若单独传递会增加传送次数,并使密钥数据流在传输过程中被截获的可能性极大增加,攻击者可单独对密钥进行破解,其保密性难以得到保证。因此,笔者在加密过程中,将密钥和加密数据结合起来进行传送。其基本思想是采用RSA加密算法对AES的加密密钥进行加密,对加密后的密钥按4 Byte或 8 Byte分组,将每组数据随机分散到经AES加密后的数据实体中,记录下分组类型和每个分组所在位置,形成附加密码,将附加密码用RSA加密算法进行加密,再将加密后的附加密码嵌入数据文件中,记录嵌入的位置和长度,组成附加密码2和附加密码3,对附加密码2和附加密码3分别采用RSA加密并嵌入到原密钥和数据组成的数据块的头和尾中,组成新的加密文件,进行传送。

2、散列组合加密算法流程

散列组合加密算法流程如图所示。

地图数据网络分发的混合加密算法

AES加密算法的密钥由用户输入或根据密钥生成算法自动生成。RSA算法的密钥对根据用户申请由密钥管理中心生成并通过其他途径将私钥传递给用户,公钥保存在密钥服务器上供加密用户查询。用户需要传输数据时,先登陆密钥服务器查询对方的公钥,然后输入AES密钥,启动加密算法。附加密钥嵌入的位置可按数据传递双方的约定,根据不同用户定制。

根据空间数据的海量和非结构化特征,笔者在实际应用过程中将数据压缩与加密相结合,进行数据传输前的处理。在实验中,从数据库中调出需要传输的一个或多个数据,将数据压缩为一个传输数据包,对传输数据包进行加密,从而减少压缩数据的数据量并提高压缩效率,实现多数据文件同时传输。

3、散列组合加密算法的应用与测试

在应用中,笔者对多个加密算法进行测试对比,采用的数据是1:_50_000矢量数据,数据包大小为57.4_MB,测试结果如表所示。

地图数据网络分发的混合加密算法

由测试结果可以看出,散列组合加密算法与AES算法基本相同,由于算法需要对数据文件进行分析与重组,因此耗时略大于AES加密算法。在传输过程中采用CORBA的迭代器进行传输,将数据包分为更小的传输包,每个传输包在传输时都加入完整性校验,以保证数据传输的正确性。

安全性是空间数据网络传输的基本要求。地图数据网络分发中的安全体系包括网络信道安全、数据安全、用户信息安全、用户权限管理、用户管理、安全证书等多个方面,在实际应用中必须综合考虑这些因素。本文研究的数据安全是其中一个分支,提出的加密算法在实际应用中取得了良好效果。

小知识之欧拉定理

在数学及许多分支中都可以见到很多以欧拉命名的常数、公式和定理。在数论中,欧拉定理(Euler Theorem,也称费马-欧拉定理或欧拉函数定理)是一个关于同余的性质。欧拉定理得名于瑞士数学家莱昂哈德·欧拉,该定理被认为是数学世界中最美妙的定理之一。欧拉定理实际上是费马小定理的推广。此外还有平面几何中的欧拉定理、多面体欧拉定理(在一凸多面体中,顶点数-棱边数+面数=2)。西方经济学中欧拉定理又称为产量分配净尽定理,指在完全竞争的条件下,假设长期中规模收益不变,则全部产品正好足够分配给各个要素。