摘 要: 文件夾作為計(jì)算機(jī)操作系統(tǒng)組織電子信息文件的一種載體,其安全性越來越受到人們的重視。針對基于傳統(tǒng)密碼或單純生物特征在身份認(rèn)證中存在的安全問題,設(shè)計(jì)了一種基于人臉特征與密碼技術(shù)相結(jié)合的雙重身份認(rèn)證方案,并實(shí)現(xiàn)了由基于Eigenface人臉識別、DES密碼認(rèn)證和用戶接口組成的原型系統(tǒng)。通過實(shí)驗(yàn)表明,該方法能夠快速有效地實(shí)現(xiàn)對文件夾的認(rèn)證和加解密,并能提高文件夾的安全性。
關(guān)鍵詞: 文件夾加密; Eigenface人臉識別; DES密碼認(rèn)證; 雙重身份認(rèn)證
中圖分類號: TN918?34; TP301.6 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2016)03?0080?04
Method of folder encryption based on face recognition and password authentication
TANG Shoujun
(The Open University of Guangdong, Guangzhou 510091, China)
Abstract: Folder as an information carrier to organize the electronic information document in computer operating system, its safety has been increasingly paid more attention. Since the identity authentication based on traditional password or pure biometric feature has security risk, a dual identity authentication scheme based on the integration of facial features and cryptography technology was designed, and its prototype system composed of face recognition based on Eigenface, DES password authentication and user interface was implemented. The experimental results show that the method can quickly and effectively realize the authentication and encryption/decryption of the folder, and improve the folder security.
Keywords: folder encryption; Eigenface?based face recognition; DES password authentication; dual identity authentication
0 引 言
當(dāng)今信息社會,計(jì)算機(jī)文件已成為當(dāng)前人們保存日常信息的重要載體,而文件夾又是計(jì)算機(jī)系統(tǒng)進(jìn)行文件組織和管理的重要形式。如何控制、保護(hù)文件夾信息資源成為一個(gè)極其復(fù)雜而且富有挑戰(zhàn)性的問題。身份認(rèn)證是安全信息系統(tǒng)的第一道屏障,由于目前廣泛使用的密碼認(rèn)證等方式自身存在固有的弱點(diǎn)[1] 導(dǎo)致該技術(shù)面臨著嚴(yán)峻的挑戰(zhàn),已顯得越來越不適應(yīng)現(xiàn)代科技的發(fā)展和社會的進(jìn)步,需要一種更加方便可靠的方法進(jìn)行身份認(rèn)證。
在不同的身份認(rèn)證方法中,人臉識別有其自身特殊的優(yōu)勢[2],在身份認(rèn)證系統(tǒng)中有著重要的地位:
(1) 非侵?jǐn)_性。人臉識別無需干擾人們的正常行為就能較好地達(dá)到識別效果,無需擔(dān)心被識別者懼怕麻煩的預(yù)定使用規(guī)范。
(2) 采集設(shè)備簡單,使用快捷。
(3) 人臉識別身份認(rèn)證,人和機(jī)器都可以使用人臉圖片進(jìn)行識別,使得人和機(jī)器可以配合工作。
但是,單純的人臉識別認(rèn)證,仍然存在一些隱患。為了解決傳統(tǒng)密碼或單純生物特征在身份認(rèn)證中存在的安全問題,本文針對文件夾設(shè)計(jì)了基于人臉識別和密碼雙重身份認(rèn)證的文件夾加密方法。旨在利用傳統(tǒng)密碼認(rèn)證和人臉識別雙重身份認(rèn)證來提高加密強(qiáng)度,有效保證用戶的文件夾信息安全。
1 基于人臉識別和密碼認(rèn)證的文件夾加密方法
基于人臉識別和密碼認(rèn)證的文件夾加密方法主要包括人臉識別和口令加解密兩部分。
人臉識別技術(shù)就是利用計(jì)算機(jī)分析人臉圖像,從中提取有效的識別信息,用來辨認(rèn)身份的一種技術(shù)。本方法中人臉識別認(rèn)證部分作為先于密碼的第一層認(rèn)證,主要通過四個(gè)功能依次完成。
(1) 圖像的采集:采用攝像頭實(shí)時(shí)抓取圖像。
(2) 人臉檢測:采用Adaboost實(shí)時(shí)人臉檢測算法從輸入圖像中檢測出人臉。
(3) 人臉化簡和特征提取:主要包括子圖像的灰度化和大小的歸一化。
(4)人臉識別:采用Eigenface算法,根據(jù)已知的人臉信息判斷待識別的人臉是否屬于系統(tǒng)中的已知用戶。
口令加解密采用傳統(tǒng)口令加密技術(shù)對文件夾進(jìn)行手動加解密,其優(yōu)點(diǎn)是軟件容易實(shí)現(xiàn),并且操作簡單。人臉識別認(rèn)證作為文件夾加解密的第一道安全屏障,在通過人臉識別認(rèn)證的情況下,才能進(jìn)入下一步的加解密認(rèn)證。本方法的結(jié)構(gòu)如圖1所示。
1.1 人臉識別
1.1.1 圖像實(shí)時(shí)采集和化簡
OpenCV[3]是Intel?開源計(jì)算機(jī)視覺庫。它由一系列 C 函數(shù)和少量 C++ 類構(gòu)成,實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺方面的很多通用算法。OpenCV對Adaboost人臉檢測算法、Eigenface本征臉人臉識別算法都有比較完整的實(shí)現(xiàn)[4?5]。
利用OpenCV攝像頭驅(qū)動程序,實(shí)時(shí)驅(qū)動攝像頭采集用戶上半身的正面圖像,將采集到的圖像保存起來作為后續(xù)人臉檢測和識別的源圖像。
為了給人臉識別提供歸一化的人臉圖像,需要對人臉檢測到的人臉圖像進(jìn)行化簡。歸一化主要包括直方圖均衡化、圖像的灰度化和尺寸的歸一化。直方圖均衡化主要是為了增強(qiáng)圖像以初步消除光照的影響?;叶然统叽鐨w一化則是為了計(jì)算的速度和方便。
1.1.2 基于Adaboost的人臉檢測
人臉檢測是指在輸入圖像中確定所有存在的人臉的位置、大小、姿勢的過程。近年來出現(xiàn)了大量的人臉檢測方法,但是各種方法都有一定的不足。本方法采用的是一種基于Adaboost的人臉檢測算法[6],該算法建立了第一個(gè)真正實(shí)時(shí)的人臉檢測系統(tǒng),從根本上解決了檢測速度的問題,同時(shí)也有較好的檢測效果。
Adaboost人臉檢測方法是基于Harr_Like特征、積分圖、Adaboost算法的實(shí)現(xiàn)方法[7?8]。算法的基本思想是:給定一個(gè)弱學(xué)習(xí)算法和一個(gè)訓(xùn)練集,其中,[Xi]是輸入的訓(xùn)練樣本向量,[Yi]是分類的類別標(biāo)志。由于人臉檢測的任務(wù)是判斷某幅圖像是否是人臉圖像,因而可以視為二分類問題。初始化時(shí),對所有訓(xùn)練樣本均賦予一個(gè)相同的權(quán)重,然后用該弱學(xué)習(xí)算法對訓(xùn)練樣本集進(jìn)行[T]輪訓(xùn)練。在每一輪訓(xùn)練結(jié)束后,對訓(xùn)練失敗的樣本賦予較大的權(quán)重,以便讓學(xué)習(xí)算法在后來的學(xué)習(xí)中主要對比較難的訓(xùn)練樣本進(jìn)行學(xué)習(xí)。這樣,就可以得到一個(gè)預(yù)測函數(shù)序列,其中,預(yù)測效果比較好的預(yù)測函數(shù)的權(quán)重較大。最終的預(yù)測函數(shù)[β]采用一種有權(quán)重的投票方式產(chǎn)生。
Adaboost方法基于弱學(xué)習(xí)模型(Weak Leaning Model),它假設(shè)存在弱學(xué)習(xí)算法,這些算法獲得分類器的預(yù)測能力只比隨機(jī)預(yù)測好一些,通過推進(jìn)弱學(xué)習(xí)算法,從而得到任意高精度的分類器。Adaboost訓(xùn)練強(qiáng)分類器的算法描述如下。
(1) 給定訓(xùn)練樣本集:
式中:[xi]表示樣本特征向量;[yi]表示訓(xùn)練結(jié)果,[yi=0]表示樣本為負(fù)樣本,[yi=1]表示樣本為正樣本;[n]為訓(xùn)練樣本的總量。
(2) 初始化樣本權(quán)重[wl,i,]即訓(xùn)練樣本的初始概率分布。樣本的權(quán)重初始化為[1n]。
(3) 對于[t=1,2,…,T](T為迭代次數(shù))。
① 歸一化樣本的權(quán)值公式為:
② 對于每一個(gè)特征[j,]調(diào)用弱學(xué)習(xí)算法,訓(xùn)練一個(gè)弱分類器[hj,]計(jì)算該分類器的錯(cuò)誤率[gf。]
③ 選擇擁有最小錯(cuò)誤率的最佳弱分類器。
④ 按最佳弱分類器,重新調(diào)整樣本的權(quán)重。
式中:[ei=0]表示[x]被正確地分類;[ei=1]表示[x]被錯(cuò)誤地分類。這樣就可以增大分類錯(cuò)誤樣本的權(quán)重,降低分類正確樣本的權(quán)重,下一次迭代時(shí)弱分類器的選擇就會重視上一次分類錯(cuò)誤的樣本。
(4) 最后生成強(qiáng)分類器。
最后在確定人臉的具體位置時(shí),將循環(huán)遍歷圖像得到的由預(yù)測函數(shù)判斷為人臉圖像的各個(gè)圖像子區(qū)域求均值,所得到的區(qū)域便是人臉?biāo)诘木唧w位置。
1.1.3 Eigenface人臉識別
目前,對于人臉識別學(xué)者已經(jīng)提出了相當(dāng)多的識別算法[9]。其中基于PCA主成分分析方法的Eigenface[10?11]人臉識別方法識別原理簡單、識別速度快,適用于對識別準(zhǔn)確度要求不是很嚴(yán)格的實(shí)時(shí)環(huán)境下的人臉識別場合。
Eigenface特征臉是從PCA主成分分析方法導(dǎo)出的一種人臉識別技術(shù)。它將包含人臉的圖像區(qū)域看作一個(gè)隨機(jī)向量, 將所有的訓(xùn)練樣本圖像組合起來形成一個(gè)生成矩陣,然后采用KL變換得到正交 KL基,對應(yīng)其中較大特征值的基具有與人臉相似的形狀,因此又被稱為特征臉。
利用這些正交KL基的線性組合可以描述、表達(dá)和逼近人臉圖像,可進(jìn)行人臉識別與合成。識別過程就是將人臉圖像映射到由特征臉組成的子空間上,并比較其在特征臉空間中的位置,然后利用對圖像的這種投影間的某種度量確定圖像間的相似度,最常見的就是選擇各種距離函數(shù)進(jìn)行度量分類實(shí)現(xiàn)人臉識別,采用歐幾里德距離計(jì)算。為了提高識別速度,在選擇正交KL基時(shí),可根據(jù)生成矩陣特征值的大小將對應(yīng)的正交KL基排序。選取能代表訓(xùn)練樣本基本信息的前面若干個(gè)正交KL基作為特征臉子空間。這樣在不明顯損失信息量的情況下進(jìn)一步達(dá)到降低維度的目的,減少運(yùn)算復(fù)雜度,其算法流程如圖2所示。
1.2 口令加解密
采用著名的對稱密鑰加密算法——DES數(shù)據(jù)加密算法[12]。遞歸遍歷待加密文件夾的每個(gè)文件,針對各種類型的文件,統(tǒng)一采用字符串讀取方式加載到內(nèi)存中,經(jīng)過DES加密后的文件信息寫入到另外一個(gè)和原文件路徑和名稱相同但類型不同的(利用MFC的文檔注冊機(jī)制指定的類型)文件中,加密成功后將原文件刪除。為了解密時(shí)能夠正確恢復(fù)原文件,系統(tǒng)采用統(tǒng)一的格式將原文件的完整路徑信息、類型信息和密碼保存在加密后的文件的頭部。
為了避免對文件夾重復(fù)加密,需要將已加密文件夾的路徑統(tǒng)一保存起來。每當(dāng)系統(tǒng)開始運(yùn)行,就加載已加密文件夾的路徑信息到內(nèi)存中,將當(dāng)前路徑信息和內(nèi)存中的路徑信息比較,如果前者和后者的某一項(xiàng)相等,或者后者某一項(xiàng)是前者的子字符串(當(dāng)前路徑是某個(gè)已加密文件夾路徑的子路徑,也即子文件夾或者子文件),則說明當(dāng)前路徑已經(jīng)加密,不再提供加密服務(wù)。每當(dāng)系統(tǒng)退出時(shí)就將加密路徑記錄持久化到特定文件中。
解密時(shí)首先解析文件頭信息,得到原文件路徑、類型信息和原密碼,然后遞歸解密每個(gè)文件。
2 實(shí)驗(yàn)和分析
2.1 實(shí)驗(yàn)平臺
在Windows XP平臺上,以Visual Studio 6.0為開發(fā)工具,用C++開發(fā)語言結(jié)合OpenCV 1.0視覺開源庫,利用MFC框架實(shí)現(xiàn)具有文檔視圖結(jié)構(gòu)的原型系統(tǒng)[4]。
2.2 實(shí)驗(yàn)數(shù)據(jù)
原型系統(tǒng)采用的是ORL人臉庫。該庫是目前使用最廣泛的標(biāo)準(zhǔn)數(shù)據(jù)庫,它含有大量的比較結(jié)果。在此基礎(chǔ)上,在網(wǎng)上收集并整理了16個(gè)具有代表性的人臉,每個(gè)人有10張圖片,作為備用人臉庫。其中人臉部分表情和細(xì)節(jié)均有變化,例如笑與不笑、眼睛睜著或閉著,戴或不戴眼鏡等,人臉姿態(tài)也有變化,其人臉尺寸也有變化。這些圖片通過編寫的人臉圖片預(yù)處理程序統(tǒng)一來實(shí)現(xiàn)圖片的歸一化。歸一化的步驟包括人臉的檢測。這是為了在尺寸固定(92×112)的圖片上保存更多的人臉信息,避免那種背景區(qū)域很多人臉很小的情況。檢測出來的人臉經(jīng)過尺寸歸一化和灰度化,最后還要進(jìn)行直方圖均衡化以便盡量消除光照的影響。
2.3 實(shí)驗(yàn)結(jié)果及分析
運(yùn)行原型系統(tǒng),對于文件夾E:\Test\圖片,解密時(shí)進(jìn)行人臉識別認(rèn)證的效果如圖3所示。
實(shí)驗(yàn)結(jié)果表明:人臉識別認(rèn)證準(zhǔn)確率要比Eigenface用在人臉識別靜態(tài)測試[5]時(shí)的準(zhǔn)確率要低。其原因是在實(shí)時(shí)獲取人臉圖像時(shí),由于用戶的運(yùn)動特性,抓取到的圖像難免因位移現(xiàn)象而導(dǎo)致圖像模糊,影響識別效果;文件夾的合法用戶能夠容易的通過人臉識別驗(yàn)證,非法用戶不易通過驗(yàn)證;最后,就系統(tǒng)整體來說,人臉識別的漏檢率高于錯(cuò)檢率??诹钫J(rèn)證階段還可以彌補(bǔ)漏檢率偏高的缺陷,使系統(tǒng)總體上安全性比較高。
3 結(jié) 語
本文提出了一種基于人臉識別和密碼認(rèn)證的文件夾加密方法,并實(shí)現(xiàn)了基于Eigenface人臉識別、DES密碼認(rèn)證和用戶接口組成的原型系統(tǒng)。經(jīng)過系統(tǒng)測試和運(yùn)行,證明該方法安全性較高,是一個(gè)安全可信的文件夾加解密方案。
另外,為了進(jìn)一步提高其安全性和實(shí)用性,可作適當(dāng)改進(jìn)。首先,可考慮加入光照消除算法來改善人臉檢測和人臉識別的效果,或者也可以考慮其他更好的識別算法。其次,加解密時(shí),DES算法針對所有的文件字符信息速度比較慢,可考慮采用基于文件夾的整體加密,在文件夾層次上實(shí)現(xiàn)消息攔截從而實(shí)現(xiàn)加解密。
參考文獻(xiàn)
[1] 向元平,寧子嵐.基于人臉識別的雙因素身份認(rèn)證系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)測量與控制,2009,17(5):959?961.
[2] 肖冰,王映輝.人臉識別研究綜述[J].計(jì)算機(jī)應(yīng)用研究,2005(8):1?5.
[3] 于仕琪.OpenCV中文網(wǎng)站[EB/OL].[2006?01?27].http://www.opencv.org.cn/index.php/%E9%A6%96%E9%A1%B5.2009.10.
[4] HEWITT R. Seeing with OpenCV, part 2: finding faces in images [EB/OL]. [2007?04?11]. http://www.cognotics.com/opencv/servo_2007_series/part_2/index.html.
[5] HEWITT R. Seeing with OpenCV, part 5: implementing Eigenface [EB/OL]. [2007?05?23]. http://www.cognotics.com/opencv/servo_2007_series/part_5/index.html.
[6] VIOLA P, JONES M. Rapid object detection using a boosted cascade of simple features [C]// Proceedings of 2001 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. [S.l.]: IEEE, 2001: 511?518.
[7] 梁路宏,艾海舟,徐光檔,等.人臉檢測研究綜述[J].計(jì)算機(jī)學(xué)報(bào),2002,25(5):449?458.
[8] VIOLA P, JONES M. Robust real?time face detection [J]. International Journal of Computer Vision, 2004, 57(2): 137?154.
[9] 嚴(yán)嚴(yán),章毓晉.基于視頻的人臉識別研究進(jìn)展[J].計(jì)算機(jī)學(xué)報(bào),2009,32(5):878?886.
[10] TURK M A, PENTLAND A P. Face recognition using Eigenfaces [C]// Proceedings of 1991 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. Shanghai, China: IEEE, 1991: 586?591.
[11] ZHOU S H, RAMA C. From sample similarity to ensemble similarity: probabilistic distance measures in reproducing kernel Hilbert space [J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2006, 28(6): 917?929.
[12] STINSON D R.密碼學(xué)原理與實(shí)踐[M].馮登國,譯.北京:電子工業(yè)出版社,2003.