馬玉琢+郭玉翠
摘要:Android系統(tǒng)作為開源的系統(tǒng),受到越來越多的青睞,同時其安全性及用戶的隱私也受到了極大的考驗。本文提出了一種針對短信隱私保護的加密方案。從Android系統(tǒng)的整體架構及分層思想出發(fā),通過對3DES對稱加密算法及RSA非對稱加密算法的原理進行分析與研究,提出了一種新型的針對Android系統(tǒng)的混合加密算法的短信加密方案,詳細地介紹了具體的實現(xiàn)過程。使用Android模擬器進行的收發(fā)仿真實驗,證明了短信加密方案的可行性。
關鍵詞:Android系統(tǒng);3DES算法;RSA算法;短信息;加解密
引言
自從Google2007年推出Android操作系統(tǒng)以來,該系統(tǒng)以開源的優(yōu)勢迅速占領市場,但安全性也越來越受到重視。短信是人們使用較為頻繁的業(yè)務,然而短信的安全性面臨很多威脅,一些不法分子將用戶發(fā)送的短信進行攔截,竊聽短信,盜取用戶信息進行詐騙等活動。目前對于短信的安全問題有很多研究,張宇斯提出了基于RSA加密算法的短信加密方案;方傳蔚等人提出了基于3DES的短信加密方案;徐德志等人提出了在“ELGamal”加密體制基礎上針對GSM短消息系統(tǒng)的公開密鑰加密方案等。然而現(xiàn)有的加密方案大多僅限于對短信內容進行加密,且對稱加密算法的密鑰保密困難,非對加密算法加密速度慢。本文選取Android系統(tǒng)的短信加密作為研究方向,將非對稱加密算法和對稱加密算法進行結合,設計了基于3DES和RSA混合加密算法的短信加密方案,將短信內容和密鑰分別進行加密,達到了雙重加密的效果,綜合發(fā)揮了兩種算法的優(yōu)點,又避免了各自的缺點。
1Android的系統(tǒng)架構
Android其本質就是在Linux系統(tǒng)上增加了Java虛擬機Dalvik,并在Dalvik虛擬機上搭建了一個Java的application framework,所有的應用程序都是基于Java的application framework之上。
Android的系統(tǒng)架構采用了分層架構的思想,從上層到底層共包括四層,分別是應用程序層、應用框架層、系統(tǒng)庫、Android運行時和Linux內核。
應用程序層提供一些核心應用程序包,通常用Java語言編寫,Java程序及相關資源經(jīng)過編譯后,生成一個APK包。
應用程序框架層是從事Android開發(fā)的基礎,為應用程序層的開發(fā)者提供了API,它實際上是一個應用程序的框架,很多核心應用程序也是通過這一層來實現(xiàn)其核心功能的。
系統(tǒng)庫是應用程序框架的支撐,是連接應用程序框架層與Linux內核層的重要紐帶。Android的核心系統(tǒng)服務如安全性、內存管理、進程管理、網(wǎng)路協(xié)議以及驅動模型都依賴于Linux內核。
本文的短信加密方案是基于Android系統(tǒng)的應用程序層進行設計的,調用了部分應用程序框架層的API,采用Java語言進行的實現(xiàn)。
2 3DES和RSA混合加密算法簡述
2.1 3DES加密算法
3DES加密算法是一種對稱加密算法,加密和解密使用相同的密鑰,使用3條64位的密鑰對數(shù)據(jù)進行三次加密,加密速度快。
具體實現(xiàn)如下:設Ek()和Dk()代表DES算法的加密和解密過程,K代表DES算法使用的密鑰,M代表明文,s代表密表,
3DES加密過程為:S=Ek3(Dk2(Fk1(M))),
3DES解密過程為:M=Dkl((EK2(Dk3(s)))。
2.2 RSA加密算法
RSA是一種非對稱加密算法,加密和解密使用不同的密鑰,將兩個大素數(shù)的乘積公開作為加密密鑰,即公鑰,而兩個大素數(shù)組合成私鑰,將兩個大素數(shù)相乘十分容易,但對其乘積進行因式分解卻極其困難,任何人都可對明文進行加密,但只有被授權的用戶,即擁有私鑰的用戶才可對密文解密,所以RSA方法可以具有很好的加密效果。
2.3 3DES和RSA混合加密算法
3DES對稱加密算法的加密速度快,但由于加解密鑰相同,所以密鑰需要通過私密信道傳送給對方,泄露的風險較大。RSA非對稱加密算法強度復雜、安全性高,但由于RSA算法需要進行大整數(shù)的乘冪和求模處理,所以其效率較低,不適合大量數(shù)據(jù)的加密。
本文擬采用3DES和RSA混合加密算法進行加解密,即采用對稱的3DES算法加密短信數(shù)據(jù),采用非對稱的RSA算法加密3DES的密鑰。這樣密鑰不需要使用私密信道發(fā)送,又提高了整體的加密速度,發(fā)揮了3DES和RSA加密算法的優(yōu)點又避免了各自的缺點,實現(xiàn)了一種新型的混合加密短信的方案。
具體過程如下:假設A是短信發(fā)送方,B是短信接收方,B在本地產(chǎn)生RSA密鑰對,將RSA公鑰通過WIFI等途徑拷貝給A;A在本地輸入3DES密鑰,使用3DES密鑰對明文短信進行加密,再使用RSA公鑰對3DES密鑰進行加密,并將加密后的密鑰和密文短信一同傳送給B;B用本地的RSA私鑰解密出3DES密鑰,并用3DES密鑰對接收到的密文短信進行解密,得到的數(shù)據(jù)即為A所發(fā)送的明文短信。
流程圖如下:
3短信加密實現(xiàn)
在Eclipse中建立工程,AndroidManifest.xml中添加短信的讀寫權限。啟動兩個模擬器,系統(tǒng)自動給這兩個模擬器分配號碼,默認前綴為1555521,啟動的模擬器是5554和5556。將工程運行在兩個模擬器中,5556為短信發(fā)送方,5554為短信接收方。
3.1短信發(fā)送方
實現(xiàn)步驟:
(1)輸入電話號碼,短信內容。
(2)輸入自定義的24位3DES密鑰,并對明文短信運用3DES加密算法進行加密。
(3)從對方拷貝的RSA公鑰文件中讀取RSA公鑰,對3DES密鑰運用RSA加密算法進行加密。
(4)將密文短信以及加密過的密鑰一同調用系統(tǒng)API以短信的形式發(fā)送到接收方。
具體實現(xiàn)結果:
(1)輸人手機號碼:5554
(2)輸入短信內容:happy new year and bestwishes to you.
(3)輸入24位的明文密鑰:ml a2y3u425h6u708 12345678
(4)3DES算法加密后的密文短信:G56pHPqWjRZ6Sb3cTzFDEwfKwZcj+cWFb4dpSJSd9/R4yKGylsd7ow
(5)RSA算法加密后的密鑰結果:Y42XUo5nkoZJuTes6mMw7SRnz3DYR8i/T1ioMl08wKhtBB ldZVyhLvXq0KfhntUr07LbM3T+azCgypK8HDXl3BEm2bUtUeR890gY3BSOILM9R104C60dhISmC5+bUNnh5bPOi+XBfOtUkur7e2HIl2Jd3hrq0TEXL69mcoTncQ=
(6)運行界面:
3.2短信接收方
具體實現(xiàn)步驟:
(1)監(jiān)聽短信,當短信數(shù)據(jù)庫發(fā)生變化時,獲取新接收到的短信。短信收件箱的URL:content://sms/inbox,使用SQL語句查詢數(shù)據(jù)庫中的信息,查詢Id、address、date、body等字段,即獲取到短信內容。
(2)對短信內容進行分解,分解成密文短信和密文密鑰。
(3)獲取本地所生成的RSA私鑰,對密文密鑰運用RSA解密算法進行解密,得到明文密鑰。
(4)使用明文密鑰運用3DES解密算法對密文短信進行解密,得到明文短信并顯示出來。
(5)運行結果界面:
4結語
本文設計并實現(xiàn)了一種基于Android系統(tǒng)的3DES和RSA混合加密短信的方案。其中3DES密鑰為用戶手動輸入的24位密鑰,實現(xiàn)了一次一密,提高了短信加密的安全性。將兩種算法進行混合,充分的發(fā)揮了3DES對稱加密算法速度快、效率高和RSA非對稱加密算法破解難度大、安全性高的優(yōu)點。并且在Android模擬器上對短信加密方案進行了實現(xiàn)和驗證。