国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Android平臺(tái)加密算法及系統(tǒng)實(shí)現(xiàn)

2017-05-31 06:40蘇瑩蔡芳
軟件導(dǎo)刊 2017年5期
關(guān)鍵詞:Android系統(tǒng)加密算法

蘇瑩 蔡芳

摘要摘要:為滿足人們對(duì)Android手機(jī)私密信息的保護(hù),針對(duì)Android系統(tǒng)的特點(diǎn),闡釋對(duì)稱加密算法和非對(duì)稱加密算法的基本原理,并著重分析3種常用加密算法的加密過程。針對(duì)Android手機(jī)隱私泄露問題,提供一套可行的基于AES加密算法的手機(jī)隱私保護(hù)解決方案。分析用戶需求,總結(jié)用戶對(duì)Android加密軟件的需求,進(jìn)行系統(tǒng)設(shè)計(jì)和詳細(xì)設(shè)計(jì),實(shí)現(xiàn)一款集文件加密和管理于一身的Android軟件,并對(duì)軟件進(jìn)行測(cè)試。

關(guān)鍵詞關(guān)鍵詞:加密算法;Android系統(tǒng);加密性能;算法安全;文件加密

DOIDOI:10.11907/rjdk.171086

中圖分類號(hào):TP309.7

文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào)文章編號(hào):16727800(2017)005017103

0引言

智能手機(jī)的出現(xiàn)極大改變了人們的生活方式,當(dāng)人們已經(jīng)習(xí)慣和依賴手機(jī)時(shí),也更加注重手機(jī)個(gè)人信息的安全性。在數(shù)據(jù)信息的安全保障措施中,信息加密技術(shù)是最主要和最基本的方法,信息加密是由加密算法具體實(shí)現(xiàn)的,利用密鑰確保信息安全[1]。以Android平臺(tái)為代表的智能手機(jī)操作系統(tǒng)在當(dāng)前最為流行,然而Android的開放性也使得其安全性大為降低,以致出現(xiàn)了很多使用Android操作系統(tǒng)的用戶隱私被泄露的現(xiàn)象[2]。鑒于此,對(duì)Android平臺(tái)下的數(shù)據(jù)安全進(jìn)行研究迫在眉睫。

本文針對(duì)目前幾種較為成熟的加密算法,對(duì)算法加密過程、安全性及Android平臺(tái)的適用性等進(jìn)行研究,根據(jù)Android平臺(tái)的特點(diǎn)選定一種加密算法設(shè)計(jì)出一款功能強(qiáng)大的加密軟件。加密軟件可以對(duì)本地的文本文件和圖片進(jìn)行加密和解密,并實(shí)現(xiàn)文件的基本可視化界面操作。

1加密算法特性分析

對(duì)于RSA算法,其安全性很大程度上依賴于大素?cái)?shù)分解,但沒有任何理論證明其安全性等同于大數(shù)分解的難度[3]。就目前而言,分解n是最有效的破解方法。當(dāng)前計(jì)算機(jī)已經(jīng)能分解多個(gè)十進(jìn)制的大素?cái)?shù),因此n必須足夠大。然而當(dāng)n過大時(shí)會(huì)降低加密效率。RSA最大的缺點(diǎn)在于其計(jì)算量太大,會(huì)耗費(fèi)大量系統(tǒng)資源。由于計(jì)算量太大,RSA算法多用于傳遞密鑰、簽名等少量信息的加密,因而對(duì)于文件加密不合適。RSA算法在運(yùn)算性能不是很強(qiáng)大的Android系統(tǒng)應(yīng)用上,顯然不太合適。

DES算法具有很高的安全性,目前除了用窮舉搜索法對(duì)抗DES算法攻擊外,還未發(fā)現(xiàn)更有效的方法[34]。在DES算法中只用到了64位密鑰中的其中56位,第8、16、24、…、64位這8個(gè)位沒有參與DES運(yùn)算,由此可以看出,DES的安全性是基于除第8、16、24、…、64位以外的56位的組合變化才使得256得以保證,因此在實(shí)際應(yīng)用中,應(yīng)該避開使用第8、16、24、…、64位作為有效的數(shù)據(jù)位,即使用其它的56位作為有效數(shù)據(jù)位,才能保證DES算法安全可靠地發(fā)揮作用。另外,DES算法中S盒8個(gè)選擇函數(shù)矩陣的設(shè)計(jì)原理至今未公布,因此嚴(yán)格地講,DES算法并不是真正的公開加密算法。如果S盒中存在陷門,那么DES算法就沒有安全性可言了,這顯然不符合本課題對(duì)算法的要求。

AES算法是一個(gè)分組迭代密碼,分組長(zhǎng)度和密鑰長(zhǎng)度設(shè)計(jì)靈活。與DES算法相比,AES算法支持可變分組長(zhǎng)度,分組長(zhǎng)度可設(shè)定為32bit的任意倍數(shù),最小為128bit,最大為256bit。另外AES算法遵循寬軌跡策略,因此它可以有效對(duì)抗差分密碼分析和線性密碼分析[56]。目前,AES算法被列為是比現(xiàn)今任何其它加密算法都要安全的一種算法,在理論和實(shí)際應(yīng)用中,它被認(rèn)為是“安全的”,因?yàn)橐平釧ES算法,唯一有效的方法就是生成所有密鑰,并精確地測(cè)量出加密線程所需的時(shí)間。

3種算法的性能對(duì)比分析如表1所示。RSA算法在保證安全的前提下計(jì)算量太大,不適合Android系統(tǒng);DES算法安全性得不到保證,也不適合本次課題的要求;而AES算法由于其安全性高、運(yùn)算速度快和資源消耗低的特點(diǎn)非常適合用于Android下的加密設(shè)計(jì)。

2功能需求與設(shè)計(jì)

2.1功能需求

一款功能齊全的基于Android系統(tǒng)的加密軟件,軟件系統(tǒng)功能主要分為文件加密、文件解密、文件瀏覽、文件操作和設(shè)置密碼五大塊。軟件功能如圖1所示。

(1)文件加密。系統(tǒng)可以對(duì)文本文件和圖片進(jìn)行加密,對(duì)文件加密后,在原文件的目錄中創(chuàng)建密文文件,并刪除原文件。對(duì)于不支持加密的文件要給予提示,以免誤刪。因此,要求加密算法為安全性和效率較高的AES算法。

(2) 文件解密。文件解密是將密文文件還原成明文,要能夠完全還原成加密前的內(nèi)容,解密后刪除密文文件。

(3)密碼設(shè)置。分為軟件啟動(dòng)密碼和文件加密密碼。軟件啟動(dòng)時(shí)要求用戶輸入密碼,隨后對(duì)文件進(jìn)行操作。軟件啟動(dòng)密碼指軟件啟動(dòng)時(shí)的初始密碼,在設(shè)置選項(xiàng)里可以更改軟件啟動(dòng)密碼。文件加密密碼是用于加密文件的密碼,當(dāng)用戶選擇對(duì)文件解密后要求輸入文件的加密密碼,當(dāng)密碼驗(yàn)證通過后再將文件解密。文件的加密密碼也有一個(gè)初始值,可以在設(shè)置里更改。

(4)文件瀏覽。文件瀏覽要顯示當(dāng)前所在路徑,以列表形式顯示存儲(chǔ)卡里的文件和文件夾,列表的每一項(xiàng)都由文件圖標(biāo)和文件名組成。用戶能上下滑動(dòng)屏幕以瀏覽文件,當(dāng)點(diǎn)擊一個(gè)目錄時(shí)就進(jìn)入目錄。

(5)文件操作。在文件列表長(zhǎng)按某個(gè)文件時(shí),彈出功能選擇框,功能選項(xiàng)和目標(biāo)有:刪除、打開、復(fù)制、粘貼、重命名。

2.2總體設(shè)計(jì)

程序首次啟動(dòng)要求用戶輸入默認(rèn)的軟件啟動(dòng)密碼,正確輸入密碼后進(jìn)入主界面,主界面是手機(jī)sd卡根目錄的文件列表展示,用戶可以選擇“手機(jī)”、“SD卡”、“日志”和“設(shè)置”選項(xiàng),或者直接進(jìn)行SD卡的文件瀏覽。程序流程如圖2所示。

當(dāng)用戶點(diǎn)擊目錄時(shí)直接進(jìn)入目錄,當(dāng)點(diǎn)擊文件時(shí)則調(diào)用系統(tǒng)的程序來打開文件。當(dāng)長(zhǎng)按某個(gè)文件或文件夾時(shí)彈出列表選擇框讓用戶選擇操作方式,操作方式有打開、刪除、復(fù)制、粘貼、重命名、加密和解密,選擇操作,程序執(zhí)行各自對(duì)應(yīng)的方法,然后關(guān)閉列表選擇框。

在選擇加密操作后,即調(diào)用加密方法,判斷:如果在sd卡根目錄下存在日志文件,則將此密文文件的日志信息寫入日志文件中;如果日志文件不存在,則在sd卡根目錄下創(chuàng)建日志文件,再寫入日志信息。選擇解密文件后,彈出對(duì)話框讓用戶輸入密碼,密碼驗(yàn)證正確后執(zhí)行解密方法。

當(dāng)用戶選擇查看日志時(shí),出現(xiàn)列表對(duì)話框,對(duì)話框每一項(xiàng)都是密文的日志信息。對(duì)話框每次將日志文件的內(nèi)容按行讀出信息,然后在在每個(gè)選項(xiàng)中展示。

當(dāng)用戶選擇設(shè)置密碼時(shí),出現(xiàn)密碼對(duì)話框,對(duì)話框包括兩個(gè)單選按鈕和一個(gè)文本輸入框,單選按鈕是選擇設(shè)置軟件啟動(dòng)密碼和文件加密密碼,輸入框接收用戶輸入的密碼。

3關(guān)鍵技術(shù)及實(shí)現(xiàn)

設(shè)置密碼包括軟件啟動(dòng)密碼和文件加密密碼,兩個(gè)密碼都采用SharedPreferences方式存儲(chǔ)。加密完某個(gè)文件時(shí),將文件的絕對(duì)路徑名和當(dāng)前系統(tǒng)時(shí)間一并寫入日志文件中,其中日志文件內(nèi)容不能被覆蓋,只允許將新內(nèi)容加入原內(nèi)容之后。當(dāng)要顯示日志信息時(shí),彈出列表對(duì)話框。列表對(duì)話框的讀取日志文件,對(duì)話框每一項(xiàng)顯示文件的絕對(duì)路徑名和被加密時(shí)的時(shí)間。

被加密的文件不能被讀取或者讀取的是亂碼,文件被解密后要求能被正確讀取,而且沒有亂碼現(xiàn)象或者質(zhì)量損失的情況,文件加密后要求將此日志信息正確寫入日志文件中。在進(jìn)行文件瀏覽時(shí)要求能正確顯示各目錄下的文件名和子目錄名,對(duì)文件的各種操作能夠正確執(zhí)行。在顯示日志時(shí)能夠正確顯示日志文件的內(nèi)容,沒有亂碼或顯示格式混亂的情況。設(shè)置密碼要求將用戶設(shè)置的密碼成功保存,在密碼不被修改的情況下,密碼不被改變。

由于程序涉及讀文件的操作,要提防用戶操作系統(tǒng)的重要文件或目錄,這就要求在顯示文件時(shí)將系統(tǒng)重要文件或目錄過濾掉。

對(duì)于加密算法所需密鑰則是用由用戶提供的密碼,程序根據(jù)密碼生成密鑰,密碼保存在SharedPreferred(操作模式為Context.MODE_PRIVATE)中。對(duì)文件加密先用FileInputStream獲得明文的輸入流形成字符串,再將字符串加密,密文字符串用輸出流FileInputStream將密文寫入新文件,然后將源文件刪除。解密過程與加密過程相同,只不過加密與解密的方法不同。加密解密所需的密鑰根據(jù)SharedPreferred中的密碼經(jīng)過轉(zhuǎn)換得到。

軟件啟動(dòng)密碼的實(shí)現(xiàn),則可以設(shè)計(jì)一個(gè)登錄流程,當(dāng)輸入正確密碼時(shí)進(jìn)入主界面。對(duì)文件類型的判斷用getName()獲得文件的名字,根據(jù)文件后綴名設(shè)置不同的圖標(biāo),用isFile()判斷文件是標(biāo)準(zhǔn)文件還是目錄,如果是目錄則進(jìn)入繼續(xù)反復(fù)判斷,直到文件夾沒有子文件夾為止。

文件的瀏覽則用File類的list()方法獲得根目錄下所文件和文件夾的字符串列表,將列表放入中間容器BaseAdapter中,再將BaseAdapter的內(nèi)容顯示在Listview中。

當(dāng)用戶選擇退出時(shí),程序調(diào)用MainActivity.this.finish()方法退出程序。

4系統(tǒng)測(cè)試

4.1系統(tǒng)測(cè)試目的及環(huán)境

原始問題的復(fù)雜性和開發(fā)各個(gè)階段的多樣性,使得程序開發(fā)在各個(gè)階段都可能出現(xiàn)錯(cuò)誤。為了更好地提高程序的效率和各種平臺(tái)的兼容性,需對(duì)軟件進(jìn)行各種測(cè)試。在本程序中,對(duì)文件的操作較多,對(duì)文件的讀寫操作可能出現(xiàn)輸入輸出流錯(cuò)誤的情況,這樣的錯(cuò)誤會(huì)導(dǎo)致文件損壞,并且,在對(duì)文件的讀寫操作上可能出現(xiàn)編碼不一致的問題。在對(duì)密碼的保存問題上,應(yīng)測(cè)試是否出現(xiàn)其它程序訪問SharedPreferences的情況。

4.2測(cè)試結(jié)果

本程序的開發(fā)環(huán)境是Android 4.2,因此選擇在4.2以上版本上測(cè)試。測(cè)試結(jié)果如圖3所示。

5結(jié)語

在本次加密算法研究與實(shí)現(xiàn)過程中,主要完成了如下工作:①研究和總結(jié)了常用加密算法RSA、DES和AES的實(shí)現(xiàn)過程,針對(duì)這3種算法,從算法安全性、運(yùn)行速度、資源消耗和密鑰管理等角度分析并選擇適合Android平臺(tái)的加密算法;②選擇適合的加密算法后,實(shí)現(xiàn)了基于AES算法集文件操作和加密于一身的的加密軟件,在此過程中確定了軟件的設(shè)計(jì)目標(biāo)、需求分析、系統(tǒng)功能模塊設(shè)計(jì)和程序流程設(shè)計(jì);③根據(jù)系統(tǒng)流程對(duì)各個(gè)子功能模塊進(jìn)行編碼設(shè)計(jì),最后針對(duì)軟件功能和當(dāng)前開發(fā)環(huán)境進(jìn)行了系統(tǒng)測(cè)試。

參考文獻(xiàn)參考文獻(xiàn):

[1]豐生強(qiáng).Android軟件安全與逆向分析[M].北京:人民郵電出版社,2013.

[2]蔣紹林,王金雙,張濤.Android 安全研究綜述[J].計(jì)算機(jī)應(yīng)用與軟件,2012(10):205210.

[3]JONATHAN KATZ,YEHUDA LINDELL.Introduction to modern cryptography[M].London:Chapman and Hall,2007.

[4]吳明航.DES和RSA混合加密算法的研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2013.

[5]姚培娟,張志利.Android智能手機(jī)安全問題和防護(hù)策略研究[J].現(xiàn)代計(jì)算機(jī):專業(yè)版,2015(1):6972.

[6]MODEL JISOO OH,MINWOO PARK,TAIMYOUNG CHUNG.Enhancing security of the android platform via multilevel security[J].Applications and Techniques in Information Security Communications in Computer and Information Science,2014.

責(zé)任編輯(責(zé)任編輯:孫娟)

猜你喜歡
Android系統(tǒng)加密算法
Android系統(tǒng)上的移動(dòng)互聯(lián)網(wǎng)集成平臺(tái)開發(fā)機(jī)制
HES:一種更小公鑰的同態(tài)加密算法
基于小波變換和混沌映射的圖像加密算法
Hill加密算法的改進(jìn)
對(duì)稱加密算法RC5的架構(gòu)設(shè)計(jì)與電路實(shí)現(xiàn)
基于混沌映射和DNA編碼的圖像加密算法
基于Arnold變換和Lorenz混沌系統(tǒng)的彩色圖像加密算法
洛宁县| 巴中市| 屏东市| 新安县| 进贤县| 新化县| 红河县| 越西县| 溧阳市| 晋宁县| 额尔古纳市| 桓台县| 怀柔区| 湖口县| 沙坪坝区| 潞城市| 阿鲁科尔沁旗| 安乡县| 连州市| 武汉市| 盐亭县| 安顺市| 合阳县| 米脂县| 汉寿县| 上思县| 攀枝花市| 华坪县| 二连浩特市| 收藏| 荣成市| 察哈| 浠水县| 西藏| 海盐县| 登封市| 江安县| 称多县| 阿坝县| 凤凰县| 东阿县|