由于传统混沌加密算法对数据文件加密时存在运算开销大、运算效率不高等缺点,不能有效地应用于移动应用系统,因此提出把混沌理论应用刭信息安全系统设计,并用适合移动通信系统的混沌加密算法,从移动通信的安全需求出发,对J2ME平台的安全性支持进行了详细的分析,将一种新的混沌加密算法引入移动通信中,把设计的重点放在J2ME平台上的客户端和服务器端,并在Matlab上对提出的加密算法进行加密仿真。

一、移动应用的安全需求

移动应用具有其得天独厚的优势,深受移动用户的青睐,但移动应用的开放特性和广播特性,使得其面临着重大的安全隐患,攻击者可以进行截取、插入或重放等恶意攻击。再者,移动终端运行环境非常有限,移动软环境的浏览器、协议、描述语言的限制等,增加了移动应用安全认证的困难。

尽管在传统网络中已经有了很多成熟、有效、复杂的普通应用方案,但普通应用系统和移动应用系统相比存在巨大差异,其主要表现在移动应用系统易受环境影响、随机比特出错率高、网络延迟长、双向带宽不平衡等方面。这些差异的存在使得已有的普通应用系统无法适用于移动应用系统。

因此,有必要结合这些差异对移动应用系统进行研究。目前,无线通信技术发展迅速,但不认为这些技术的发展会使移动应用的诸多限制有所缓解。与摩尔定理不同,认
为技术的发展将推动无线设备成本的迅速降低,而不足移动应用安全的提高,这是由移动应用复杂环境所决定的。考虑到移动环境的特点,综合考虑各方面的因素,认为无线移动应用的安全应确保双方的合法权益所涉及的内容不受非法入侵者的侵害,通常主要涉及以下几个方面的内容:

1、数据的机密性(confidentiality)

移动应用应该对主要信息进行加密处理,防止对信息的非法操作(对信息的非法存取、窃取、篡改),以避免非法用户获取和解读原始数据。移动应用信息直接代表着个人、企业或国家的商业机密,而移动应用建立在开放的网络环境上。因此,要预防非法的信息存取和信息被非法窃取。防止合法或隐私数据为非法用户所获得,通常使用加密的手段实现,从而确保交易过程中只有交易的双方才能唯一知道交易的内容。

2、完整性(integrity)

数据输入时的意外差错或欺诈行为,数据传输过程中信息丢失、信息重复或息传送的次序差异可能会导致贸易各方信息的差异。保持贸易各方信息的完整性是移动应用的基础。因此,要预防对信息的随意生成、修改和删除,同时要防止数据传送过程中信息的丢失和重复并保证信息传送次序的统一。移动应用系统应该提供对数据进行完整性验证的手段。完整性要求保证数据的一致性,防止数据被非授权建立、修改和破坏。完整性一般可通过提取信息消息摘要的方式来获得。确保交易他方或非法入侵者不能对交易的内容进行修改。

3、鉴别(authentication)

移动应用系统应该提供通信双方进行身份鉴别的机制,确定要进行交易的贸易方正是进行交易所期望的贸易方是保证电子商务顺利进行的关键。交易双方是可以信任的,即确保服务间的相互身份认证,防止欺诈行为的产生。

在传统的纸面贸易中,贸易双方通过在交易合同、契约或贸易单据等书面文件上手写签名或印章来鉴别贸易伙伴,确定合同、契约、单据的可靠性并预防抵赖行为的发生。在无纸化的移动应用系统方式下,通过手写签名和印章进行贸易方的鉴别已是不可能的。因此,要在交易信息的传输过程中为参与交易的个人、企业或国家提供可靠的标识。一般可以通过数字签名和数字证书相结合的方式实现用户身份的鉴别。

4、不可否认性(non-repudiation)

确保交易行为的正确性,交易双方不能否认交易行为的发生,同时能处理发生的交易纠纷。

二、J2ME平台的安全性支持分析

由于Java平台的最显著的特性之一是能够动态地、安全地用各种类型的网络向客户端设备传送交互内容和应用程序。从所保护的对象的角度分类,J2ME对应用安全性的支持主要可以分为三个方面:保护设备资源的安全、保护网络传输的安全及增加第三方工具包。

1、设备资源的安全

应用必须不能破坏应用所执行的环境,也就是应用运行的设备,不能访问未被授权的资源。基于J2ME的移动应用平台可以从开发语言、底层KVM的安全、采用沙箱模型和保护系统类来实现。

2、网络传输的安全

网络传输中主要面临的安全问题有:数据完整性、认证和私密性。在J2ME平台中是通过MIDP中集成KSSL实现的。服务器端用Tomcat作为Hitps的服务器,业务逻辑由业务Servlet来实现,客户端通过导人Certificate来实现对服务器的认证,此后客户与服务器的通信都是经过SSL加密的。

KSSL的实现框架如图1所示。

J2ME平台中混沌加密算法的应用

3、第三方工具包

利用第三方工具包中提供的算法支持类,实现安全加密API可以提高J2ME平台对应用安全性支持。一些开源安全项目和公司开发的工具包提供了可用于J2ME平台上的安全支持类,可用于J2ME平台的第三方安全工具包有:BouncyCastle轻量级安全工具包、IAIK JCE-ME工具包、Phaos Tech-nology Micro Foundation工具包、NTRU jNeo的Java工具包、安全加密工具包等。

三、移动应用中的加密算法的分析与设计

1、混沌迭代函数设计

(1)Logistic映射

一个混沌加密算法通常利用一个系统初值生成一个类随机信号序列,将待加密信息采用某种编码方式附加到混沌序列形成密文序列,解密时用同样的混沌序列对密文序列进行解密。Logi8tic混沌系统是一种被广为使用的一维混沌系统,它是定义在(0,1)上的一种映射:

J2ME平台中混沌加密算法的应用

其中参数 λ∈(0,4]为系统标量参数,Xn∈(0,1]是序列中的第n个值,Xn+1是序列中的下一个值(n=0,1,2,…),Xo是序列初值。当λ>3.83时由该映射产生的序列呈现出混沌态口一般将初值xo、系统参数λ作为种子密钥产生混沌密钥序列a通过Logistic模型的分岔图(图2)可以直观了解λ的取值对迭代过程的影响和迭代结果的分布情况。

J2ME平台中混沌加密算法的应用

由图2可知,该混沌迭代函数的问题是:存在明显的“稳定窗”,即点聚集于某个区间,而其它区间内则是空白,当λ<3时,迭代会趋于某一个周定值;控制参数的有效取值范围太小,仅为0.4左右;再者,仅用一个混沌系统由一个初值和系统参数作为种子密钥产生混沌密钥序列,其安全性是不够的。因为易于被攻击者识别类型;一旦混沌系统的类型被识别,则只要截获足够长的明文/密文对,就能够破解种子密钥,从而破解混沌序列信息。

(2) 一种新的混沌迭代函数

根据原混沌算法存在的问题,我们提出了一种改进的加密算法,在混沌迭代函数中加入了幂函数(1 - x)β。在混沌迭代函数中加入正切函数和幂函数,形成新的混沌生成
算法,使得幂函数随着名的增大,快速衰减,为了使衰减周期变长,那么设法提高髫增大带来的函数值增大效果。新加密算法的公式表示为:

J2ME平台中混沌加密算法的应用

在(0,1.4]内随机选取100个α值,对每一个α,从 β=5开始,每次增大0.01,直到β= 43,经过约39万组(每组100万个)实验数据证明该迭代函数均能产生混沌现象,满足非重复性、随机性、发散性要求。随机选取其它α、β值做类似的迭代实验,结果表明都能产生良好混沌效果。取α=1. 57,β=3.5时函数的迭代情况如图3所示。

J2ME平台中混沌加密算法的应用

2、混沌加密算法的分析与设计

在本文中采用混沌加密算法作为J2ME平台的第三方工具包API来进行移动应用中的安全性研究,因此混沌加密算法的设计是至关重要的,它决定了混沌加密系统的安全性以及执行效率。由于加密的是数字量,所以将这个由实数构成的序列{Xi}映射成由整数构成的伪随机序列来充当加密密钥。常用的一种映射方法是选取X;小数点后的几位有效数字构成整数。由此提出一个基于Logistic混沌映射的加密确/解密模型如图4所示,解密过程是加密的逆过程,初始值Xo和λ是Logistic方程的参数,迭代M次后得到Xo将X对256取余,然后与经过置换后的明文异或获得加密密文。

J2ME平台中混沌加密算法的应用

在基于J2ME的移动应用中,混沌加密算法设汁可针对客户端和服务器两个方面来进行。客户端用混沌加密类实现数据信息的加密和解密。服务器端组件用J2ME开发,实
现对客户端信息加密、解密、更改帐户信息和传递信息等功能。

混沌加密算法如图5所示。客户端利用密钥对(K1,K2),对发送的信息进行加密,将信息分成一定的长度,然后与K1,K2做反馈型异或运算。

J2ME平台中混沌加密算法的应用

也就是说从第二个字节始,前一字节的密文与密钥异或后,再与后一字节的明文加密,经过两次加密后得到的密文通过HTTPS协议发送到服务器端,服务器利用它预存的客户端初始密码,对接收的信息进行解密并做进一步的处理。

同时,服务器也建立用户注册信息,并从密钥生成器中获取新的密钥( K3,K4),存于用户信息表中。然后将经过K1,K2加密后的新密钥传送到客户端。客户端获得密钥后,自动更新密钥。服务器用新密钥对客户需要的信息加密后通过HTTPS协议传送,最后由客户端解密并获得需求信息。

可以看出,在加密与解密中,系统的所有模块都是可以重用的,只是按照加密解密的顺序不同,模块流程不同而已,所以系统的加密觎密可以认为是相同的,使得系统的结构简单,成本也很低。当服务器端的逻辑层接收用户数据后,从数据库中查询出用户的密码,然后用上述的解密算法得到明文。

四、仿真研究

以J2ME平台中设计—个移动应用的安全加密算法(混沌加密算法)为例,采用Matlab工具对提出的加密算法进行数据加密实验,实验时随机输入一段明文:

Finally,B new type of encryption algorithm-chaot-icencryptionalgorithm was tran8planted to the J2ME plat-forrn. What-s more,give a chaotic encryption algorithm based onJ2ME platform design plan and. realize the 8imulation resuIt.

通过对上述明文的实验,得到如下概率统计数据,如图6所示,图中横坐标表示ACSII码的码值,纵坐标表示对应码值出现的频率。

J2ME平台中混沌加密算法的应用

基于J2ME的移动互联网信息安全监管试验系统采用混沌算法对密钥是很敏感的,密钥有微小的差别,加密解密的结果就会不同。破译者只有得到确切的加密密钥,才能对密文进行还原,破译者猜测的密钥只要与真正的密钥有一点差别,所解密得到的信息都会和真实信息的本来面目相差很大。这样,给破译者的攻击行为加大了难度,保证了系统的安全性。

小知识之J2ME

J2ME(Java Platform,Micro Edition),是为机顶盒、移动电话和PDA之类嵌入式消费电子设备提供的Java语言平台,包括虚拟机和一系列标准化的Java API。它和Java SE、Java EE一起构成Java技术的三大版本,并且同样是通过JCP(Java Community Process)制订的。