研究背景
直接儲存商業(yè)檔案且意外地被他人開啟,這實在是十分危險的。其實,現(xiàn)在市面上有很多加密軟件能夠解決以上問題??墒?,它們始終未能吸引使用者使用。有調查數(shù)據(jù)顯示,67%的公司沒有將儲存在U盤的商業(yè)文件加密,所以推出一種方便使用者保護檔案的軟件是十分必要的。
只將文件加密并不夠安全,因為文件加密后,亂碼數(shù)據(jù)還會引起不懷好意者的疑心,他們可能會嘗試破解文件真正的內容。因此需要更好地隱藏加密文件,使人們不會發(fā)現(xiàn)其中包含有一些機密信息。因此,我研發(fā)了CryptoDefender來解決這個問題,它只需一鍵點擊就可為文檔加密。該軟件可以作為插件添加到各種應用軟件中,如Word、Excel和Access等。一次點擊后保護文件的程序就可以執(zhí)行,自動加密和更改待加密文檔的格武,以減少他人對文件的疑心。
工作原理
使用CryptoDefender加密文件時,使用者只需輸入密碼和選擇圖像,之后待加密文件就會加密為一張圖像。換言之加密后的數(shù)據(jù)會儲存在圖形文件中而不是原來的文件格式。
在恢復文件時,使用者需要選擇含有加密文件的圖像文件并輸入密碼,CryptoDefender就會會把檔案解密從而得出原來的文件。保護和解密的流程都很簡單,使用者額外的工作就是只需要輸入密碼及選擇圖像,非常方便。
圖1顯示了CryptoDefender保護文件的工作流程:
◇用CryptoDefender保存文件;
◇該文件被加密成密文(這是一個包含無意義字符的文件),
◇由于密文會引起他人疑心,因此密文會被收藏于圖像里。
如果密文不是存放在圖像文件里,則使用普通的應用軟件開啟密文文件后會出現(xiàn)一些亂碼,這就會引起別人的疑心。CryptoDefender進一步把密文儲存在圖像中,其他人就不容易知道哪張圖像包含經(jīng)過加密的密文,從而減低疑心。
CryptoDefender的程序實現(xiàn)
插件與功能區(qū)界面
CryptoDefender是多種應用軟件的附加插件,它給軟件提供了更多的功能且不會影響軟件原本的功能。在功能列上,它是一個按鍵,并提供另一種方法去儲存及開啟檔案。CryptoDefender適合各類支持插件的應用軟件。
CryptoDefender已可以在微軟Office 2007下成功運行,例如Word、Excel等。安裝CryptoDefender后,在這些軟件界面的功能區(qū)中,會增加一個功能列“CryptoDefender”,功能列上有3個功能:“Protect(加密)”、“Decrypt(解密)”以及“QuickProtect(快速加密)”,見圖2。使用者只需要按下相應按鍵,檔案就能夠加密和解密,而不會占用太多的時間,因此這是一個安全又方便的工具。
加密
CryptoDefender的加密操作中,會進行幾個步驟去增加文件的復雜性。它們是重新排列、數(shù)據(jù)與密碼相加及哈希函數(shù)處理。用CryptoDefender加密后,數(shù)據(jù)經(jīng)過了2次重新排列,因此它的復雜性增加。程序使用了哈希函數(shù)(散列函數(shù))來保護密碼。它將密碼轉化為亂碼,而且亂碼不能通過比較操作來破解密碼。此外,加密和解密的速度亦相當之快,所以CryptoDefender的加密方法是安全又快捷的。
數(shù)據(jù)隱藏
數(shù)據(jù)隱藏的第一種方法是程序直接讀取數(shù)據(jù),再把數(shù)據(jù)轉化為24位位圖一個個像素的顏色值。因此,3個
字節(jié)的數(shù)據(jù)會組成一個像素,而這些像素就會組成一張圖像。這個方法能夠產(chǎn)生好像電視機上的雪花一樣的圖像,而且不會直接讓人看到加密后的數(shù)據(jù)。可是因為它實在太特別,一般人不會制作這樣的圖,所以圖像依然會引起別人的注意,因此這個方法并不太適合用來收藏數(shù)據(jù)。
第二種方法有所進步。這個方法會把數(shù)據(jù)先變?yōu)閳D像,每3個字節(jié)的數(shù)據(jù)會組成一個像素,圖像的效果與方法一相同;然后,程序會把顏色值分開到2張圖像,當2個圖像的對應點的顏色值相加,就可以得出原來的顏色值。例如,以方法一生成的原圖某個像素的RGB顏色值是90、60、30,分成2張圖后第一張圖的RGB顏色值是30、50、10,第二張圖的RGB顏色值是60、10、20。如果將兩圖片重疊,顏色值相加,程序就能得出加密后的數(shù)據(jù)90、60、30。這個方法以2張圖像輸出,當這2張圖像的RGB顏色值相加后,就會得出加密后資料的RGB顏色值。而這兩張圖的效果與方法一生成的圖一樣。加密后的數(shù)據(jù)會收藏于2張分開的圖像,因此數(shù)據(jù)比方法一得出的數(shù)據(jù)更不容易被破解。但這個方法對于使用者實在不方便,而且加密后的數(shù)據(jù)還是容易引起人們的注意,因為圖像所顯示的是沒有意義的內容。
第三種隱藏方法需要一張現(xiàn)成的圖像進行加密。程序會將原圖的每一個像素擴展至幾個像素使它們組成一個正方塊。而正方塊的大小是按加密后的數(shù)據(jù)量而定的。在正方塊里,一半的像素會用來儲存加密后的數(shù)據(jù),而余下的一半則保留它原來的顏色。而這些像素的正方塊就會組成一張新的圖像。
例如:檔案A需要加密,而圖像A會用來隱藏數(shù)據(jù)。程序把圖像A的每個像素擴展成4、9、16等等大小的正方塊,有些像素會用來隱藏數(shù)據(jù),有些就會被保留。例如在一個4個像素的正方塊中,2個像素會用來收藏加密數(shù)據(jù),2個像素會保留它的顏色以維持原來圖像A的顏色。這個方法以正常的圖像作輸出,圖像的質量亦比方法一、二要好。這種方法能降低黑客的疑心,因為圖片顯示的內容是真實且較普通的??墒?,圖像還是帶有雪花,還有可能引起黑客的疑心。此外,使用這種方法,文件最小也是原文件的4倍。
CryptoDefender所采用的方法與以上三種都不同,它利用RGB的概念來隱藏數(shù)據(jù)。在24位的位圖中,RGB是代表每個像素的顏色,它們各為8位。每個字節(jié)最左邊的位擁有最高的值,而最右則擁有最小的值。因此,轉變最右位(低位)的影響對整個字節(jié)及顏色的影響都是十分小的。此外,人類的肉眼對紅色最敏感,因此對于紅色只改變最低2位,綠色和藍色則改變最低3位,因此1個像素會儲存1個字節(jié)的加密后的數(shù)據(jù)。如果圖像大干加密后的數(shù)據(jù),余下的像素就用隨機的數(shù)據(jù)做相同的取代處理。與上述三個方法相比,這個方法產(chǎn)生的圖像質量最高,數(shù)據(jù)隱藏的壓縮率也很高。最后得出的圖與原圖一樣大小,圖像的顏色轉變也很小,肉眼是不容易辨認出圖像的變化的。這個方法的唯一限制就是不要選擇一些太有名或太流行的圖像,這樣他人便很難知道圖像有所改變。
數(shù)據(jù)結構
圖3顯示了加密后的數(shù)據(jù)的結構。加密后的數(shù)據(jù)會分為兩部分。第一部分是經(jīng)過重新排列及加上密碼的數(shù)據(jù)。為滿足重新排列的需要,可能要添加最多8個字節(jié)。第二部分是由密碼轉化的32個字節(jié)的亂碼信息。如果使用者只選擇加密,文件最后的字節(jié)就會寫作“0”,以分辨檔案只進行加密或同時進行加密與數(shù)據(jù)隱藏。加密后,數(shù)據(jù)會隱藏于一張位圖。圖像的結構又會分作5部分。圖4為保護后的文件結構。第一部分是位圖的文件頭。第二部分是加密后的數(shù)據(jù)。第三部分用1個字節(jié)儲存檔案的格式。第四部分是當位圖給予儲放數(shù)據(jù)的空間多于加密的數(shù)據(jù)時添加的隨機數(shù)據(jù)。在第五部分,用8個字節(jié)來儲存檔案的大小,G值用來儲存檔案的格式,最后一個字節(jié)會被寫為“1”。
程序結構
這個插件的主要3個檔案分別是:CryptoDefender.docm、protect.exe及encrypt.exe,它們是用VBA和C#編寫出來的。其工作流程見圖5。
安全測試
安全測試時使用brute-forceattack(窮舉法攻擊)去破解加密后的檔案。這個方法是最流行的破解方法。破解計算機使用的CPU是Intel core訂。在這種硬件條件下,破解加密后的文件理論上需要的時間約為9萬年。實際上,真正破解所需的時間會比預期的短,因為CPU的技術會每年提升。例如,如果預期的破解時間是100年,最后可能只需10年。即便如此,破解的時間也是可以接受的。
總結及發(fā)展設想
CryptoDefender的出現(xiàn)讓使用者能夠更方便地防止數(shù)據(jù)外泄的意外發(fā)生。CryptoDefender是一個應用軟件中的插件,其一鍵保護的操作方式節(jié)省了使用者的時間,能夠保護檔案及防止檔案被他人直接打開閱讀。
在數(shù)據(jù)加密時,CryptoDefender把數(shù)據(jù)重新排列2次去增加數(shù)據(jù)的復雜性。此外,數(shù)據(jù)會與密碼相加組成密文,又用哈希函數(shù)作為密碼的保護。因此加密的數(shù)據(jù)及密碼都十分安全。
在數(shù)據(jù)隱藏時,CryptoDefender使用了24位位圖去隱藏數(shù)據(jù)。高質量的圖像輸出、高壓縮比率及圖像輸出的大小與原圖大小一樣是用它來做數(shù)據(jù)隱藏的好處。數(shù)據(jù)隱藏最好的方法是減低別人的疑心,CryptoDefender恰好做到了這一點。
CryptoDefender下一步的改進就是當使用者要保護文件時,只需按下按鍵,計算機的攝像頭便會立即拍攝圖像進行保護。這既方便使用者使用,安全度也相對增加。因為被加密文件打開后,只是一張使用者的自拍照,沒有什么特別,他人不會知道圖像里面隱藏了數(shù)據(jù)。
其次,程序不但應該能夠在Windows中使用,還希望在更多的平臺中使用,例如Linux、Windows Mobile等不同操作系統(tǒng)中的更多應用軟件中都應該可以安裝CryptoDefender,使該軟件能夠得到普及。
接著,CryptoDefender應該能夠給使用者提供更多選擇,讓使用者可以把加密后的文件轉為不同的文件格式,比如聲音文件(mp3)、壓縮圖文件(jpg)、視頻文件(mp4)等。如果一個文件夾中存放了不同格式的文件,就更加不易引起他人的疑心。
最后,程序的結構還可以優(yōu)化,使得運算的工作量減少,使用戶可以更加快捷方便地使用。
專家評語
該項目創(chuàng)新性地設計了一種數(shù)據(jù)加密方法,提出了一種新穎的文件隱藏方式,即降低他人的疑心。該選題具有重要的應用價值,具有產(chǎn)品化前景,希望進一步完