基于RSA加密算法的防沉迷手机软件设计与实现

计算机时代 / 2018年10月17日 20:26

手机

陈璐 吴鹏 张锦祥 方美玉

摘 要: 以Android系统为平台,设计开发了一个青少年防沉迷手机软件。采用了RSA(Rivest-Shamir-Adleman)非对称密钥算法以增加登入验证的破解难度,并对娱乐软件和上网总时间加以防沉迷管理。该软件主要包括软件前台、软件后台、RSA验证和防沉迷管理等模块。

关键词: Android系统; 防沉迷管理; 防沉迷软件; RSA算法

中图分类号:TP311.1 文献标志码:A 文章编号:1006-8228(2016)01-33-03

Design and realization of anti-addiction mobile software based on RSA algorithm

Chen Lu, Wu Peng, Zhang Jinxiang, Fang Meiyu

(School of Science and Technology, Zhejiang International Studies University, Hangzhou, Zhejiang 310012, China)

Abstract: On Android platform, the teen anti-addiction mobile software is developed. The RSA (Rivest-Shamir-Adleman) asymmetric key algorithm is used to increase the difficulty of login validation cracking, and to manage the total time of the entertainment software and the Internet to prevent indulging. The software mainly includes software foreground, software background, RSA verification and anti-addiction management.

Key words: Android; anti-addiction management; anti-addiction software; RSA

0 引言

智能手机已进入人们的生活,手机智能化在给用户带来方便和娱乐的同时,也带来不少问题,如青少年沉迷于手机问题。研究发现,青少年的手机依赖率达到16.7%-27.4%[1],而手机依赖导致的沉迷会给他们的学习成长带来各种负面影响[2],因此手机防沉迷问题亟需社会关注。

近年来,我国手机防沉迷软件的开发逐步形成了一定市场规模,主要有由ZIPXIN开发的“防沉迷手机助手”和博园无线的“宝贝助理”等。这些防沉迷软件对摆脱手机沉迷现象起到了积极性的作用。但是如何对被监控手机进行有效的防沉迷管理是一个关键的问题。在这个背景下,我们设计和开发了一个防沉迷手机软件,采用RSA加密算法增加软件登入密码的破解难度,并对娱乐软件和上网总时间加以管理。

1 软件的构架与设计

1.1 开发技术概述

防沉迷软件开发是在Windows系统下采用的eclipse+ADT+SDK模式。开发环境采用操作系统:Windows 7;开发语言:Java;开发工具:eclipse;开发工具包:Android SDK。软件采用RSA加密算法设置防沉迷软件登入密码和短信设置。

1.2 总体功能

软件总体功能主要包括软件前台、软件后台等功能模块。其中,软件前台包括RSA验证登入、软件监控选择、时间设置、密码修改、短信发送设置等功能;软件后台包括开机自启、线程监控、短信控制RSA验证、防沉迷时间提醒等操作。

各模块的逻辑关系见图1。

1.3 系统用例图

用例图是由参与者(Actor)、用例(Use Case)以及它们之间的关系构成。在本软件中,监护人是主要参与者。监护人通过登入后实现对青少年的手机游戏或上网功能的防沉迷管理。

本防沉迷软件的用例图如图2。

2 RSA算法的应用

2.1 RSA算法原理

本软件采用RSA[3]加密算法,对软件密码和短信发送进行设置。RSA加密算法是由Rivest、Shamir和Adleman在1978年提出的,并以他们的名字命名的一种典型的公钥密码算法[4]。在公钥密码算法中,加密秘钥可以公开作为公钥,而解密秘钥作为私钥。RSA算法的理论基础是初等数论中的质数分解因子。

2.2 RSA算法流程

RSA算法流程图如图3所示。

2.2.1 产生密钥对过程

⑴ 选择两个大素数p和q。

⑵ 计算:n=p×q,(n)=φ(q-1)(q-1)。

⑶ 随机选择一整数e,满足(e,(n))=1,即要求e和φ(n)互素。

⑷ 计算d=e-1(modφ(n))。即d是e在模φ(n)下的乘法逆元。由于e和φ(n)互相为素数,由模运算可知,它的乘法逆元一定存在。

⑸ 以(n,e)作为该加密算法的公钥,d为私钥。此时p和q不再需要,它们应该被舍弃掉,但绝不可泄露。

⑹ 加密过程:发送方把明文m进行加密生成密文C,C=Me(modn),并将密文c发送。

⑺ 解密过程:接收方收到密文C后,用私钥d计算m=Cd(modn),从而获取明文。

2.2.2 RSA算法具体加密解密过程

假设需要加密的明文为m=6882326879666683,用RSA算法对其进行加密。

⑴ 选取两个素数p=47,q=71,则有p×q=3337。

⑵ 由于加密密钥e与(p-q)(q-1)=3320互素,随机选取加密密钥e=79。

⑶ 按下式计算解密密钥d。

d=(79φ(3320)-1)mod3320=1019

⑷ 至此,公开e和n,将d保密,丢弃p和q。

⑸ 将待加密消息m=6882326879666683按三位一组分成6组,每组的明文分别为:

m1=688,m2=232,m3=687,m4=966,m5=668,m6=003

第1分组加密为:c1=68879mod3337=1570

其余5组按同样的操作产生加密后的密文分别为:2756,2091,2276,2423,158。这样,明文m经加密后变成密文:15702756209122762423158。

⑹ 解密消息时需要用解密密钥1019进行相同的指数运算。例如对第1组密文的解密结果是:

15701091mod3337=688=m1

同理,明文的其余部分可用同样的方法恢复出来。

2.3 RSA算法在软件中的应用

⑴ 监护人的软件登入密码,增加了破解密码的难度。

⑵ 进行防沉迷管理的控制短信,由于不同的家长有不同的数字签名,所以每个人的密钥各异。

3 防沉迷软件的实现

3.1 防沉迷管理的总体实现

本软件的防沉迷管理主要有五个功能:通过RSA加密登入密码,使破解难度得到提升;不定时对被监控手机进行扫描以检测是否有新的游戏软件安装,若有则加入监控行列;多线程管理并记录游戏软件使用时长;动态获取手机游戏信息,并与数据库中原有的游戏软件相比较;监护人或家长可根据提示短信选择关闭被监控手机上的游戏软件,若三次以上强行开启手机游戏则关闭除手机急救拨号外的所有应用程序。

3.2 总体类图设计

软件主要为三个类:被监控手机、防沉迷软件、监护人手机(见图4)。被监控手机类主要有两个属性:游戏软件编号和浏览器使用时长。另外包括提示信息操作等方法。防沉迷软件类包括密码和防沉迷两个属性;还包括一系列防沉迷管理如设置游戏时长、选择监控软件、发送提醒短信等。监护人手机类主要有获取提示信息和发送禁止短信方法。

本防沉迷软件的类图如图4所示。

3.3 获取与选择被监控程序清单

第一步,创建SoftwareSearch类用以获取已安装的软件信息。其中,构造用来显示的列表(List)对象,利用getPackageManager()获取手机已安装应用程序包的所在并创建CheckBox复选框用以选择被监控的程序。

第二步,创建onCreateOptionsMenu和MyAdapter类,即创建了一个菜单和适配器的类,其中适配器用于获取列表中的数据与复选框选中状况。

第三步,使用之前定义的适配器中的getView方法刷新它所在的ListView,依次获得每个软件的包名与图标,并把图标和包名放到一个文本视图textview中。

3.4 主要界面设计

⑴ 主设置界面展示图

给予软件的描述和使用提示,通过这个界面上的按键选择,进入时间设置、短信发送设置、软件选择和密码修改的子界面见图5。

⑵ 软件选择功能子界面展示

进行游戏软件的选择控制和后台可控制软件的及时更新的子界面见图6。

4 结束语

基于RSA算法的防沉迷手机软件通过对监护人登入密码和控制短信的加密,有效控制了青少年沉迷手机问题。除此之外,防沉迷系统还保证了其强制执行力,不能被自制力欠缺的青少年破解密码的行为影响到防沉迷功能的正常实现。但是由于寻找大素数所需要的计算量比较大,从而降低了RSA加密算法的效率[5]。对于如何提高效率这个问题还有待进一步研究。

参考文献(References):

[1] 祝月婷,张成.青少年手机沉迷与应对策略[J].郧阳师范高等

专科学校学报,2015.2:100-102

[2] 莫梅锋,张锦秋.手机沉迷对大学生移动学习的影响与引导[J].

现代远距离教育,2012.5:80-84

[3] 司光东,杨加喜,谭示崇,肖国镇.RSA算法中的代数结构[J].

电子学报,2011.1:242-246

[4] 杨义先,钮心忻.现代密码学[M].北京邮电大学出版社,2005.

[5] 周玉洁,冯登国.公开密钥密码算法及其快速实现[M].国防工

业出版社,2002.

1.环球科技网遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.环球科技网的原创文章,请转载时务必注明文章作者和"来源:环球科技网",不尊重原创的行为环球科技网或将追究责任;3.作者投稿可能会经环球科技网编辑修改或补充。