江南大學物聯網工程學院 張孫力 鄭 瀚
大多數的科技產品不具備像人一樣的流動性,而對于每個人來說,隨身攜帶的信息技術產品大部分都是手機。因此,手機成為了隨身攜帶的科學技術集成的平臺。近年來智能機的高速發展可以證明這一點。隨著手機中科技功能的增加,手機在同常生活中的重要性也逐漸加大,而手機中的數據的安全問題也隨之日益突出。相比其它的科技產品,手機自身的安全性就相對差了很多。它的體積小,便于攜帶,但是丟失和被偷竊的概率大。它與使用者結合得非常緊密,使用者的很多個人信息都可以由它保存。因此,手機的遺失對于個人的損失不但是經濟上的,也有將個人隱私暴露于公眾的可能性。這樣,對手機中個人資料的保護需求,就顯得尤其重要。
本項目以手機中的圖像加密技術為主要的研究主題,結合當前流行的window phone智能手機操作系統,設計了一種適合在手機系統上運行的圖像加密應用程序。主要功能設計大體可以分成4個部分,下文將做具體闡述。
在加密圖像前,用戶需要在繪圖區域隨機的繪制一張圖像。程序通過一套特征提取算法得到圖像中的特征值,作為接下來混沌密鑰矩陣的產生種子。
利用已獲取的初始密鑰組合,經過去初始化處理作為logistic混沌系統的初始參數。再經過一定的迭代、采樣、HASH變換,最終得到和原圖等長等寬的密鑰矩陣,見公式2-1:

其中n*n代表原圖的長和寬,可以不相等。這里表示密鑰矩陣和原圖像素矩陣的尺寸。
通過操作系統提供的API獲取原圖的像素矩陣,再利用已獲得的等尺寸的密鑰矩陣對原圖的像素矩陣進行像素值的加密處理和Anlold像素空間位置的置亂,最終獲得加密后的圖片。
通過操作系統提供的API獲取原圖的像素矩陣,再利用已獲得的等尺寸的密鑰矩陣對原圖的像素矩陣進行像素值的加密處理和Anlold像素空間位置的置亂,最終獲得加密后的圖片。
本系統中,通過借助數據庫技術進行初始密鑰的上傳和下載,加密后的圖像能進行網絡發送,并在異地進行有效解密。在本系統中用到的數據庫為SQLserver關系型數據庫。它是一種快捷、高效、安全等級很高的數據庫,非常適合在WCF架構中作為云端數據庫的部署。將SQLServer當作一個超文本傳輸協議(HTTP)偵聽器,并且為網絡服務中心應用軟件提供一個新型的數據存取功能。
為實現軌跡特征值的提取,將相關代碼封裝成了一個類庫Gesturec.cs。整個特征提取過程分為以下三個部分:
(1)建立軌跡特征知識庫:將一周360度分成8個區域塊,分別以數字(0-7)代表。從而將用戶的滑屏軌跡方向抽象成了不同長度的數字序列。預先在軌跡知識數據庫中存入一定量的軌跡數字序列。
(2)獲取滑屏軌跡向量:通過timer控件每隔20ms獲取一次當前屏幕接觸點的坐標。通過和上一個20ms記錄的坐標點進行三角函數計算,得到一個向量值a(x,y)。將|a|與標準的閾值長度對比。當|a|超過閾值時才則判斷為有效閾值,將其加入軌跡臨時數組。此方法可以避免用戶滑屏時暫時停下而導致將大量不用的軌跡向量加入軌跡臨時數組的狀況,從而保證了軌跡向量獲取的有效性、操作性。
(3)參數獲取:將匹配得到的字符參數進行MD5變換得到一個隨機字符序列,通過string_to_int(自己定義的函數,具有把字符串轉化成數字的功能)轉換成數字。至此,完成了用戶滑屏軌跡特征值提取,成功獲取到了混沌加密系統的初始密鑰組合u和x。
了能對原圖像進行像素逐位的加密處理,需要在內存中構建一個與待加密原圖像等尺寸的混沌密鑰矩陣。具體的產生流程可以分為幾個步驟。
(1)去初始化:為進一步保證隨機性,提高抗窮舉,抗分析能力。對由滑屏得到的初始密鑰帶入logistic混沌方程,迭代1000次,并取第1001次的結果作為真實的密鑰種子。這一步稱為去初始化。
(2)運行混沌系統:有了初始參數之后,這一步就可以開始產生一個混沌序列了。將初始密鑰組合帶入x(n+1)=u*x(n)*(1-x(n))這一混沌方程,得到一個混沌序列。
(3)等步采樣:由于混沌系統的標度特性以及初值高度敏感性,在這一步對獲得的混沌序列進行了等步采樣,以提高密鑰的抗窮舉性。
(4)循環處理:通過之前的混沌序列方程和等步采樣得到了一個維數為3的數組oriKey[3]。此數組的3個分量分別對應于像素矩陣中的單個點的color.R(紅色分量),color.G(綠色分量),color.B(藍色分量)。對(3)步進行循環處理,重點是,這里每次用于產生混沌序列的初始密鑰都是上一次運行的結果,這樣保證了混沌序列的隨機性。
程序一直循環直至得到了和原圖等尺寸的混沌密鑰矩陣,產生的混沌密鑰矩陣是一個三維矩陣(width,height,3)其中第三維的每個元素是一個混沌密鑰數組。
(1)圖像壓縮的概念:圖像壓縮是數據壓縮技術在數字圖像上的應用,它的目的是減少圖像數據中的冗余信息從而用更加高效的格式存儲和傳輸數據。
(2)圖像壓縮的主要目標:圖像壓縮的主要目標就是在給定bit-rate(位速)或者壓縮比下實現最好的圖像質量。
本系統采用的.NET framework提供的GDI+圖形設備接口,對原圖像進行了無損壓縮,從而有效的提高了進程運行效率。
根據時間復雜度的定義T(n)=O(Rn2),圖片的尺寸越大,采用非壓縮的加密手段效果將急劇下降。所以這里采用無損壓縮技術具有很強的實際意義。
本模塊是具體實現圖像加密的關鍵模塊。具體的步驟可以分為以下2步:
(1)基于像素值的加密:在計算機世界中,我們之所以能看到一張張豐富多彩的圖像,是因為計算機將圖片以一種像素矩陣的形式保存在硬盤或者內存中。每一個像素點都有對應的一個二進制值。而我們通過某種算法改變這個二進制像素值,即實現了加密圖像的操作。
在本模塊中,我們使用之前生成好的等尺寸的混沌密鑰矩陣和像素矩陣進行逐分量的異或,從而達到改變像素值的效果,實現了加密。(對于每個像素點的R、G、B分量,都進行異或加密操作,從而獲得一個新的隨機像素值的像素點。遍歷后,整張圖片的像素值都變成了隨機值點。)
(2)基于像素點空間位置的置亂加密:所謂“置亂”,就是將圖像的信息次序打亂,將a像素移動到b像素的位置上,b像素移動到c像素的位置上使其變換成雜亂無章難以辨認的圖像。
數字圖像置亂加密技術是指發送方借助數學或其他領域的技術,對一幅有意義的數字圖像作變換使之變成一幅雜亂無章的圖像再用于傳輸。在圖像傳輸過程中,非法截獲者無法從雜亂無章的圖像中獲得原圖像信息,從而達到圖像加密的目的。接收方卻可以經去亂解密,恢復原圖像。
通過像素點空間位置的置亂,加密后的圖像可以有效的防止統計分析、像素相關性分析。從而進一步提高密圖的抗破解能力,提高相對安全性。
在本模塊中,我們使用二維離散Anlold變換在像素值加密的基礎上進行像素空間位置的置亂。
Arnold變換如下:

N為數字圖像矩陣的階。
圖像解密的過程為加密的逆過程,即將自變量和因變量的位置調換,即可完成解密。
密圖發送成功后,要在異地解密圖像,獲得原始圖像的隱私信息,就必須擁有加密時的初始密鑰。本項目最終目標是通過WCF構建云服務器,為用戶提供高效,安全,快捷的圖像分享體驗。