南昌大学软件学院20xx毕业设计开题报告

本科生毕业设计(论文)开题报告

题   目:基于Android平台上的通讯录的设计与实现

学    院:  软件学院                 计算机软件   

专    业:  计算机软件                               

班    级:  083                                    

学    号:  8000608173                               

      姓    名:  雷耀涛                                   

      指导教师:  彭莹琼                                   

      填表日期:  2011  年  12       1  

一、   选题的依据和意义

1、选题依据

    本课题(基于Android平台上的通讯录的设计与实现)旨在利用现在高速发展的移动互联网时代,使得移动设备(比如手机、平板电脑)可以更方便的供人们使用。通讯录虽然看似很普通,但在现在的移动设备上是必不可少的,它大大的方便了我们的通讯,为我们记忆了一些很重要的信息。加之,现在比较智能的移动设备深受大家追捧,所以基于Android这种操作系统上的开发是我们比较热衷和极具挑战的。本课题就是要通过学习和探索来完成一个简单的基于Android平台上的应用开发。

2、选题意义

     首先,我们来明确一个概念:移动互联网时代,所谓移动互联网时代是将移动通信和互联网整合在一起,使移动设备可以随时随地访问互联网资源和应用。智能手机就是在这样的时代孕育出来的。目前的移动互联网时代竞争焦点在智能手机终端上,软件部分包括智能手机操作系统和应用软件,除了Google的Android,还有诺基亚的Symbian,微软的Windows Mobile。Android是一个真正意义上的开源智能手机操作系统,该系统由底层的Linux、中间层的软件包和上层的java应用程序组合而成。正因为现在的Android很火,所以我们更应该不怕困难去研究去探索,在这上面创造出属于自己的成果。

二、相关研究的最新成果及动态

1. 关于Android平台上应用程序设计的现状:

     Android推出后,其发展速度之快让人咋舌,它几乎是半年就有一个新的版本发布,Android的更新换代还是很快的,还在不断的完善中。在Android上开发应用程序之所以深受大家喜爱,是因为它有诸多优于其他手机操作系统的特性。

(1)    应用程序框架支持组件的重用与替换;

(2)    Dalvik虚拟机专门为移动设备做了优化,这个虚拟机是基于寄存器的,相对java虚拟机速度要快很多;

(3)    丰富的多媒体支持,可以支持很多常见的音视频格式;

(4)    可以作为GSM电话和GPS导航;

(5)    它的开放性、开源性,是一个优秀的移动设备操作系统;

(6)    手机界面的酷炫应用。

     可见,Android这种操作系统相比于其他的操作系统优越性和潜力还是很大的,在上面开发那些令人炫目的应用还是很有发展空间和前景的。但是,我们不得不说在Android发展如火如荼的时候,它的缺点也暴露了出来,这些不得不引起我们的重视:第一,发展的太快,手机厂商跟不上节奏,稳定性欠佳;第二,功耗大,手机或平板续航能力(待机时间)有待改善。目前 android的开发各路人马纷纷半路杀出,似乎一时间全世界都炒的火热,顶风的谷歌目前前景一片大好。风云Android路,未来还能走多远,仁者见仁智者见智。

2. 相关的技术的发展:

(1)Android平台发展史:

Google于20##年11月5日发布了Android 1.0手机操作系统,号称首个为移动终端打造的真正开放和完整的移动软件。20##年美国运营商造出首款使用Android操作系统的手机。20##年Google自主研发的手机杀入智能型手机销售市场。近期以来,关于Android系统平台的消息,不断在耳边喧嚣,Android系统平台在全球智能手机市场中不断的攻城拔寨,其市场占有率一度不断的攀升

简单的理解,Android是基于java并运行在Linux内核上的操作系统,这个系统是轻量级的,但功能很全面,这个系统上Google已经内置了很多的软件,本课题就是通过自己对Android的认识学习,来实现把一个通讯录的应用程序运行在Android模拟平台上。

(2)Android SDK

 Android SDK 提供了在Windows/Linux平台上开发Android应用的开发组件,不仅包括Android模拟器和用于eclipse的Android开发工具插件(ADT),而且包括了各种用来调试、打包和在模拟器上安装应用的工具。Android SDK主要以java语言为基础,用户可以使用java语言来开发Android平台上的软件应用,通过SDK提供的模拟器来模拟和测试该软件在平台上的运行效果。

(3)Java程序设计语言

       Java 编程语言的风格十分接近C、C++语言。Java是一个纯的面向对象的程序设计语言,它继承了 C++ 语言面向对象技术的核心,Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。Java 不同于一般的编译执行计算机语言和解释执行计算机语言,实现了“一次编译、到处执行”的跨平台特性。Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。

三、       本课题研究内容

本课题是利用Java语言在基于Google Android操作系统进行开发的手机软件,我们简单的分析了Android现状,系统架构,以及开发环境配置,以Eclipse为开发工具,配合Android SDK和用于Eclipse的插件ADT,实现通讯录软件在Android平台模拟器上模拟运行。主要研究内容为用Java程序设计语言编写实现基于Android平台上的通讯录。在本课题中,我们注重与用户的交互,用户可以根据需求在菜单中选择增加、删除、修改和查找通讯信息。这样直观逼真的可视化操作,不仅满足了用户对界面效果的需求,而且具有一定的实用性。

四、本课题研究方案

研究本系统软件目的主要是设计一款适用于Android平台上的通讯录软件,我们将设计多个模块,力求将其设计成为一款人性化的多功能手机软件。最终将这款软件在Android操作系统上利用模拟器模拟运行起来,然后移植到智能手机系统上检测运行。下面我们来看看本课题所研究的各个模块。

1.密码保护

  如果说我们的通讯录里面有我们不想被别人知道的电话、地址以及其他信息的时候,我们就要确保安全性,当用户设置密码保护以后一但要进入本软件,就必须要通过密码的验证。

2.数据存储

  一般来说,对于Android操作系统信息的存储有以下几种方式,Preference、File、SQLite数据和网络。Preference主要是轻量级的数据存储,常用的就是手机上的开机问候语,File是以文件的形式直接存储在设备中。以上的数据存储方式,在现在的Android中不是很常用,被广泛应用的是SQLite数据库,这种数据库是通过高效的引擎来实现结构化的数据存储,它还是嵌入式的数据库引擎,在嵌入式领域得到广泛应用。本课题就是采用SQLite数据库来完成对用户信息增删改查的存储。

3.界面显示

  通过Android上的开发,我们所要做的不仅是一款实用的软件,而且还要给用户一种炫目的视觉体验,本次研究将结合图片、按钮、选择框等多种控件来实现,使得页面布局比较合理整洁华丽。

4.增删改查界面

       (1)增加功能,是通过菜单里的“添加”按钮的Activity间的控制来跳转到一个添加界面,本页面上显示了用户所要填写的存储信息以及图像的选择,用户填写好信息之后可以单击“保存”按钮,此时就将信息存储到Android系统上的数据库当中并将信息的概要显示在界面上。

       (2)删除功能,选中用户列表信息的时候,单击界面下方的“删除”按钮,会弹出一个对话框,提示是否删除,用户根据选择执行相应的操作。

       (3)修改功能,当未使用修改功能的时候,用户保存的信息是只能查看的,只有按下了“修改”按钮,信息才会显示为可修改状态,点击“完成”,完成操作。

       (4)查找功能,用户可以根据号码以及姓名进行模糊查询,及在查找的过程中会将类似的信息以用户列表的形式展现出来供用户查看,方便快捷。

     5.菜单栏设计

       将各种功能集成起来,包括显示所有信息、删除所有信息、信息的备份还原更新以及软件的退出。

五、研究目标、主要特色及工作进度:

1.研究目标:

  本课题名为基于android平台上通讯录的设计与实现。此意旨在利用自己对android的学习理解并学会在android平台上进行相关操作来设计和实现一个能够模拟运行出来的手机软件,待测试完成之后可以嵌入到整机中运行起来。所以,我们要做的就是要设计出这样一款真正不失华丽而又实用的手机软件,配合现在的智能手机,做到方便于用户,适用于用户,满足于用户。

2.主要特色:

(1)安全保护,只要用户设置了打开本软件的密码,就必须通过了密码的验证方可以来使用本软件,提高了安全性。

(2)功能齐全,旨在对用户的存储信息处理上功能齐全,用户可以对通讯中的信息做相应的处理,实用性强。

(3)仿真模拟,基于android的开发配合响应的SDK,可以将设计的软件模拟到android模拟器(AVD)上,方便了用户的模拟体验,体验效果好。

(4)易于维护,由于android系统代码开源,在它上面做开发与维护会比较容易一点,又由于开发出来的软件是用java语言编写的,java的各种优良特性又为开发提供支持,所以说在整个软件的设计与维护上会相比的轻松一些。

(5)可移植性强,java语言“一次编写,到处运行”的特性为以java语言设计出的软件提供了很强的可移植性。

3.工作进度:

六.主要参考文献

[1] 郭宏志,《Android应用开发详解》[M].北京:电子工业出版社,2010.6

[2] 靳岩 姚尚朗,《Google Android开发入门与实战》[M].人民邮电出版社

[3] 刘珺; 张传雷等,3G智能手机操作系统的研究和分析[J]. 电信科学, 2009

[4] 张桂珠 刘丽 陈爱国 《Java面向对象程序设计(第2版)》[M].北京邮电大学出版社

[5] 王保罗.《Java面向对象程序设计》[M]. 北京:清华大学出版社,2003

[6] 林邦杰,《彻底研究java》[M].北京:电子工业出版社,2002

[7] 栗菊名.《Java面向对象程序设计》[M].北京机械工业出版社,2007

[8] Bruce Eckel. 《Java编程思想(陈昊鹏译)》[M]. 机械工业出版社 2007

[9] 王吴迪,赵枫朝.《Java开发与应用教程》[M]. 电子工业出版社,2006

[10] 江春华,蔡洪斌. 《Java程序设计基础与提高》[M]. 电子科技大学出版社,1998

 

第二篇:南昌大学毕业设计开题报告参考模板

 

毕业设计(论文)开题报告

题   目:   基于RSA算法的加解密程序的设计和实现  

学    院:          信息工程学院        

专    业:           计算机应用         

班    级:          072               

学    号:          8000107205          

姓    名:                               

指导教师:            林振荣            

填表日期:    2011      2      28 

一、选题的依据及意义:

RSA公钥加密算法是第一个既能用于数据加密也能用于数字签名的算法。它易于理解

操作,也十分流行。算法的名字以发明者的姓氏首字母命名:Ron Rivest,Adi Shamir和Leonard Adleman。虽然自1978年提出以来,RSA的安全性一直未能得到理论上的证明,但它经历了各种攻击,至今未被完全攻破。随着越来越多的商业应用和标准化工作,RSA已经成为最具代表性的公钥加密技术。VISA、MasterCard、IBM、Microsoft等公司协力指定的安全电子交易标准(Secure Electronic Transactions.SET)就采用了标准RSA算法,这使得RSA在我们的生活中几乎无处不在。网上交易加密连接、网上银行身份验证、各种信用卡使用的数字证书、智能移动电话和存储卡的验证功能芯片等,大多数使用RSA技术。

当今公钥加密更广泛应用于互联网身份认证,本课题将公钥加密算法RSA应用于小型文件加密。将任意文件加密成文本的解决方案,使其使用更加灵活。整个工程的分层设计,给引用移植和后续开发带来便利。

二、国内外研究现状及发展趋势(含文献综述):

密码学以研究秘密通信为目的,研究对传输信息采取何种的变换,以防止第三者对信息的截取。在密码学中,需要变换的原消息称为明文消息。明文经过变换成为另一种隐蔽的形式,称为密文消息。完成变换的过程称作加密,其逆过程(即由密文恢复出明文的过程)称作解密。对明文进行加密时所采取的一组规则称作加密算法。加密和解密操作通常在密钥的控制下进行,并有加密密钥和解密密钥之分。因为数据以密文的形式存储在计算机文件中,或在数据通信网络传输,因此数据被未授权者非法窃取,或因系统故障和操作人员误操作而造成数据泄漏,未授权者也不能理解它的真正含义,从而达到数据保密的目的。同样,未授权者也不能伪造合理的密文,因而不能篡改数据,从而达到数据真实性的目的。

密码技术是对信息进行重新编码, 从而达到隐藏信息内容, 使非法用户无法获取信息真实内容的一种手段。在单钥密码体制中,加密和解密所用的密钥是相同的或者相近的,即由加密密钥很容易得出解密密钥。在一个密码系统中,不能假定加密算法和解密算法是保密的,因此,密钥必须保密。然而发送信息的通道往往是不可靠或者不安全的,所以,在对称密码体系中,必须用不同于发送信息的另外一个安全信道来发送密钥,但这个安全信道不一定真的安全。为此,人们希望使用一种不需要传递解密密钥的密码体制公开密钥密码体制。

    Whitfield Diffie和Martin Hellman在《密码学的新方向》一文中包含了设计一个具有公钥私钥对系统的协议的详细信息,随后这一算法以两位作者的姓名命名,即Diffie-Hellman 算法,它被称为公钥系统的基础。公钥密码的新概念开创了现代密码学的新领域。这一领域虽然只有短短的二十几年时间,但投入研究人员之多,他们来自学科之广,发表的论文之众是其它任何一门学科所不能比的,所以很快便获得了一整套很系统的成果。

1.传统密码在密钥分配与管理上是极困难的。在任何密文未发送之前,A方和B方必须利用安全信道时行密钥K的预先通信,在实际应用中,这可能是非常困难的。因此,Diffie和Hellman提出了公钥密码体制的思想。

2.在商业上有时不可能做得到通信双方事先预约使用相同密钥。

公钥密码体制将加密密钥与解密密钥分开,并将加密密钥公开,解密密钥保密。这样,每个用户拥有两个密钥:公开钥和秘密钥,并且所有公开钥均被记录在类似电话簿的密码本中。这种密码体制的安全性是从已知的公开钥、加密算法与在信道上截获的密文不能求出明文或秘密钥。

公钥体制的基础是陷门(单向函数) , 即某种实际处理过程的不可逆性。目前的公钥思想基于两种:一是依赖于大数的因数分解的困难性;二是依赖于求模离散对数的困难性。公开密钥密码体制开辟了密码学研究的新方向,此后,人们基于背包问题、因子分解问题和离散对数问题等数学难题提出了大量的公钥密码体制算法。

在受Diffie-Hellman 算法思想启发之后,美国麻省理工学院的三个研究人员:Ronald Rivest,Adi Sharmir 和Leonard Adleman联合提出一种基于数论中欧拉定理的公钥密码系统,简称RSA公钥系统,并于1983 年在美国获得专利。

RSA 公钥密码算法是迄今为止在理论上最为成熟、完善的公钥密码体制。 从提出到现在已经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。它是第一个既能用于数据加密也能用于数字签名和密钥分配与管理的算法。它易于理解和操作,也很流行。因为它既可用于加密,又可用于签名,并为用户的公开密钥签发公钥证书、发放证书、管理证书等,提高了服务质量,所以, RSA 公开密钥密码在当今的信息交换过程中已得到广泛的应用和实践,RSA 公钥密码体制在世界许多地方已经成为事实上的标准。

该算法的加密密钥和加密算法分开,使得密钥分配更为方便。而且它特别符合计算机网络环境。对于网上的大量用户,可以将加密密钥用电话簿的方式印出。如果某用户想与另一用户进行保密通信,只需从公钥簿上查出对方的加密密钥,用它对所传送的信息加密发出即可。对方收到信息后,用仅为自己所知的解密密钥将信息解密,了解明文的内容。由此可看出,RSA 算法解决了大量网络用户密钥管理的难题,这是公钥密码系统相对于对称密码系统最突出的优点。

RSA 是一个基于数论的非对称密码体制,是一种分组密码体制,是一种基于因子分解的指数函数作为单向陷门函数的公钥体制算法。它基础是数论的欧拉定理,素数检测,它的安全性是基于大数分解,后者在数学上是一个困难问题。

RSA算法是第一个完善并且简单实用的公钥密码体制算法。近年来,国内外学者对RSA密码算法提出了多种攻击方法,例如Pollard p21方法、二次筛法、椭圆曲线算法和数域筛法等。

RSA 的安全性基于复杂性理论中的计算安全性, 依赖于大整数分解这一NP 难题。可靠性与所用密钥的长度有很大关系, 假如有人找到一种很快的分解因子的算法, 即从一个公钥中通过因数分解得到私钥, 那么用RSA 加密的信息的可靠性肯定会极度下降。但由于其工作量巨大,按目前计算机的处理能力是不可能实现的。实践证明,在当前的技术和方法下,密钥不小于1 024 bit的RSA算法仍然是安全的。这充分说明RSA 系统具有良好的保密性能。

因此,尽管先后出现了很多新的公钥体制算法,但RSA仍然在不同应用领域占据了重要的位置。随着计算机运算速度的提高以及因子分解算法的突破, RSA 的密钥长度将越来越大, 其软硬件实现速度将成为制约其使用的重要因素。

为了提高RSA密码算法的软硬件实现速度,人们提出了许多可行的方法,例如旨在快速产生大素数的Monte Carlo概率算法,加速模幂运算的M-ary法、Yacobi法、加法链法和向量加法链法,以及利用孙子定理(CRT)改进RSA的解密运算等。

近年来, 椭圆曲线密码体制(ECC)得到广为关注, 与同等保密强度的RSA 相比, ECC 的密钥长度更小, 密钥生成及加解密速度更快, 且同样具有RSA 数字签名的优点。因此对RSA 构成了极大挑战。无论针对哪种体制, 寻找更为高效的大数运算算法始终是一个长久的话题。

三、本课题研究内容和方案

本课题致力于RSA算法的理论研究、RSA算法的改进以及基于RSA算法的加密、解密软件的实现。

本课题将公钥加密算法RSA应用于小型文件加密,将任意文件加密成文本的解决方案,使其使用更加灵活。整个工程的分层设计,给引用移植和后续开发带来便利。

整个工程采用分层设计。核心的RSA算法由C++类库实现,针对用户所在的操作系统封装成本地化组件。其他各功能如文件操作、数据编码转换和图形界面等,由托管代码借助虚拟机平台标准库的功能快速开发实现(本文针对选用.Net上的C#论述,调用本地组件,设计模式上是完全类似的)。这种开发方式,核心功能集中在最底层,在不断的封装中针对具体环境对组件功能不断扩充,任意一个层面的封装都可以被直接应用到其它项目,比如在Web使用以前为某窗体程序写的组件、给嵌入式设备交叉编译算法库等。但是每一层都需要依赖底层的所有组件。

综上所述,设计方案上层使用C#,底层算法使用C++,可以由一个Visual Studio解决方案管理,给调试带来极大的方便。整个工程分四层,实现RSA加密算法的C++核心类库、封装C++核心类库的DLL组件、引用DLL的.Net类、实现文件操作功能的.Net窗体应用程序。

四、本课题的研究进度:

进度计划表如下表2所示:

五、参考文献

[1] 杨义先,纽心忻,李名选.网络信息安全与保密[M].北京邮电大学出版社,2001 

[2] 辛运炜.密码学算法[M] .电子工业出版社,1998

[3] Douglas R.Stinson.密码学原理与实践.北京:电子工业出版社,2003:131-132
[4] 赵振江.密码编码学[M] 加密方法的C与C++实现[M] .电子工业出版社,2003.6: 31~41

相关推荐