江南大學(xué)物聯(lián)網(wǎng)工程學(xué)院 張孫力 鄭 瀚
大多數(shù)的科技產(chǎn)品不具備像人一樣的流動性,而對于每個人來說,隨身攜帶的信息技術(shù)產(chǎn)品大部分都是手機(jī)。因此,手機(jī)成為了隨身攜帶的科學(xué)技術(shù)集成的平臺。近年來智能機(jī)的高速發(fā)展可以證明這一點。隨著手機(jī)中科技功能的增加,手機(jī)在同常生活中的重要性也逐漸加大,而手機(jī)中的數(shù)據(jù)的安全問題也隨之日益突出。相比其它的科技產(chǎn)品,手機(jī)自身的安全性就相對差了很多。它的體積小,便于攜帶,但是丟失和被偷竊的概率大。它與使用者結(jié)合得非常緊密,使用者的很多個人信息都可以由它保存。因此,手機(jī)的遺失對于個人的損失不但是經(jīng)濟(jì)上的,也有將個人隱私暴露于公眾的可能性。這樣,對手機(jī)中個人資料的保護(hù)需求,就顯得尤其重要。
本項目以手機(jī)中的圖像加密技術(shù)為主要的研究主題,結(jié)合當(dāng)前流行的window phone智能手機(jī)操作系統(tǒng),設(shè)計了一種適合在手機(jī)系統(tǒng)上運行的圖像加密應(yīng)用程序。主要功能設(shè)計大體可以分成4個部分,下文將做具體闡述。
在加密圖像前,用戶需要在繪圖區(qū)域隨機(jī)的繪制一張圖像。程序通過一套特征提取算法得到圖像中的特征值,作為接下來混沌密鑰矩陣的產(chǎn)生種子。
利用已獲取的初始密鑰組合,經(jīng)過去初始化處理作為logistic混沌系統(tǒng)的初始參數(shù)。再經(jīng)過一定的迭代、采樣、HASH變換,最終得到和原圖等長等寬的密鑰矩陣,見公式2-1:
其中n*n代表原圖的長和寬,可以不相等。這里表示密鑰矩陣和原圖像素矩陣的尺寸。
通過操作系統(tǒng)提供的API獲取原圖的像素矩陣,再利用已獲得的等尺寸的密鑰矩陣對原圖的像素矩陣進(jìn)行像素值的加密處理和Anlold像素空間位置的置亂,最終獲得加密后的圖片。
通過操作系統(tǒng)提供的API獲取原圖的像素矩陣,再利用已獲得的等尺寸的密鑰矩陣對原圖的像素矩陣進(jìn)行像素值的加密處理和Anlold像素空間位置的置亂,最終獲得加密后的圖片。
本系統(tǒng)中,通過借助數(shù)據(jù)庫技術(shù)進(jìn)行初始密鑰的上傳和下載,加密后的圖像能進(jìn)行網(wǎng)絡(luò)發(fā)送,并在異地進(jìn)行有效解密。在本系統(tǒng)中用到的數(shù)據(jù)庫為SQLserver關(guān)系型數(shù)據(jù)庫。它是一種快捷、高效、安全等級很高的數(shù)據(jù)庫,非常適合在WCF架構(gòu)中作為云端數(shù)據(jù)庫的部署。將SQLServer當(dāng)作一個超文本傳輸協(xié)議(HTTP)偵聽器,并且為網(wǎng)絡(luò)服務(wù)中心應(yīng)用軟件提供一個新型的數(shù)據(jù)存取功能。
為實現(xiàn)軌跡特征值的提取,將相關(guān)代碼封裝成了一個類庫Gesturec.cs。整個特征提取過程分為以下三個部分:
(1)建立軌跡特征知識庫:將一周360度分成8個區(qū)域塊,分別以數(shù)字(0-7)代表。從而將用戶的滑屏軌跡方向抽象成了不同長度的數(shù)字序列。預(yù)先在軌跡知識數(shù)據(jù)庫中存入一定量的軌跡數(shù)字序列。
(2)獲取滑屏軌跡向量:通過timer控件每隔20ms獲取一次當(dāng)前屏幕接觸點的坐標(biāo)。通過和上一個20ms記錄的坐標(biāo)點進(jìn)行三角函數(shù)計算,得到一個向量值a(x,y)。將|a|與標(biāo)準(zhǔn)的閾值長度對比。當(dāng)|a|超過閾值時才則判斷為有效閾值,將其加入軌跡臨時數(shù)組。此方法可以避免用戶滑屏?xí)r暫時停下而導(dǎo)致將大量不用的軌跡向量加入軌跡臨時數(shù)組的狀況,從而保證了軌跡向量獲取的有效性、操作性。
(3)參數(shù)獲?。簩⑵ヅ涞玫降淖址麉?shù)進(jìn)行MD5變換得到一個隨機(jī)字符序列,通過string_to_int(自己定義的函數(shù),具有把字符串轉(zhuǎn)化成數(shù)字的功能)轉(zhuǎn)換成數(shù)字。至此,完成了用戶滑屏軌跡特征值提取,成功獲取到了混沌加密系統(tǒng)的初始密鑰組合u和x。
了能對原圖像進(jìn)行像素逐位的加密處理,需要在內(nèi)存中構(gòu)建一個與待加密原圖像等尺寸的混沌密鑰矩陣。具體的產(chǎn)生流程可以分為幾個步驟。
(1)去初始化:為進(jìn)一步保證隨機(jī)性,提高抗窮舉,抗分析能力。對由滑屏得到的初始密鑰帶入logistic混沌方程,迭代1000次,并取第1001次的結(jié)果作為真實的密鑰種子。這一步稱為去初始化。
(2)運行混沌系統(tǒng):有了初始參數(shù)之后,這一步就可以開始產(chǎn)生一個混沌序列了。將初始密鑰組合帶入x(n+1)=u*x(n)*(1-x(n))這一混沌方程,得到一個混沌序列。
(3)等步采樣:由于混沌系統(tǒng)的標(biāo)度特性以及初值高度敏感性,在這一步對獲得的混沌序列進(jìn)行了等步采樣,以提高密鑰的抗窮舉性。
(4)循環(huán)處理:通過之前的混沌序列方程和等步采樣得到了一個維數(shù)為3的數(shù)組oriKey[3]。此數(shù)組的3個分量分別對應(yīng)于像素矩陣中的單個點的color.R(紅色分量),color.G(綠色分量),color.B(藍(lán)色分量)。對(3)步進(jìn)行循環(huán)處理,重點是,這里每次用于產(chǎn)生混沌序列的初始密鑰都是上一次運行的結(jié)果,這樣保證了混沌序列的隨機(jī)性。
程序一直循環(huán)直至得到了和原圖等尺寸的混沌密鑰矩陣,產(chǎn)生的混沌密鑰矩陣是一個三維矩陣(width,height,3)其中第三維的每個元素是一個混沌密鑰數(shù)組。
(1)圖像壓縮的概念:圖像壓縮是數(shù)據(jù)壓縮技術(shù)在數(shù)字圖像上的應(yīng)用,它的目的是減少圖像數(shù)據(jù)中的冗余信息從而用更加高效的格式存儲和傳輸數(shù)據(jù)。
(2)圖像壓縮的主要目標(biāo):圖像壓縮的主要目標(biāo)就是在給定bit-rate(位速)或者壓縮比下實現(xiàn)最好的圖像質(zhì)量。
本系統(tǒng)采用的.NET framework提供的GDI+圖形設(shè)備接口,對原圖像進(jìn)行了無損壓縮,從而有效的提高了進(jìn)程運行效率。
根據(jù)時間復(fù)雜度的定義T(n)=O(Rn2),圖片的尺寸越大,采用非壓縮的加密手段效果將急劇下降。所以這里采用無損壓縮技術(shù)具有很強(qiáng)的實際意義。
本模塊是具體實現(xiàn)圖像加密的關(guān)鍵模塊。具體的步驟可以分為以下2步:
(1)基于像素值的加密:在計算機(jī)世界中,我們之所以能看到一張張豐富多彩的圖像,是因為計算機(jī)將圖片以一種像素矩陣的形式保存在硬盤或者內(nèi)存中。每一個像素點都有對應(yīng)的一個二進(jìn)制值。而我們通過某種算法改變這個二進(jìn)制像素值,即實現(xiàn)了加密圖像的操作。
在本模塊中,我們使用之前生成好的等尺寸的混沌密鑰矩陣和像素矩陣進(jìn)行逐分量的異或,從而達(dá)到改變像素值的效果,實現(xiàn)了加密。(對于每個像素點的R、G、B分量,都進(jìn)行異或加密操作,從而獲得一個新的隨機(jī)像素值的像素點。遍歷后,整張圖片的像素值都變成了隨機(jī)值點。)
(2)基于像素點空間位置的置亂加密:所謂“置亂”,就是將圖像的信息次序打亂,將a像素移動到b像素的位置上,b像素移動到c像素的位置上使其變換成雜亂無章難以辨認(rèn)的圖像。
數(shù)字圖像置亂加密技術(shù)是指發(fā)送方借助數(shù)學(xué)或其他領(lǐng)域的技術(shù),對一幅有意義的數(shù)字圖像作變換使之變成一幅雜亂無章的圖像再用于傳輸。在圖像傳輸過程中,非法截獲者無法從雜亂無章的圖像中獲得原圖像信息,從而達(dá)到圖像加密的目的。接收方卻可以經(jīng)去亂解密,恢復(fù)原圖像。
通過像素點空間位置的置亂,加密后的圖像可以有效的防止統(tǒng)計分析、像素相關(guān)性分析。從而進(jìn)一步提高密圖的抗破解能力,提高相對安全性。
在本模塊中,我們使用二維離散Anlold變換在像素值加密的基礎(chǔ)上進(jìn)行像素空間位置的置亂。
Arnold變換如下:
N為數(shù)字圖像矩陣的階。
圖像解密的過程為加密的逆過程,即將自變量和因變量的位置調(diào)換,即可完成解密。
密圖發(fā)送成功后,要在異地解密圖像,獲得原始圖像的隱私信息,就必須擁有加密時的初始密鑰。本項目最終目標(biāo)是通過WCF構(gòu)建云服務(wù)器,為用戶提供高效,安全,快捷的圖像分享體驗。