• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

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

      蘇瑩 蔡芳

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

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

      DOIDOI:10.11907/rjdk.171086

      中圖分類號:TP309.7

      文獻標識碼:A文章編號文章編號:16727800(2017)005017103

      0引言

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

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

      1加密算法特性分析

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

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

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

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

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

      2.1功能需求

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

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

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

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

      (4)文件瀏覽。文件瀏覽要顯示當前所在路徑,以列表形式顯示存儲卡里的文件和文件夾,列表的每一項都由文件圖標和文件名組成。用戶能上下滑動屏幕以瀏覽文件,當點擊一個目錄時就進入目錄。

      (5)文件操作。在文件列表長按某個文件時,彈出功能選擇框,功能選項和目標有:刪除、打開、復(fù)制、粘貼、重命名。

      2.2總體設(shè)計

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

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

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

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

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

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

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

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

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

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

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

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

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

      4系統(tǒng)測試

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

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

      4.2測試結(jié)果

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

      5結(jié)語

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

      參考文獻參考文獻:

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

      [2]蔣紹林,王金雙,張濤.Android 安全研究綜述[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].現(xiàn)代計算機:專業(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.

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

      猜你喜歡
      Android系統(tǒng)加密算法
      Android系統(tǒng)上的移動互聯(lián)網(wǎng)集成平臺開發(fā)機制
      Android系統(tǒng)核心管理工具設(shè)計與實現(xiàn)
      Android下的機械式電表數(shù)字識別技術(shù)研究
      基于Android系統(tǒng)的掌上班級課表與學(xué)生考勤管理系統(tǒng)
      基于GPS和iBeacon的智能校園信息發(fā)布平臺設(shè)計與實現(xiàn)
      基于增強現(xiàn)實技術(shù)的導(dǎo)航系統(tǒng)研究
      HES:一種更小公鑰的同態(tài)加密算法
      基于小波變換和混沌映射的圖像加密算法
      Hill加密算法的改進
      對稱加密算法RC5的架構(gòu)設(shè)計與電路實現(xiàn)
      马龙县| 南雄市| 丽江市| 瑞昌市| 沙湾县| 韩城市| 香格里拉县| 仁布县| 大余县| 温州市| 新疆| 共和县| 米脂县| 英山县| 定日县| 民乐县| 邵东县| 玛沁县| 崇明县| 左贡县| 侯马市| 宁南县| 镶黄旗| 察雅县| 平罗县| 洞头县| 金沙县| 易门县| 呼和浩特市| 庆安县| 永济市| 罗田县| 布尔津县| 许昌市| 綦江县| 新巴尔虎左旗| 诏安县| 柳州市| 舞阳县| 府谷县| 库车县|