基于Android行為的加密應用系統(tǒng)

移動終端的廣泛使用及其日益增加的功能帶來了新的安全問題,為了保護用戶的信息安全,需要了解并解決這些安全性問題。因此,移動平臺信息的加密解密已成為研究的熱點。在傳統(tǒng)加密解密系統(tǒng)中,多數(shù)采用字母數(shù)字組合的鍵盤輸入方式,但是在使用頻率較高的移動平臺上,反復使用高強度密碼進行加密解密比較繁瑣。因而需要設計出一種方便快捷的行為加密算法,即通過驗證使用者對手機的一個動作行為,判斷使用者是否合法。

一、 Android

Android是一個開放性移動設備綜合平臺,它是一個針對移動設備的程序集,其中包括一個操作系統(tǒng),一個中間件和一些關鍵性應用。其中媒體方面對一些通用的audio,video、和圖片格式提供支持。Google發(fā)布了它的移動平臺操作系統(tǒng)Android SDK開發(fā)環(huán)境,包括:一個設備模擬器,調(diào)適工具,內(nèi)存和效率調(diào)優(yōu)工具和一個Ecjipse的插件等。這款模擬器功能非常齊全,用戶可以使用鍵盤輸入,鼠標點擊模擬器按鍵輸入,還可以使用鼠標點擊、拖動屏幕進行操縱。其主屏分辨率達320*480像素,彩屏。所以本文選擇這款模擬器作為開發(fā)環(huán)境。

二、行為加密算法設計

1、行為

行為是有機體在外界環(huán)境刺激下引起的反應,包括內(nèi)在的生理和心理變化。人的行為由5個基本要索構(gòu)成,即行為主體、行為客體、行為環(huán)境、行為手段和行為結(jié)果。奉義所討論的行為特指使用者針對移動平臺作用的生理行為:針對移動平臺的行為有很多,如:以一定頻率翻轉(zhuǎn)手機,拋動手機等等。但是這些行為顯然需要硬件設備的支持,而普通的移動平臺一般不會配備這些設備。由于android手機操作系統(tǒng)提供了觸摸屏環(huán)境,在其GPhone模擬器上設計行為加解密系統(tǒng),可以狹義限定這里討論的行為是指針對手機屏幕的行為,即在觸摸屏上的一系列操作組合。也就是說這里的研究對象是時間和空間的有機
結(jié)合。

2、存儲用戶的行為

首先是空間的存儲。這里所說的空間就是在觸摸屏的環(huán)境下畫圖形,通過圖形的比對作為整個行為加密解密匹配的一部分。為了加密解密便捷,可以認為用戶輸入圖形中每個像素只有著色和未著色2種情況,所以可以直接將原始圖形二值化,將原來的圖形信息保存在—個與屏幕像素相等的矩陣( 320*480)中,并初始化所有矩陣元素為零,而后筆跡劃過的像素點在矩陣中對應單元的值置1。這樣就把用戶輸入的
圖形轉(zhuǎn)換為矩陣形式,方便后面的處理。

其次是時問的存儲。在存儲圖形基礎上,同時記錄下用戶輸入的軌跡,這樣時空結(jié)合,就能準確的描述一個針對移動平臺的行為。在觸摸屏上的動作一共只有3種,即落筆、拖動、抬筆。無論用戶的這個行為多么復雜,總是上述3個步驟的循環(huán)。在移動平臺上,可以通過函數(shù)調(diào)用存取時間,所以這個方法是可行的。當用戶鍵入加密解密行為時,采用表1的數(shù)據(jù)結(jié)構(gòu)保存軌跡。

基于Android行為的加密應用系統(tǒng)

用戶在開始劃出第一筆的時候,分配一個內(nèi)存單元,將heali指針指向剛分配的單元。并通過函數(shù)獲得落筆時刻的坐標信息和時間信息,在用戶抬筆時刻再次獲得抬筆坐標和時間信息,兩次時間相減,即為消逝時間寺如果用戶再次落筆,則再次分配內(nèi)存單元,且將指針p指向新的單元。

3、比對加密解密行為

采用這樣時間空間結(jié)合的方式,將用戶的行為細化為計算機能夠讀懂的結(jié)構(gòu),然后比較加密行為與解密行為是否一致,如果一致,則解密成功,否則解密失敗。本文設定時間空間兩方面的一致才表示解密成功,即:圖形一致;時間一致;落筆、抬筆坐標一致。這3個方面缺一不可,當且僅當3個方面的要求同時滿足才能認為解密成功。在一般加密系統(tǒng)中需要精確匹配,但是同一個人做2次相同的事情一定會存在細微的差別,所以不宜采用過高的精度。所以,在本文需要將收集來的時間空間信息模糊化,使得解密過程能夠順利進行。

首先是圖形的模糊化。根據(jù)數(shù)學形態(tài)學的腐蝕、膨脹算法,對圖像模糊化的數(shù)學表達式為:

基于Android行為的加密應用系統(tǒng)

這與圖像的細化互補,圖像細化的數(shù)學表達式為:

基于Android行為的加密應用系統(tǒng)

式中→表示的足擊中擊不中變換。S是而知圖像進行細化后的像素集合,B表示用來進行細化運算的結(jié)構(gòu)元素,結(jié)構(gòu)元素內(nèi)的每個元素取值為0或1。他可以組成任何一種形狀的圖形,在圖形中有一個中心點;X表示原圖像經(jīng)過二值化后的像素集合。此公式的含義是用B來細化X得到的集合S。S是X的全部像素點除去擊中擊不中變換結(jié)果后的集合。擊中、擊不中與包含的關系如圖1所示。

基于Android行為的加密應用系統(tǒng)

在細化一幅圖像X的過程中應滿足兩個條件:第一,在細化過程中,X應該有規(guī)律的縮?。坏诙?,在X逐步縮小的過程中應到使X的連通性保持不變。

圖像細化的實現(xiàn)步驟如下:

(1)獲得原圖像地址及圖像的高與寬;

(2)開辟內(nèi)存緩沖區(qū),并初始化為255;

(3)如果當前像家為白(背景),則跳過該像素;

(4)如果當前像素為黑(圖像),則定義一個5*5的結(jié)構(gòu)元素,計算5*5的結(jié)構(gòu)元素中各個位置上的值;

(5)依次判斷S模板點是否滿足判定條件,是則刪除該點,否則判斷下一個像素點,直到所有的像素點處理完一遍;

(6)循環(huán)執(zhí)行(5)直到?jīng)]有點可以刪除為止;

(7)將結(jié)果保存到內(nèi)存緩沖區(qū)。

在圖像細化的基礎上對圖像像素點的灰度值取補,而后調(diào)用細化處理函數(shù)對取補后的圖像進行處理,就得到需要的圖像粗化。

加密圖形解密圖形均用上述步驟粗化,然后做異或運算,統(tǒng)計出異或運算后矩陣中為1的元素,再除以粗化后原圖形為1元素總個數(shù),得到圖形容差。公式如下:

基于Android行為的加密應用系統(tǒng)

對于時間的一致,采用如下公式:

基于Android行為的加密應用系統(tǒng)

對于落筆抬筆的一致,采用如下公式:

基于Android行為的加密應用系統(tǒng)

這里的容差可以根據(jù)實際情況設定,開始加密的時候可以有一個學習記憶的過程,實際容差小于設定容差,且上述幾個容差同時滿足就說明解密成功。

三、系統(tǒng)結(jié)構(gòu)設計與實現(xiàn)

1、總體架構(gòu)及流程

采用android系統(tǒng)平臺實現(xiàn)這套系統(tǒng)。對于加密模塊,當程序啟動之后,首先執(zhí)行初始化,然后繪制人機對話界面,這個界面包含:用戶繪圖區(qū)域和菜單欄。在初始化繪圖區(qū)域之后開始進入消息循環(huán),捕捉用戶在觸摸屏上的動作。對用戶在觸摸屏上的落筆、拖動、抬筆3個動作分別連接事件。落筆時需要處理該點坐標,落筆時刻,還需要建立表1所示的節(jié)點。

拖動時相對比較簡單,只需要記錄所劃過點的坐標。抬筆的時候除了記錄坐標之外,還需要完成鏈表的鏈接工作。用戶繪圖完成之后點擊菜單中的“加密完成”則加密模塊完成,解密時,步驟與加密類似仍然先調(diào)用繪圖模塊,而后在消息循環(huán)中不斷存儲用戶行為。在加密解密行為都存儲之后按給定的設計方式進行匹配。

2、行為加密在Android上的實現(xiàn)

根據(jù)上文的分析,整個系統(tǒng)分為如下幾個模塊:界面設計模塊、繪制圖形模塊、加密模塊、解密模塊、匹配模塊6加密、解密以及匹配的模塊已在上文敘述。界面設計模塊以及繪制圖形模塊參考google提供的開發(fā)者文檔中的例程,以及alctivity的處理機制來實現(xiàn)。需要注意的是Android應用程序的基礎功能單元就是Activity-android.app.Activity類中的一個對象。如Activity顯示在屏幕上并且設計它的UI,需要使用VIew和viewgroup-Android平臺基礎的用戶界面表達單元。另外在android系統(tǒng)平臺上開發(fā)用戶界面,并不像在VC等環(huán)境中,用所見即所得的方法編輯程序界面,這里是通過xml語言控制界面的排列。

四、測試

1、測試環(huán)境

由于采用Eclipse3.2配合Android SDK的方式開發(fā)。E-clipse是一種可擴展的開放源代碼IDEo Eclipse允許在同一IDE中集成來自不同供應商的工具,并實現(xiàn)了工具之間的互操作性,從而顯著改變了項目工作流程,使開發(fā)者可以專注在實際的嵌入式目標上,可使用GPhone模擬器作為載體驗證本軟件的有效性和可行性。

2、實例測試

首先啟動程序,進入加密部分軟件。此時,在用戶區(qū)域上鍵人加密行為,如圖2所示。加密行為鍵入完成后,點擊MENU選擇“加密完成”,如圖3所示,至此,加密過程結(jié)束。打開解密軟件,鍵入解密行為,如圖4所示。同樣,點擊MENU選擇“加密完成”。最后調(diào)用匹配函數(shù)判斷解密行為與加密行為是否一致,并在屏幕上顯示,如圖5所示。

基于Android行為的加密應用系統(tǒng)

通過對行為加密這種新興加密方式的應用研究,設計了一套適應于移動平臺的行為加密應用系統(tǒng),論述了行為的定義和加密和解密的判定方法,給出了應用系統(tǒng)的架構(gòu)與處理流程,并在Andmid平臺上用CPhone驗證了該應用系統(tǒng),測試結(jié)構(gòu)表明本文給出的行為加密應用系統(tǒng)是有效的和可行的。

小知識之Android SDK

SDK:(software development kit)軟件開發(fā)工具包。被軟件開發(fā)工程師用于為特定的軟件包、軟件框架、硬件平臺、操作系統(tǒng)等建立應用軟件的開發(fā)工具的集合。

因此,Android SDK 指的是Android專屬的軟件開發(fā)工具包。