当前位置:文档之家› 基于Android平台的即时通讯系统的研究与实现

基于Android平台的即时通讯系统的研究与实现

硕士学位论文
基于Android平台的即时通讯系统的
研究与实现
学科专业计算机软件与理论
学位类型曰科学学位口专业学位
研究生姓名罗伟
导师姓名、职称高春鸣教授
论文编号
湖南师范大学学位评定委员会办公室
二零零九年三月分类号TP311
学校代码10542学号 20062100049
基于 Android平台的即时通讯系统的
研究与实现
Studyandrea11zat1onofAndroid一based
1nstantmessag1ngsystem
研究生姓名
指导教师姓名、职称
学科专业
研究方向
高春鸣教授
计算机软件与理论
间件与软件体系结构
湖南师范大学学位评定委员会办公室
二零零九年三月摘要
随着移动通信与Intemet的飞速发展及相互融合,GPRS使无线
_网络高速接入到Intemet成为现实,移动用户从而可以享受到Intemet
提供的服务。即时通讯是基于互联网协议的应用程序,它能够使应用
不同设备的用户进行通信,随着手机的不断普及以及性能的不断提
升,为即时通讯系统从传统的PC机到手机的移植提高了很好的条件。
而且在中国庞大的手机用户中,通过手机使用即时通讯软件的用户越
来越多。当前的手机操作系统都过于封闭,各大即时通讯软件采用的
通讯协议也不统一,而Android是基于Linux的开源的手机操作系统
平台,XMPP是基于XML的开源的即时通讯协议,因此基于Android
平台和XMPP协议开发即时通讯系统具有很好的应用前景。
本文首先给出了系统的研究背景,对当前手机操作系统、即时通
讯软件和即时通讯协议的发展现状做了简单的介绍。进而详细的分析
了Android的特征、架构以及Android应用的构成和工作机制,并对
Alldrnid与其他手机操作系统进行了比较,说明了Android在手机操
作系统中的优势。
本文详细的提出了系统的架构,以及系统服务器端和客户端的解
决方案,采用开源的openfire作为系统的即时通讯平台,实现移动客
户端之间的即时通讯。对系统客户端的组成模块进行了介绍,对即时
通讯协议XMPP以及系统的通讯机制进行了分析。针对当前通信数
据的安全问题并结合本系统的特点,对IDEA数据加密算法进行了改
进,提出了A一IDEA算法的设计,并对两种算法从几个方面进行了对
比分析,对于图片文件的加密,采用A一IDEA与RSA算法相结合的
方案。对服务器的运行流程进行了分析并对系统客户端进行了详细的
设计与实现,最后对系统进行了部署和测试。
关键词:Android,XMpp,A一IDEA,openfire,即时通讯
么二一ABSTRACT
WiththerapiddeveloPmentandintegrationofmobile
eommunieati叩an过Internet, GpRSwirelessnetworksmakinghig卜sPeed
aeeesstotheIntemetbecomesrealityandmobileuserscanenjoyservices

ProvidedbyIntemet.Instantmessaging15basedonapPlieationsof
IntemetProtoeol, whicheanenableuserstousedifferentdevicesto
con卫 nunicate.AndwiththeeonstantPoPularityofmobilePhonesaswell
asthecontlnuousPerformanceilllProvement, it15timeforreal一time
eornrnunicationsystemstotransPlantfromthetraditionalPC一Mobile.
Additionally, inthemarketofChina, 5hugemobilePhoneusers,mobile
Phoneusersusingofinstantmessagingsoftware15inereasing.Currently,
mobileoPeratingsystemsaretooelosed, andthemajorinstantmessaging
softwareeornlnunicationProtocolsusedarenotunified.Android15based
ontheoPen一 soureeLinuxmobileoPeratingsystemPlatfo肋, andXMPP
15aXML一 basedoPen一 sourceinstantmessagingProtocol, 50Alldroidand
XMPP一 basedinstantmessagingsystemshavegoodaPPlieationProsPeet.
InthisPaper, firstofall, asystematicstu即 ofthebaekgroundonthe
eurrentmobileoPeratingsystems15introdueed.Thenthestatesofmobile
OPeratlng
Protocol’s
system, instantmessagingsoftwareandinstantmessaging
develoPmentaresimPlydescribed.Furthermore
characteristics,architeeture, eomPositionandworkingmeehanism
Androidareanalyzedindetail.Finally, theadvantagesofAndroidare
instrUctedthrougheomParisonwithothermobileoPeratingsystem.
ThisPaperPutsforwardadetailedsystemarchitectureandthe
https://www.doczj.com/doc/8c2684277.html,ingoPen一souree
OPenfireasasystemofinstantmessagingPlatfo溯 realizesclient一side
111
岁 instantmessaging.Themoduleeon1Positionofthesystemelient一 side15
introduced, andXMPPinstantmessagingProtoeolandthe
eommunieationmeehanismofthesystemareanalyzed.Aimedatthe
eurrentsecurityProblemsofeonllnunieationdataandthecharaeteristies
ofthesystem, dataencryPtionalgorithmIDEAhasbeenimProved,also
A一 IDEAalgorithm15designed, aswelltwoalgorit知 rnsareeomPared
fromseveralasPects.FortheimagefileencryPtion, thesehema15to
adoPtA一 IDEAandRSAalgorit知 msconlbined.RunningProeessesofthe
serverareanalyzed.Inaddition, thesystemclient, 5side15designedand
realizedindetail.Finally, thesystem15dePloyedandtested.
KeyWords:Android,XMPP,A一IDEA,OPenfire, InstantMessaging
IV目录
中文摘要...……::...................……、.........……:.............……二...............……:.…I
英文摘要...........................................……,..........................................……111
1.绪论
1.1课题背景.....................................................................................……(1)
1.2相关技术的发展现状.................................................................……(2)
1.3本文主要工作.............................................................................……(4)
1.4论文组织结构................................................

.............................……(5)
2.Android的架构分析
2.1Android特征...............................................................................……(7)
2.2Androfd架构.......-.......................................................................……(8)
2.3Androfd应用的构成和工作机制.............................................……(10)
2.4Androfd与其它手机操作系统的比较.....................................……(13)
2.5本章小结...................................................................................……(14)
3.基于Android平台的手机即时通讯系统
3.1系统概述...................................................................................……(15)
3.2系统架构...................................................................................……(15)
3.3系统客户端解决方案...............................................................……(16)
3.4系统服务器端解决方案..........................……,..........................……(17)
3.5系统即时通讯协议...................................................................……(19)
3.6系统通信机制研究...................................................................……(20)
3.7本章小结...................................................................................……(22)
内4.系统通讯数据加解密算法
4.1IDEA数据加密算法概述.........................................................……(23)
4.2A一IDEA算法的设计.................................................................……(25)
一4.3A一IDEA与IDEA算法对比分析.......…….:..............................……(28)
4.4A一IDEA算法与RsA算法的结合...........................................……(30)
4.5本章小结...................................................................................……(32)
5.系统的设计与实现
5.1服务器端运行流程...................................................................……(33)
5.2系统客户端的设计与实现.......................................................……(37)
5.3即时通讯流程描述..............……,..............................................……(49)
5.4本章小结...................................................................................……(53)
6.系统部署及测试
6.1系统部署...................……,.........................................................……(55)
6.2系统测试................................……,............................................……(56)
6.3本章小结...................................................................................……60)
7.结论
7.1总结............................................................................................……(61)
7.2展望............................................................................................……(62)
参考文献.........

................................................................................……(63)
致谢.........................................................................................……(69)基于Android平台的即时通讯系统的研究与实现
1.绪论
1.1课题背景
随着移动通信的发展以及互联网向移动终端的普及,网络和用户
对移动终端的要求越来越高,而Sy汕ian, windowsMobile,Palmos
等手机平台〔’]过于封闭,不能很好的满足用户的需求,因此市场迫切
需要一个开放性很强的平台。经过多年的发展,第三代数字通信(3G)
技术获得了广泛的接受,它为移动终端用户带来了更快的数据传输速
率。随着3G网络的使用,移动终端不再仅是通讯网络的终端,还将
成为互联网的终端。因此,移动终端的应用软件和需要的服务将会有
很大的发展空间。Google为此于2007年H月推出了一个专为移动
设备设计的软件平台—Androfd[2]。
Androfd是一套真正意义上的开放性的移动设备综合平台,它包
括操作系统、中间件和一些关键的平台应用。Androfd是由 Linux+Java
构成的开源软件,允许所有厂商和个人在其基础上进行开发。Androfd
平台的开放性等特点既能促进技术(包括平台自身)的创新,又有助
于降低开发成本,还可以使运营商能非常方便地制定自己的特色化的
产品。因此,它具有很大的市场发展潜力。
根据中国互联网络信息中心(CNNIC)发布的《第22次中国互
联网络发展状况统计报告》显示,截至2008年6月底,我国网民数
量达到了2.53亿,首次大幅度超过美国,网民规模跃居世界第一位,
其中手机网民达到7305万,手机上网成为网络接入的一个重要发展
方向。十大互联网应用中,即时通信、搜索引擎和电子邮件三大互联
网基础应用均榜上有名,使用率均超过60%。其中,即时通信使用率
为77.2%,用户规模达到了 1.95亿人,半年增长了2442万,半年增
长率14.3%。说明即时通讯在网络应用中占据了十分重要的地位。
少‘-硕士学位论文
1.2相关技术的发展现状
1.2.1手机操作系统的发展现状
Palm0513]是一套专门为掌上电脑编写的操作系统,是一种轻量
级、比较开放的操作系统,占用的内存非常小,允许用户在其基础上
编写和修改相关软件,使支持的应用程序更加丰富多彩。Palm在其
它方面也还存在一些不足,如Palm操作系统本身不具有录音、MP3
播放功能等,但是可以通过加入第三方软件或硬件设备来实现。其代
表性的产品有 Palmmsos、 Palmmsoo、 Palm111等。
Symbian[4]是一个实时性、多任务的纯犯位操作系统,具有功耗
低、内存占用少等特点,非常适合手机等移动设备使用,经过不断完
善,可以支持GPRs

、蓝牙、s”cML、以及30技术。
windowsmobile[5]系列操作系统是从微软计算机的windows操作
系统上变化而来的。 WindowSMobile系列操作系统功能强大,而且
支持该操作系统的智能手机大多数都采用了英特尔嵌入式处理器,主
频比较高,在其它硬件配置(如内存、储存卡容量等)上也比采用其
它操作系统的智能手机要高出许多,因此性能比较强劲,速度比较快。
WindowsMobile系列操作系统包括SmartPhone以及 PoeketPCPhone
两种平台。 PocketPCPhone主要用于掌上电脑型的智能手机,而
SmartPhone则主要为手上智能手机提供操作系统。
Linux系统[e]是一个源代码开放的操作系统。由于其开源性,手
机制造商可以根据实际情况开发自己的Linux手机操作系统,从而也
能够吸引更多的软件制造商在其上开发更多的应用软件,丰富第三方
的应用。但是Linux操作系统也还存在一些不足,集成开发环境和基
于Limix的产品与PC的连接性比较差等。基于Andr01d平台的即时通讯系统的研究与实现
1.2.2即时通讯软件的发展现状
据腾讯QQ[7]官方消息,2005年,QQ在国内己拥有2.4亿多的注
册用户,7000多万活跃用户,同时在线人数700万以上。目前,腾
讯QQ己成为国内用户最多的个人即时通讯工具,占据着国内约65%
以上的市场份额。并且整合移动通讯手段,可通过客户端发送信息给
手机用户。
MsN[7]是微软公司开发的即时通讯工具,用户众多,操作简单,
运行稳定,且与 WindowSXP实现了无缝结合,使得MSN的普及速
度非常快,在国内即时通讯软件中稳占了第二的位置。MSN采用邮
件地址作为用户名,实现了与邮箱之间的连接。当对方不在线时,你
可以选择给对方的MSN邮箱或Ho加ail发送邮件。这样MSN就不仅
是一个简单的即时通讯软件,而演变为以MSN为中心的整合服务。
POPO[71是由网易公司开发的一款免费多媒体即时通讯工具,融
合了QQ与MSN的优点,解决安全与隐私问题的功能非常完善,特
别是好友的权限设置功能,优于其他即时通讯软件。并可与移动通讯
终端等多种通讯方式相连。POPO还支持用户同时登录一个MSN账
户,实现了与MSN的互通互联。
IcQ[7]是19%年11月在全世界范围推出的第一款即时通讯软件,
是现在功能最强大、全球用户最多、应用最广泛的即时通讯工具。但
由于它的操作和设置比较复杂,再加上全英文的聊天界面,使许多中
国用户对它望而生畏,在中国市场上所占份额逐渐萎缩。近期,就在
其他同行纷纷通过增加功能来吸引用户时,ICQ反而推出了功能精简
版的ICQLite,试图在中国市场东山再起。
1.2.3即时通讯协议的发展现状
目前主流的 IM(InstantMessaging)协议

主要有即时信息和空间协硕士学位论文
议(IMPP)[8]、空间和即时信息协议(P租M)[8]、针对即时通讯和空间平
衡扩充的进程开始协议sIP(sIMPLE)[8]和xMPp(Extensible
Mesageingandpresenceprotocol)[8]协议。
IMPP主要定义必要的协议和数据格式,用来构建一个具有空间
接收和发布能力的即时信息系统。到目前为止,这个组织已经出版了
三个草案即C,但主要的有两个:一个针对站点空间和即时通讯模型
的 (RFC2778)和一个针对即时通讯/空间协议需求条件的(舒C2779)。
SIMPLE是目前为止制定的比较完善的一个,符合即C2778和
RFC2779草案。SIMPLE被定义为建立一个IM进程的方法。SIMPLE
使用SIP(IETF中为终端制定的协议)来建立一次进程,再利用SDP
(进程描述协议)来实际传输IM数据。
PRIM与XMPP、SIMPLE类似,己经不再使用了。
XMPp(ExtensibleMessageingandpreseneeprotoeol:可扩展消息
与存在协议)。符合RFC2778和RFC2779草案。XMPP是一种基于
XML的协议,它继承了XML环境中灵活的扩展性。经过扩展以后
的XMPP允许通过发送扩展的信息来处理用户的需求,以及在XMPP
的顶端建立如内容发布系统和基于地址的服务等应用程序,而且
XMPP还包含了针对服务器的软件协议,实现了在不同服务器之间的
通话。
1.3本文主要工作
Android是基于 Linux+Java的手机操作系统平台,XMPP是基于
XML的开源的即时通讯协议,本文从实际应用出来,提出了开发基
于Alldrofd平台的手机即时通讯系统。本文的主要工作包括:
(l)在本系统所采用的 Androfd1.0平台上没有提供XMPPServiee
这个组件的情况下,我们根据XMPP协议的规则,利用该平台为我
们提供的XML解析包对XML消息进行解析,并对该系统进行了具基于Android平台的即时通讯系统的研究与实现
体的设计和实现。本系统除了即时文本信息的传输外,还可以进行图
片的传输,并对系统客户端的功能进行了扩展,增加了音乐播放和图
片浏览的功能。并且该系统在Andrnid模拟器上运行,取得了很好的
运行效果。
(2)针对通信数据的安全问题并根据系统的特点,对IDEA数据加
密算法进行了改进,提出了A一IDEA算法的设计,并对两种算法进行
了比较分析,得出改进的算法A一IDEA更适合运用于本系统。对于图
片的加密,我们采用A一IDEA与RSA算法相结合的方案,进一步确
保图片文件传输的安全。
1.4论文组织结构
本文首先分析了系统的研究背景,介绍了当前手机操作系统、即
时通讯软件的发展现状和即时通讯协议,以及本文的主要内容。
第二章,介绍了Androfd的特征、Androfd的架构以及Andrnid
应用的构成和工作机制,并对Androfd与其它手机操作系统进行了比
较,说明了Androfd的

优势。
第三章,提出了在Android平台上开发基于XMPP协议的即时通
讯系统,提出了系统的架构、系统服务器端和客户端的解决方案,对
系统采用的即时通讯协议XMPP以及系统的通讯机制进行了分析。
第四章,对IDEA数据加密算法进行了简单的介绍,并根据系统
的特点,对IDEA算法进行了改进,提出了A一IDEA算法的设计,并
对IDEA与A一IDEA算法进行了对比分析,对于图片的传输,我们采
用A一IDEA与RSA算法相结合的方式对图片进行加密,确保图片传
输的安全。
第五章,对系统服务器端的运行流程进行了详细的分析,对
Andrnid客户端从客户端页面,客户端数据库,XML解析模块加解密
模块,即时通讯模块和客户端扩展功能几个方面进行了详细的设计与硕士学位论文
实现,最后对系统的即时通讯流程进行了描述。
第六章,对系统进行了部署和从系统注册登录、获取好友和群组
列表、消息的发送和接收、图片的发送和接收以及音乐的播放和图片
的浏览几个方面进行了测试。
第七章,总结了本文的主要研究内容和研究成果,分析了存在的
问题,并对今后的发展方向进行了展望。基于Android平台的即时通讯系统的研究与实现
2.Android的架构分析
Androfd是一个移动设备的软件平台,是由Linux+Java构成的开
源软件,它提供包括sDK、 KeyAPps、Middleware、 LinuxKemel四
个部分在内的全套手机软件方案。它开放了基于Linux内核[9]以上的
开发工具,从而保证了内容的可移植性和多样性。Andrnid平台为我
们开发应用程序提供了一套很好的框架,我们可以在这个平台的基础
上开发不同的应用程序,也可以开发新的组件供应用程序调用。
2.1Android特征
应用框架[l“]:用于开发可重用可替代的组件。
Dalvik虚拟机〔’0]:Andrnid采用的Java虚拟机是自主开发的代号
为Dalvik的虚拟机技术,在保证API方面兼容的同时Dalvik针对移
动手机进行了大幅优化,占用资源更小,运行效率更高。
内嵌浏览器:基于开源的浏览器网页排版引擎webKitll’]。
优化的图形:强大的自定义二维图形库。基于 openGLEs1.沙’〕
标准的3D图形功能,在移动3D开发中有着至关重要的地位。
sQLite数据库:sQLite[”]提供结构化的数据存储。它是一款轻型
免费的且开源的数据库,它的设计目标是嵌入式的,它占用的资源非
常低、需要的内存空间少、处理速度比较快和支持事务处理功能等。
多媒体支持:支持各种通用的音视频和静态图像格式,如MP3、
JPo、PNo等。 openeore[’4]是劫士oid多媒体框架的核心,所有
Andrnid平台的音视频采集,播放的操作都是通过它来实现的。通过
OpenCore,程序员可以方便快速的开

发出想要的多媒体应用程序。
osM技术I‘5]:(依赖硬件 )Globalsystem扔:Mobile
CornrnunicationS,全球移动通讯系统,俗称“全球通”,是第二代移硕十学位论文
动通信技术,其开发目的是让全球各地可以共同使用一个移动电话网
络标准,让用户使用一部手机就能行遍全球。
蓝牙,EDGE, 3qandwiFi[’“]:(依赖硬件)蓝牙和Wi一Fi都是一种
短距离的无线连接技术,在短距离内可以实现话音和数据的无线传
输。 EDGE(EnhaneedDataRateforGsMEvolution),是增强型数据速
率GSM演进技术。
Camera,GPS,eomPass, andaeeelerometer:(依赖硬件)GPS(Global
positioningsystem)[’7],即全球定位系统。它是一个由覆盖全球的24
颗卫星组成的卫星系统。ComPass是一个开放源代码的JAVA搜索引
擎框架。
强大的开发环境:包括一个设备模拟器,调试工具,内存和性能
检测,以及 EclipseIDE的开发插件。Eclipse是个集成开发环境。
2.2Android架构
劫droid的架构[’8一’”]是由Linux内核、e/C++函数库、nalvik虚拟
机、应用框架以及关键应用程序构成的。通过编译基于框架的应用程
序可以降低开发负荷。应用软件原则上是在 DalvikVM上运行的。
图2一IAndrofd架构基于Androfd平台的即时通讯系统的研究与实现
2.2.1关键应用程序
Andrnid平台内包含一些关键应用程序,如邮件收发客户端程序、
短信收发程序、日历和网页浏览器等,开发者可以在其平台上开发更
多有特色的应用程序。开发语言是Java。
2.2.2应用程序框架
Android应用程序的开发基于框架和组件。Android本身己在其
框架中提高了许多的组件供应用程序调用,当然开发者也开放新的组
件,并将组件放入应用程序框架中,以供自己和其它应用程序调用。
2.2.3C/C++函数库
Androfd应用程序框架之下是一套C/C++函数库,它们服务于
Andrnid应用程序组件,其功能通过组件间接提供给开发者。这些函
数库包括:标准C函数库、媒体功能库、浏览器引擎、ZD和3D图
形库、基于WEB应用的的安全协议SSL、用于点阵和矢量字体渲染
的FreeType以及SQLite引擎等。
2.2.4Java程序运行环境
Andrnid的Java程序运行环境包含一组Java核心函数库及Dalvik
虚拟机,它们有效地优化了Java程序的运行过程。所有的Andrnid
应用都运行在它自己的进程里,该进程是一个Dalvik虚拟机的实例,
Dalvik被设计成能在一台设备上高效的运行多个虚拟机实例。Dalvik
虚拟机的可执行文件被封装成Dalvik可执行格式(.dex)。这是被优
化过的最小内存依赖的格式,java编译器(dx工具)将注册了的和运
行时用到的类编译成.dex格式。Dalvik虚拟机依赖于底层Linux内核
提供的功能,如线程机制,和内存管理机制等。硕士学

位论文
2.2.5Linux内核
Androfd系统平台是基于优化了的Linux内核,是其系统平台的
核心。它提供诸如内存管理、进程管理、设备驱动等服务,同时也是
丰机软硬件的连接层,提供了一个屏蔽层用午屏蔽硬件和上层软件。
2.3Android应用的构成和工作机制
对于一个劫由oid应用程序[20一22]来说,是由Activity、Intent
Receiver、Serviee、 ContentProvider四部分组成,但并不是每一个
Androfd应用程序都必须由这四部分组成。在应用程序中使用时,需
要在配置文件AndrofdMainfest.xd中进行配置。这个配置文件是每
个Androfd应用程序所必需的,用于定义应用程序的组件、组件的功
能以及必要条件等。Androfd应用的构成和工作流程图如下:
((((((((((((((((((()《》犷雍ter.t,Pr‘》vi(丑 errr IIIntenttttttttttttttttttttttttttttttttttttt
AAAAAAAAAAAAAAAAAAAAAct正vi教yyyyyA《, t1vilyyyyy存赫设备 备
111rlter、 ttttttttttttttttttttttttttttttttttttttttttttttttttttttttt
RRRece1verrr
外外部事件 件件 Servieeee
图2一ZAndrofd的构成和工作流程
2.3.1Activity
Activity[23]是构成应用程序中最重要的构造块,在Androfd应用
程序中,几乎都是通过Activity来与用户进行交互,所以Activity主
要负责的就是创建与用户进行交互的显示窗口,你可以在这些窗口里
通过调用setcontentview(View)方法来显示你自己的用户界面。基于Androld平台的即时通讯系统的研究与实现
2.3.1.1活动生命周期
活动(Activity)在系统中以活动栈的形式进行管理。当一个新的活
动启动后,它被放到了栈顶,成为了运行活动,而新活动之前的活动
在活动栈里总位于新活动之下,直到新的活动退出才重新回到前台。
f而份风云云而奋、!
】丈,匕甘,‘,,功盯油l
歌八,六曰口代川翔,.J
黝黝黝鬓鬓
图2一 3Activity状态变换路径图
从上图可以看出,Activity有三个关键的循环:
(l)活动的整个生命期:从首次调用onCreate(Bundle)开始,到最
终调用onDestroy()结束。在onCreate()中进行所有初始化,在
onDestroy()时进行清理工作,释放资源。
(2)活动的可见生命期:从调用onstarto开始,到onstopo被调用
为止。在这段时间内,即使活动不与用户进行交互,用户也可以在屏
幕上看到它。在这两个方法调用之间,可以维护活动显示给用户的资
源。onstartO和onstopo方法可以多次调用,因为活动随时可以在可
见和隐藏之间进行转换。
(3)活动的后台生命期:从调用onResume()开始,到onpause()
被调用为止。在这段时间内活动处于其它所有活动之前,并与用户进硕士学位论文
行交互。一个活动可以不断在resumed状态和pa

used状态之间变换。
2.3.1.2活动之间的切换
Andrtrid使用了Intent类来实现活动之间的切换工作。Inteni负责
对应用中一次操作的动作、动作涉及的数据和附加数据进行描述。根
据Intent的描述,负责找到对应的组件,将Intent传递给调用的组件
并完成组件的调用。因此,hitent起着一种媒体中介的作用,专门提
供组件互相调用的相关信息,实现调用者与被调用者之间的解祸。
在应用中,我们可以以两种形式来使用Intent:直接Intent,指定
了comPonent属性的Intent,通过指定具体的组件类,通知应用启动
对应的组件。间接玩tent,没有指定comonent属性的Intent,则需要
包含足够的信息,这样系统才能根据这些信息,在所有的可用组件中,
确定满足此Intent的组件。
2.3.2IntentReceiver
IntentReceive严0]是用于对外部事件的响应,当外部事件发生时,
会使用NotifieationManager通知用户。当一个 IntentReeeiver被触发
时,系统会在需要的时候启动对应的应用程序。如在本系统中,当用
户正在其它界面进行操作时,有好友发送消息过来,就会以通知的形
式发送到当前界面的正上方来通知用户。各种应用还可以通过使用
eontext.broadeasthtent()将它们的玩 tentReeeiver广播给其它的应用程
序,实现应用之间的通讯。
2.3.3SCrviCe
Service是不带Ul提供连续信息的应用程序。它是运行于应用程
序后台的服务,在用户进行其它活动的时候,这个服务将一直运行在基于Androfd平台的即时通讯系统的研究与实现
后台直到用户停止该服务或服务运行结束。本系统客户端扩展功能的
音乐播放就是采用Service来进行设计和开发的,使用户可以边聊天
边听音乐。
2.3.4ContentProvider
contentProvider应用程序能够将它们的数据保存到文件、SQL
数据库和其它的存储设备中。当应用程序需要使用存储设备中的数据
时,可以使用 ContentProvider来完成。使用 ContentProvider能够灵
活的替换底层使用的存储设备,使开发者可以专著于应用逻辑的开
发,不用考虑底层存储设备的细节,从而使应用系统具有良好的数据
迁移性。
2.4Android与其它手机操作系统的比较
我们主要从手机操作系统的portablity、Reliability、eonneetivity、
ProductDiversity、 OPenPlatform、 KemelSize、Standards、Security
和 SpecialFeatures这九个方面进行了比较,具体的比较结果如下表:
表2一1手机操作系统对照表
比比较条件 件 AndroidddWindowsMobileeeSymbiannn
PPPortabilityyy基于Linux+Java, ,可以运行于不同 同基于标准的架构, ,具 具具有跨平台的特 特的平台,但是有些些对其他制造商的软 软
点 点点,并允许所有厂

厂应用程序依赖于 于件开放,但是 是
商 商商和个人在其基础 础特点的硬件平台 台Symbian大部分应 应
上 上上进行开发 发 发用于特定的手机上 上
RRReliabilityyy好 好好 好好 好
CCConneetivityyyGSMtelePhony, , GSMtelePhony, , GSMtelePhony, , EEEEEDGEEEWl一 FlllWl一 Flll
BBBBBluetooth,3D,Wl---Bluetooth,InfraaaBluetooth, Infrarrr
FFFFF工 工red, ,ed, ,
PPProduettt积极参与软件的发 发积极参与软件的 的积极参与软件的发 发
DDDiversityyy展和帮助扩展操作 作发展和帮助扩展 展展和帮助扩展操作 作系 系系统,使相关的产 产操作系统,使相关关系统,使相关的产 产
品 品品对市场开放 放的产品对市场开 开品对市场开放 放
放 放 放放 硕士学位论文
OOOPenPlatformmm开放 放过于封闭 闭过于封闭闭
KKKernelSizeee25Okbbb300kbbb20Okbbb
SSStandardsss好,基于Java,具有有比较好 好比较好 好跨 跨跨平台的特点,具 具 具 具
有 有有很大的优势 势 势 势
SSSeeurityyy好 好好 好好 好
SSSPeeialll开源的WebKit引 引在计算机市场占 占无 无
FFFeatllresss擎,优化的 Dalvikkk有优越的地位,在在 在计 计 计计算机和手机之 之 之
间 间 间间同步比较容易 易 易
文献【101对上表比较的九项每一项以1分、0.5分、0分三个级别
来进行评分,综合各项评分,最后得到的评分结果是 Androfd8.5分,
Windowsmobile5.5分, Symbian6.5分。Android基于开源的Linux
以及标准的跨平台的编程语言Java,而且源代码开放,并且免费允许
所有厂商和个人在其基础上进行开发,其开源和免费政策将赢得不好
手机制造商的支持。而且在其平台上集成了不少优秀的开源工程,如
webkit、openGL等,相信在不久,将会有更多的优秀工程加入到
Androfd中来。相比其它手机操作系统过于封闭的特性来说,Androfd
在手机操作领域将会占有很大的优势,其功能也将会越来越强大。
2.5本章小结
本章对Androfd平台的特征、架构以及Androfd应用的构成和工
作机制进行了详细的分析。对于Android应用程序来说,主要由
Aetivity、hitent砒eeiver、Serviee和 Contentprovider四部分组成,但
并不是对于每一个应用程

序,这四部分都是必须的。Activity是应用
程序中最重要的一种构造块,我们对其进行了详细的分析,包括
Activity的生命周期以及Activity之间的切换。最后对Androfd与其它
的手机操作系统从九个方面进行了比较,说明了Andrnid的优势。基于Android平台的即时通讯系统的研究与实现
3.基于 Android平台的手机即时通讯系统
本章我们介绍了系统的总体框架及相关解决方案。系统采用C/S
体系结构[24][25〕,采用开源的xMPP作为即时通讯协议,通过GPRS
无线网络采用TcP协议连接到服务器,通过架设开源的Openfire服
务器作为即时通讯平台,实现客户端与客户端之间的即时通讯。
3.1系统概述
本文工作中实现的是在Android平台上开发即时手机通讯系
统[27一,21,它能够使用户在手机上方便的、迅捷的收发及时消息、传
输图片。现今流行的即时通讯软件,在聊天的基础之上开发了很多的
增值服务功能,以满足不同用户的需求。根据这些特点,本系统除了
及时文本消息和图片的传输外,还实现了音乐播放和图片浏览的功
能,让用户可以边聊天边听音乐,可以对好友传送过来的图片随时进
行浏览,从而实现即时通讯系统的功能多样化。
3.2系统架构
本系统采用客户端(C)/服务端(S)架构的体系结构,具有服
务器端和客户端。
客户端:基于Andrnid平台进行开发。通过GPRS无线网络与
Intemet网络建立连接,通过服务器实现与Android客户端或PC机客
户端之间的即时通讯。客户端负责初始化通信过程,进行即时通讯时,
由客户端负责向服务器发起创建连接请求。
服务器端:采用开源的openfire作为服务器。允许多个客户端同
时登录并且并发的连接到一个服务器上。服务器对每个客户端的连接
进行认证,对认证通过的客户端创建会话,客户端与服务器端之间的硕士学位论文
通讯就在该会话的上下文中进行。
图3一1系统总体架构图
3.3系统客户端解决方案
系统的客户端定位于Andrtrid手机平台。采用XMPP作为即时通
讯协议,XMPP是基于XML的协议,根据协议的规则,采用Androfd
平台提供的XML解析包对XML进行解析。根据应用活动都运行于
主线程的特点,采用多线程[34]技术来解决系统通讯问题。针对通信安
全的问题,将IDEA[44]数据加密算法改进后的A一IDEA算法(算法设
计在第四章)引入到Androfd平台上,对系统通信的信息进行加密和
解密。系统的用户信息和聊天信息在客户端存储在Androfd平台自身
所带的SQLite数据库中,多媒体文件和图片文件存储在Android平
台虚拟文件存储设备sdeard中。
把系统的客户端分为五大模块进行设计开发。
1.通讯模块:负责与服务器建立通讯。采

用多线程技术,通过创
建三个线程来进行处理。一个线程负责消息的发送,一个线程负责消
息的接收,一个线程负责心跳信息的发送。
2.解析模块:主要用来解析XML数据流,根据解析元素的不同
类型封装成不同的数据对象。基于Android平台的即时通讯系统的研究与实现
3.加解密模块:负责对发送的消息进行加密,对收到的消息进行
解密,以确保通讯数据的安全。
4.数据模块:这个模块中定义了整个客户端中大部分的数据类型
和对象。
5.应用模块:这个模块主要是客户端和用户交流的接口。应用模
块又分为几大功能,包括即时通讯、音乐播放和图片浏览。
SSSQLite数铆:库 库
rrr万 }}}
11111111111111111111111111}}}
通通通通通 通通解事蒙模块块 块块块块块块块块块块块块 块块块系系系系资 tttttttttLLLLL川川
统统统统 模模模模模模模模模模模模模模模模模模模户户
撇撇撇撇块 块块块块块块块块 块娜户愉理 理 理 理
务务务务 务务务务务务务务 务 务 务 务
器器器器 器器加解费摸块块 块 块 块块块块 块
...................’ :::::
}}}}}}}}}}}}}}}}}}}}}}}}}图,“·浏览;;;}“乐”… … … …数 数数 数数数镌模块 块块 块 块 块块块
文文件系统(s次a川 )))
图3一2客户端功能模块图
3.4系统服务器端解决方案
本系统采用开源的openfire[26J来建立即时通讯服务器。Openfire
采用Java语言进行开发,Java语言具有跨平台的特点,因此OPenfire
服务器可以架设于多种操作系统平台之上。
Openfire服务器的内核主要由连接管理组件、服务器连接管理组
件、会话管理组件、注册登录管理组件、管理更新组件、文件传输管
理组件、外部管理组件、数据存储组件和传输器组件等组件组成。
Openfire实现了插件机制,方便扩展,通过安装与异构网络通讯
的插件,就能与其它的通讯软件实现通讯。在网络连接中,是采用
Apaehe的Mina[3’]框架来实现网络连接的,Mina框架使用一种比较好
的非阻塞式的和高性能的FO底层,采取异步1/0事件和事件驱动机硕士学位论文
制,使服务器具有很高的效率和性能,从而能够及时处理大量的客户
端连接和1/0随机突发性,单台服务器可支持上万并发用户。
在Openfire服务器中,针对每个用户的请求,创建一个线程来进
行响应,同时采用线程池136]来创建和管理线程,提高了服务器的执行
效率。

线程池的大小可以根据服务器在运行的过程中接收到的用户请
求的数量进行自动调整。如果长时间没有用户请求,则可以销毁一定
数量的线程,使线程池中保持一定的线程数。当有用户请求时而线程
池中没有空闲线程,且此时线程池中线程数没有达到最大线程数,则
创建新的线程,如果达到最到线程数而又没有空闲线程时,则用户请
求进入队列等待,直到线程池中有空闲线程,当用户退出时,回收线
程到线程池中。
系统的客户端为了确保通信数据的安全,设计了A一IDEA数据加
密算法对系统通信数据进行加密和解密。当客户端对登陆服务器的用
户信息进行加密时,因为在openfire服务器上没有引入该算法,因此
会对客户端登录的用户信息无法进行识别,因此我们将A一IDEA数据
加密算法也引入到openfire服务器上,对用户的登录信息进行解密和
加密,确保用户信息的安全。
爵,~
镶采戴荡瀚月户涅铃牡瀚.拭毓
‘罗默.粉务娜像盆
戎来咦汤绪艘
赢。黑。、,,.补一、:一一
一、-一溉票蕊蹦、~_枷、。、川一,一一徽盆餐澎份括,邻沂
协,碑命”参邵令玲岁~君招今拟彻‘,出咨而令
.盛麟典络郊哗
翔锐
戈撇粉断娜沙裔妇份专气云,么钟蜘幸一~~污档批玉一一
毛洲卜招“~七拍令丫子‘号
如,必谈资组汤‘洲召帝的砍
冷矛峭滋
泳器摇撼少溯另毛
如甲护洲吸
解海娜娜种
,思
御撼影兔粉卜
脚络烈铸锐产沪
梢娜犷曦狄,伙
哪汾尸嘟镌俄如
番职俄午翻裕拼
爹。诱欲带佛截
猪谬黔哪挽
贫丫翁翅沙乡
甘心溯举称铃黔芳认
犷份绪牛常班解嘟
笼珊恭舞冻戮然甲嘴翻冲凳嗽邃淤铆、拼释扮等埃沁拼鸽称
伦叙舞瀚条撇令移泌翻。淤淤_汽,专叹令该匆冷朴洛,么李掩、珠咐
协弓夕笑粥聋爷释~‘
介那~班足冬义魏嘴翰价拱拼城
曦汁护姐卜摧策黔攀哪岭翻队必理
图3一 3openfire服务器控制台界面基于Android平台的即时通讯系统的研究与实现
3.5系统即时通讯协议
3.5.1XMPP协议通用架构
xMPP[37]没有结合特定的网络,是一种客户/服务器架构,客户端
与服务器之间采用的是TCP连接,服务器与服务器之间采用的也是
TCP连接。以下是这一架构的抽象的示意图(这里“一”表示使用XMPP
通讯,“=”表示可使用任何协议通讯)。
Cl-一51一52一C3
CZ-一+一Gl=二二FNI=二=FCI
符号代表的意思如下:
el,eZ,e3=XMPP客户端
51,52=xMpp服务器
GI=一个XMPP和外部(非XMPP)消息网络之间进行“翻译”
的网关
FNI二一个外部消息网络
FCI=外部消息网络上的一个客户端
3.5.2XMPP地址结构
一个实体[38〕在XMPP网络结构中被认为是一个接点,它有一个
唯一的标识JI

D,即实体地址,用来标识一个用户,但是也可以表示
其它内容,如一个聊天室。一个有效的JID应该包括一些元素,如域
名 (domainidentifier)、节点 (nodeidentifier)和源 (resourceidentifier)。
JID的格式采用的形式是node@domain/resouree,其中node表示
用户在服务器上注册的用户名,domain用来表示接点不同的设备或
位置,这个是可选的。如果用户a在Serverl上注册了一个用户名为
arry的用户,那么a的JID就是arry@serverl。在发送消息时,使用硕士学位论文
ariy@serverl就可以了,可以不用指定resource。
3.5.3XMPP协议消息格式
XMpP协议包括三个顶层xML元素[,9]:Message、Pr邸ence和IQ。
Message用来表示传输的消息,当用户发送一条消息时,就会在
流的上下文中插入一个Message元素,中间有用户发送的相关信息。
Presence用来表示用户的状态,如在线、离线等,当用户改变自
己的状态时,就会在数据流的上下文中插入一个Presenee元素,用来
表示用户现在的状态。
IQ用来表示一种请求/响应机制,从一个实体发送请求,另外一
个实体接受请求并进行响应。
3.5.4XML流
在XMPP协议中,有两个基本概念,一个是XML流,一个是
XML节。
XML流的定义[39]:一个xML流是一个容器,包含了两个实体
之间通过网络交换的XML元素。一个XML流是以一个XML打开标
开始,以XML关闭标签 结束。
xML节的定义[39]:一个XML节是一个实体通过XML流向另
一个实体发送的结构化信息中的一个离散的语义单位。任何XML节
都是从一个XML流的下一级的某个打开标签(如印resenee>)开始,
到相应的关闭标签(如 )结束。
3.6系统通信机制研究
随着移动通信与Intemet的飞速发展及其相互融合,GPRS[3’][40]
使无线网络高速接入Intemet成为现实,移动用户从而可以享受到
Intemet的服务。系统客户终端通过GPRS无线网络采用TCP协议连基于Android平台的即时通讯系统的研究与实现
接到服务器,通过XN[PP即时通讯协议进行即时通讯。
3.6.1GPRS与Intemet的连接
在移动网络中,移动终端接入到GPRS无线网络。服务支撑接点
sGsN[4’ ](serviceGPRssupportNode)为用户提供分组路由、隧道
和跟踪移动终端的位置等功能。网关支撑接点GGsN14,](Gateway
GPRSsuPportNode)提供GPRS网络内部与外部网络的路由和封装,
分配IP地址,实现与Intemct网络的互通。一般移动终端使用的是内
网地址,经由NAT[42]进行转换,将内网地址转换为外网地址,发送
给Intemet网络。
图3一 4GPRS与Intemet连接原理图
GPRS手机终端将要发送的数据处理成GPRS分组数据发送到
GSM基站。分组数据经SGSN封装后,SGSN通过GPRS骨干网与
网关支持接点GGSN进行通信。GGSN对分

组数据进行相应的处理,
再发送到Intemct网络。若分组数据是发送到另一个GPRS终端,则
数据由GPRS骨干网发送到SGSN,再经BSS发送到GPRS终端。
3.6.2网络连接协议
TCP[’3]提供一种面向连接的、可靠的字节流服务。提供一个时时
的双向的传输通道。TCP将用户数据打包构成报文段,它发送数据后
启动一个定时器,等待对端数据确认;另一端对收到的数据进行确认,硕士学位论文
对失序的数据重新排序,丢弃重复数据;TCP提供端到端的流量控制,
并计算和验证一个强制性的端到端检验和。但是GPRS网络对TCP
链路存在一个限制,当TCP链路在长时间没有数据流量时,会自动
降低此链路的优先级直至强制断开此链路。所以在应用中,采用发送
心跳的方式来维持此链路。而且XMPP即时通讯协议最典型的支持
协议也是TCP协议。根据这些特点,在本系统的实现中,采用TCP
协议来作为作为构建客户端与服务器端之间的网络连接。
3.7本章小结
本章主要对基于Andro记平台的即时通讯系统的系统架构、服务
器的解决方案和客户端的解决方案做了简单的介绍。系统服务器端采
用开源的Openfire,对Openfire的特点、网络连接以及线程池技术进
行了分析。对系统客户端的五大模块进行了简单的介绍,包括通讯模
块、解析模块、加解密模块、数据模块和应用模块。对系统采用的即
时通讯协议XN田P和系统的通讯机制进行了详细的分析。基于Android平台的即时通讯系统的研究与实现
4.系统通信数据加解密算法
随着移动终端设备性能和无线数据传输的带宽和速率的不断提
高,使手机应用的领域进一步扩大,如可以用于即时通讯和文件的传
输等。但是对于数据传输的安全性也提出了更高的要求。因此,很有
必要对传输的数据进行加密处理以保证通信数据的安全性。受限于手
机设备的有限性能,其运算能力还无法与计算机相提并论。因此选用
的加密算法必须具有高效率和轻量级的特点,而IDEA加密算法正具
备这些特点,但是IDEA算法的明文长度固定且只有64位,而且相
同的明文生成相同的密文,而在即时通讯中传输的消息长度不一定以
及存在相同部分的可能比较大,因此我们对IDEA算法进行了改进使
之更适合运用于本系统。同时将改进的算法与RSA算法相结合对传
输的图片进行加密和解密。
4.1IDEA数据加密算法概述
InEA[44一, 0](IntemationDataEne卿 tionAlgo五thm)数据加密算
法是由中国学者来学嘉博士和著名的密码专家 JamesL.Massey于
1990年联合提出的。它是对64bit大小的数据块加密的分组加密算
法,密钥长度为128位,它是基于“相异代数群上的混合运算”的设

计思想,算法用硬件和软件实现都很容易,而且比DES在实现上快
的多,而且该算法既可用于加密,又可用于解密。
4.1.1子密钥的生成
IDEA算法加密和解密都各自需要52个子密钥,每一个子密钥
16位,由128位密钥生成。加密子密钥的生成过程是:对128位密
钥进行分组处理,分成8组,每组16位,从而可以得到8个加密子硕士学位论文
密钥,将前面生成的8个加密子密钥128位循环左移25位,又做一
次16位分组,从而又可以得到8个加密子密钥,如此循环,将这个
过程循环7次,在第7次的循环中,只需取前面的4个加密子密钥,
至此便产生了全部的52个加密子密钥。
解密子密钥的生成过程是:首先根据密钥生成加密子密钥,然后
对加密子密钥进行换位操作,最后对换位操作后的加密子密钥进行部
分子密钥的模护的加密逆运算和剩余部分子密钥的模(2,6+l)的乘
法逆运算。
4.1.2加密解密过程
IDEA算法中,明文长度为64位。加密过程是:对明文进行分组
处理,分为4组戈,弋,弋,戈,每组16位。戈,弋,弋,戈作为第一
轮的输入,在每一轮中,4个输入分组与6个16位加密子密钥分别
做模护的加法、模(216+l)的乘法和异或操作,得到四个输出结果,
将其又作为下一轮的输入。如此循环进行八轮操作。将最后得到的结
果再与4个加密子密钥作输出变化,从而得到最后的加密密文。
。:镇(产吐)乘慈操作替:蔡2彭加法操作份:异或操柞
图4一 1IDEA算法流程图基于Androkl平台的即时通讯系统的研究与实现
解密过程是加密过程的逆,在解密的过程中只需把加密子密钥替
换为解密子密钥就可以实现对加密后的密文进行解密。
4.2A一IDEA算法的设计
在IDEA算法中,明文的长度固定且比较短只有64位,而且在
应用中,对于通讯的消息中相同的部分会被加密成相同的密文,从而
暴露了明文的数据格式和某些统计学特性,降低了明文的保密性。根
据即时通讯传输的消息的长度不一定性和消息存在相同部分可能性
比较大的特点,我们对IDEA算法进行了改进,使之更适合运用于本
系统。我们主要从明文的长度、加密过程和解密过程三个部分做了改
进。
4.2.1明文长度
在A一IDEA算法中,明文的长度不再做限制,明文的分组长度为
64位。因为明文的长度不做限制,因此对明文进行加密前,需要对
明文进行重组判断,如果明文的长度不是64的整数倍,将对明文进
行重组,在明文末尾加上一些特殊字符,使明文的长度达到64的整
数倍,如果明文的长度是64的整数倍,则不做重组处理。
4.2.2加密过程
加密的过程是对重组后的明文进行分组处理,每组64位。由随
机数产

生器随机产生数据A,作为加密的初始数据,A为64位,运
用IDEA数据加密算法对数据A和除最后一个明文分组之外的所有明
文分组进行加密,产生密文C0和密文分组几,几,几…几_,,对密文C0再
次进行加密操作,将产生的密文C0’与明文君进行异或操作以一C0’①君
产生密文以,再将密文D,与明文只进行异或操作产生密文叹,密文几
与明文只进行异或操作产生密文q,依次方式进行运算产生直到所有硕士学位论文
的密文c=Cq…。最后将密文C0置于密文c头部形成总的密文
C=c0砚q…,一起发送给目标用户。具体的算法描述如下:

4.2.3解密过程
解密的过程是对密文进行分组处理,分为c。,弓,q,几…C(。+l)个
组,每组也是64位。对密文的第一个分组c0使用IDEA数据加密算
法进行加密,产生密文c0’,并将产生的密文C0’与密文C进行异或操
作,产生明文君,对明文月进行加密操作,将产生的密文与密文q进
行异或操作,产生明文凡,对明文凡进行加密操作,将产生的密文与
q进行异或操作,产生明文只,依次方式进行运算,直到产生所有的基于Androfd平台的即时通讯系统的研究与实现
明文尸=君只…只。最后对产生的明文进行重组操作,去除在明文加密
前重组时加入的特殊字符。具体的算法描述如下:
一明文经过加密,再经过解密,形成明文。其具体的算法如下:加密方程:
)cl~(c0)。:
(q=IDm(月,一1))鲜(‘<“n)(4一1)
解密方程:
=五笼“(Co)OCI
=互笼“(月。))。叹(l月刀厂..少、、.,、
从上述方程可以计算出
君=五D五翅(c0)④q=五D五月(C0)④IDEA(C0)①月=君砰一3)
君一IDEA(凡一1))①C一IDEA(几一1))④IDEA(几一1))①月二君(4一4)
因此,明文经过加密,再经过解密,产生加密前的明文,说明算
法正确。硕士学位论文
4.3A一IDEA与IDEA算法对比分析
4.3.1明文长度
IDEA算法的明文长度为64位;明文长度固定且比较短,而
A一IDEA算法对明文的长度不做限制,因此A一IDEA算法的适用性更
强,特别是对于本系统。在本系统中,好友之间进行通讯的即时文本
消息的长度和图片文件的长度是不一定的,因此,对加密的明文长度
不做限制的数据加密算法更适合运用于本系统。
4.3.2加解密时间
我们对IDEA和A一IDEA算法在系统运行中从加密时间、解密时
间和加解密时间三个时间方面进行了实验结果分析。根据手机即时通
讯系统传输的特点,每次传输的消息的字数以及图片文件的大小有
限,因此我们的实验主要针对900字之内的消息从上述三个时间方面
进行了测试,对每组消息我们使用相同的密钥进行测试。我们对每组
消息进行5次测试,并取平均值,

并从大量测试数据中选取了10组
数据进行了对比分析。
图4一2加密时间基于Android平台的即时通讯系统的研究与实现
图4-3解密时间
图4-4加解密时间
从上述三个图可以看出,大约在20个字以内A-IDEA算法的加
密和解密的时间要比IDEA算法要快一点点,这是因为在A-IDEA算
法中,加密和解密使用的是相同的子密钥,而在IDEA算法中,解密
的时候需要根据密钥生成加密子密钥,对加密子密钥进行换位操作和
模逆运算而生成解密子密钥,模逆运算相比少量的异或运算来说需要
的时间多一点点。但从整体上来看,因为A-IDEA算法在加密和解密
的过程中对每个分组进行加密和解密的同时还要进行分组之间的异
或运算,因此A-IDEA算法对于比较大的数据的加解密要比IDEA算
法慢一点点,但相差的时间也不是很大。
硕士学位论文
4.3.3安全性
在IDEA算法中,明文的长度比较短,只有64位,采用相同的
密钥对明文进行加密,相同的明文将生成相同的密文,这就很容易暴
露明文的数据结构格式和某些统计学特性,容易受到别有用心的人的
统计学攻击,从而降低了明文的安全性。而在A一IDEA算法中,明文
的长度不做限制,对明文进行分组后,对分组进行加密后,再对加密
后的分组进行相互异或操作而生成密文,从而避免了相同的明文分组
生成相同的密文分组,提高了明文的安全性,相当于是在IDEA算法
的基础上再增加了一层算法。我们对“手机即时通讯系统手机即时通
讯系统”进行加密,生成后的密文如下表:
表4一 1IDEA与A一IDEA对相同明文加密后的密文对照表
一算法}密文{
IDEA擞蝶x?箭x??擞膘x?舫x??
A一IDEA擞缥x荧篇龋形<岭<拓?$?捷,?崎<拓
从上表可以看出,用IDEA算法对上述明文进行加密后,生成两
段相同的密文,而用A一IDEA算法进行加密后,生成两段不同的密文。
4.3.4小结
从上述三个小节比较分析可以知道,虽然从时间方面A一IDEA算
法对于比较大的数据的加解密时间要比IDEA算法慢一点点,但是对
整体的运行效率没有什么很大的影响,而且A一IDEA算法的明文长度
不再做限制以及安全性要比IDEA算法高,根据即时通讯系统好友之
间发送的消息长度不一定性以及消息具有相同部分的可能性比较大
的特点,可以得出改进后的算法A一IDEA更适合运用于本系统。
4.4A一IDEA算法与RSA算法的结合
A一IDEA算法是对称加密算法,加密和解密采用相同的密钥。因基于Andro记平台的即时通讯系统的研究与实现
此只要有人持有密钥,就能对加密的内容进行解密,因此对于重要图
片文件传输的安全性带来了一定的问题,特别是在本系统中。因

为在
本系统中,我们是采用A一IDEA算法对即时文本信息进行加密和解
密,相互通讯的好友都持有密钥。就给一些重要图片文件的传输的安
全性带来了一些问题。因此在本系统的图片文件传输中,我们采用非
对称加密算法RSA[,’一,21对A一IDEA算法的密钥进行加密。
4.4.1RSA算法概述
RSA算法是公开密钥体制的代表。RSA公开密钥体制使用两个
密钥:加密密钥KE(也称为公开密钥)和解密密钥KD(也称为秘
密密钥)。KE可以公开,KD需要保密,每个人都可以用另一使用
者的加密密钥来加密数据,但只有具有解密密钥的使用者才能解密数
据。RSA的安全基于大数分解的困难性。其公开密钥和秘密密钥是
一对大素数的函数(100到200位或更大)。软件实现RSA算法大
约比IDEA算法慢100倍。因此RSA算法比较适合于对少量的数据
进行加解密。在本系统中,我们只用RSA算法对IDEA算法的密钥
进行加密和解密,因此对整体的加解密效率没有什么很大的影响。
4.4.2A一IDEA算法的进一步改进
在A一IDEA算法中,对明文进行重组时,如果明文的长度不是64
的整数倍,我们采取的方式是加入特殊字符,但对于加密的图片文件
来说,特殊字符也很有可能是图片的内容,因此对于图片的加密,我
们对A一IDEA算法做进一步的改进,将图片文件的长度(以64位数
据表示)加入到明文的首部,随同明文一起加密。从而在解密的过程
中,就可以根据明文的长度计算出加入的特殊字符的个数。同时在接
收文件的过程中,接收方也可以根据明文的长度计算出当前接收文件
的百分比,而且也可以根据明文的长度判断接收到的文件的完整性。硕士学位论文
4.4.3实现过程
由密钥随机生成器产生A一IDEA算法密钥,使用该密钥采用
A一IDEA算法对图片文件进行加密,同时使用从接收文件方获得的
RsA公开密钥KE采用RsA算法对A一IDEA算法的密钥加密,将加
密后的密钥和加密后的图片文件一起发送给接收方,接收方接收到图
片文件后使用自己掌握的RSA私有密钥KD采用RSA算法对A一IDEA
算法的密钥进行解密,就可以使用解密后得到的密钥对图片文件采用
A一IDEA算法进行解密,从而可以得到解密后的图片文件。
翻!密过程
解密过程
叫袱,’’’卜喊努叫…日引城拱111〕+
私了爹密戈争j
必l脱数锹加密竹法12刚众密娜密文互2转位密甘1
。画画军巨回一任口图4一SA一IDEA与RSA结合算法
4.5本章小结
本章首先对数据加密算法IDEA进行了简单的介绍。根据系统的
特点,对IDEA算法进行了改进,提出了A一IDEA算法的设计,并对
两种算法进行了比较分析,得出改进后的算法A一IDEA更适合运用于
本系统。对于图

相关主题
文本预览
相关文档 最新文档