張賽男,李千目
(南京理工大學(xué) 計算機(jī)科學(xué)與工程學(xué)院,江蘇 南京 210094)
互聯(lián)網(wǎng)技術(shù)的快速發(fā)展和移動智能終端的普遍應(yīng)用,使得用戶在享受高效便捷的生活方式的同時,也潛在地承擔(dān)著日趨嚴(yán)峻的個人隱私信息泄露風(fēng)險[1-3],海量的圖像數(shù)據(jù)蘊(yùn)含著用戶的隱私信息,如果不加以保護(hù),將嚴(yán)重威脅到社會安全。
圖像隱私保護(hù)技術(shù),大致可以分為兩大類,其一是圖像處理技術(shù)占主導(dǎo),如小波變換、邊緣檢測、高斯模糊、像素化、基于偽色等。李璐瑤等[4]應(yīng)用GHM多小波變換對電子計算機(jī)斷層掃描圖像進(jìn)行重要度分解,之后利用Canny邊緣檢測算法對分解圖像進(jìn)行信息提取。Li等[5]利用離散小波變換生成受隱私保護(hù)的低分辨率圖像以及包含隱私信息的高分辨率數(shù)據(jù)。張志文等[6]、Frome等[7]、Yu等[8]、Yu等[9]利用高斯模糊或像素化等方式進(jìn)行隱私保護(hù)。Ciftci等[10]、Jacob等[11]利用偽色保護(hù)圖像隱私。Sengupta等[12]扭曲圖像以掩蓋隱私信息,Mahajan等[13]使用面部互換加以色彩平衡來保護(hù)人臉隱私信息。其二就是利用機(jī)器學(xué)習(xí)、深度學(xué)習(xí)等知識輔助實(shí)現(xiàn)圖像隱私保護(hù)。張志文等[6]利用AdaBoost識別人臉、車牌等明顯隱私信息。Kuang等[14]基于特征和對象學(xué)習(xí)自動預(yù)測隱私區(qū)域。Zhong等[15]提出隨機(jī)空間歸因模型進(jìn)行隱私分類。Yu等[8]采用深度多任務(wù)學(xué)習(xí)識別敏感區(qū)域,并進(jìn)行模糊。Peng等[16]基于卷積神經(jīng)網(wǎng)絡(luò)針對人臉關(guān)鍵區(qū)域進(jìn)行編輯,在保護(hù)隱私同時保持較高圖像質(zhì)量。
不難發(fā)現(xiàn),上述圖像隱私保護(hù)方法大多是對圖像隱私部分進(jìn)行修改,比如模糊、馬賽克、遮擋等。局部遮蔽方法存在的缺點(diǎn)是,攻擊者可以根據(jù)其他未遮蔽區(qū)域的特征推測出遮蔽區(qū)域信息。在Ilia等[17]的試驗(yàn)中,仍有12.6%遮蔽臉部區(qū)域被用戶的朋友識別出來。過濾器、泛化之類的保護(hù)方法,則很難抵擋McPherson等[18]描述的攻擊方法,適用范圍比較有限。孫江林[19]針對圖像中的顯著對象,保護(hù)的隱私范圍過大,而且采用的加密算法的安全性不高。
基于上述分析,本文選擇利用人臉檢測,初步檢測圖像中的人臉重要隱私信息,并設(shè)計后處理算法更近一步確保有效覆蓋隱私區(qū)域,之后采用圖像加密這一手段來實(shí)現(xiàn)保護(hù)的目的。圖像加密不同于修改圖像的隱私保護(hù)手段,其一是可以還原出明文圖像,其二圖像加密之后的密文圖像是人眼和深度學(xué)習(xí)都無法窺探隱私的。同時就本文提出的加密算法實(shí)施密鑰安全分析、統(tǒng)計分析和擴(kuò)散性分析,證明其安全性。
這部分介紹基于人臉檢測改進(jìn)的圖像隱私部分自動標(biāo)定算法,主要分為兩步:第一步初步檢測圖像中的人臉重要隱私信息;第二步設(shè)計后處理算法合并隱私區(qū)域,獲得最終隱私區(qū)域定位。
Libfacedetection是一個開源的輕量級人臉檢測庫,由深圳大學(xué)的于仕琪老師發(fā)布在Github上,在目前開源的輕量級人臉檢測庫中,其在速度和精度上都具有很大的優(yōu)勢,因此選用其檢測圖像中人臉這一隱私信息。
首先,利用基于神經(jīng)網(wǎng)絡(luò)的人臉檢測初步檢測出圖像中的人臉隱私信息。盡管人臉檢測模型的精度優(yōu)于同類檢測模型,但是在實(shí)際應(yīng)用中還是不能排除誤檢、漏檢的情況,尤其是在圖像隱私部分加密應(yīng)用中,漏檢情況更需重視。所以,一方面為了減少漏檢的情況,覆蓋到更多圖像隱私區(qū)域,一方面也是為了后期進(jìn)行部分加密時輸入圖像數(shù)據(jù)處理更加方便,設(shè)計一種合并檢測區(qū)域的圖像隱私部分自動標(biāo)定算法。
輸入:
人臉檢測模型檢測到的所有的矩形人臉區(qū)域的坐標(biāo)為LOCfaces,LOCfaces中包含每個矩形人臉LOCface的左上坐標(biāo)(fx1,fy1),右下坐標(biāo)(fx2,fy2)信息,即LOCface[0]=fx1,LOCface[1]=fy1,LOCface[2]=fx2,LOCface[3]=fy2(下標(biāo)從0開始)。
輸出:
合并之后的所有矩形隱私區(qū)域LOCSprivacy及其總個數(shù)num,LOCSprivacy中包含每個最終矩形隱私區(qū)域LOCprivacy,每個矩形隱私區(qū)域包含左上坐標(biāo)(x1,y1),右下坐標(biāo)(x2,y2)信息。即LOCprivacy[0]=x1,LOCprivacy[1]=y1,LOCprivacy[2]=x2,LOCprivacy[3]=y2。合并算法如下:
合并檢測區(qū)域的圖像隱私部分自動標(biāo)定算法
輸入:LOCfaces
輸出:LOCSprivacy,num
1.n=len(LOCfaces)//n為檢測到的人臉總數(shù)
2.marked=
//marked為1*n的矩陣,元素初始值全為0,之后存儲第i個檢測區(qū)域所屬連通區(qū)域標(biāo)號
3.dict={}
//dict存儲鍵值對元素,每一個鍵對應(yīng)一個連通區(qū)域標(biāo)號,鍵值存放該連通區(qū)域內(nèi)人臉檢測區(qū)域序號
4.num=0//計數(shù)連通區(qū)域個數(shù)
5.fori,LOCfaceinLOCfaces:
//遍歷所有檢測到的人臉區(qū)域
6.ifmarked[i]==0:
//若該人臉區(qū)域還未屬于任何連通區(qū)域
7.num=num+1
8.marked[i]=num
9.dict[num]=
10.dict[num].append(i)
//從這個人臉區(qū)域開始新建一個連通區(qū)域,并將其加入進(jìn)去
11.dfs(i,dict[num])
//深度搜索并連接相鄰人臉檢測區(qū)域進(jìn)同一連通區(qū)域
12.LOCSprivacy=
//LOCSprivacy為num*4的矩陣,存儲最終隱私區(qū)域坐標(biāo)
13.foriin range(1,num+1):
14.a=dict[i]
15.x1=LOCfaces[a[0],0]
16.y1=LOCfaces[a[0],1]
17.x2=LOCfaces[a[0],2]
18.y2=LOCfaces[a[0],3]
19.forjina:
20.x1=min(x1,LOCfaces[j,0])
21.y1=min(y1,LOCfaces[j,1])
22.x2=max(x2,LOCfaces[j,2])
23.y2=max(y2,LOCfaces[j,3])
24.LOCSprivacy[i-1,0]=x1
25.LOCSprivacy[i-1,1]=y1
26.LOCSprivacy[i-1,2]=x2
27.LOCSprivacy[i-1,3]=y2
28.returnLOCSprivacy,num
29.//返回合并隱私區(qū)域及其個數(shù)
為了減少漏檢情況,而非僅僅依賴檢測模型的結(jié)果,基于局部性原理,如果此區(qū)域內(nèi)檢測出人臉,那么此區(qū)域周圍存在人臉的可能性也較大,如果兩個檢測到的人臉區(qū)域距離相近,有理由相信這兩個區(qū)域之間存在人臉的可能性較高,合并起來將覆蓋到更多人臉。合并距離相近的人臉檢測區(qū)域也可以減少最終矩形個數(shù),方便之后加密輸入處理。
本文選擇將兩個區(qū)域左上角的棋盤距離作為遠(yuǎn)近的度量,假設(shè)檢測到的人臉區(qū)域A的左上坐標(biāo)為(Ax1,Ay1),右下坐標(biāo)為(Ax2,Ay2),檢測到的人臉區(qū)域B的左上坐標(biāo)為(Bx1,By1),右下坐標(biāo)為(Bx2,By2),則他們之間的距離
D(A,B)=max(abs(Bx1-Ax1),abs(By1-Ay1)
(1)
合并(連通)條件:如果D(A,B)≤2max((Ax2-Ax1),(Ay2-Ay1),(Bx2-Bx1),(By2-By1)),就認(rèn)為這兩個人臉區(qū)域可以合并進(jìn)同一個連通區(qū)域。
利用深度搜索的思想,遍歷檢測到的人臉區(qū)域,如果當(dāng)前人臉區(qū)域未被合并,則
(1)新建一個連通區(qū)域,將其加入這個連通區(qū)域,標(biāo)記它為已合并;
(2)遍歷未標(biāo)記的檢測到的人臉區(qū)域:
①如果此區(qū)域與起點(diǎn)人臉區(qū)域距離滿足合并條件,
②將其加入此連通區(qū)域,標(biāo)記它為已合并,
③將此區(qū)域作為新起點(diǎn),執(zhí)行步驟(2)。
具體實(shí)現(xiàn)算法如下:
深度搜索并連接從第i個人臉檢測區(qū)域出發(fā)的所有相鄰人臉檢測區(qū)域,將他們歸屬進(jìn)同一連通區(qū)域
1. defdfs(i,dict[num]):
2.ifi 3.x=LOCfaces[i,0] 4.y=LOCfaces[i,1] 5.w=LOCfaces[i,2]-LOCfaces[i,0] 6.h=LOCfaces[i,3]-LOCfaces[i,1] 7.forkin range(0,n): 8.ifmarked[k]==0: 9.if max(abs(LOCfaces[k,0]-x),abs(LOCfaces[k,1]-y))<=2*max(w,h,LOCfaces[k,2]-LOCfaces[k,0],LOCfaces[k,3]-LOCfaces[k,1]): 10.dict[num].append(k) 11.marked[k]=num 12.dfs(k,dict[num]) 為了測試合并效果如何,本文選擇Wider Face[20]驗(yàn)證集中的Couple、Family_Group和Meeting這3組數(shù)據(jù)進(jìn)行試驗(yàn),因?yàn)檫@3類數(shù)據(jù)一般較為需要進(jìn)行隱私處理,且人臉尺寸由大變小,具有代表性。接著,分別進(jìn)行初步人臉檢測和合并人臉檢測,計算初步檢測出的人臉數(shù)除以需要保護(hù)的人臉數(shù)的平均值,計算合并之后覆蓋需要保護(hù)的人臉數(shù)的平均值和矩形框數(shù)的平均減少率,結(jié)果如表1所示。 表1 人臉檢測及合并結(jié)果 可見,優(yōu)化合并之后,提升了人臉覆蓋率,覆蓋到更多人臉區(qū)域,同時大大減少了矩形框數(shù),有利于之后的加密輸入處理。 如圖1所示,一副圖像經(jīng)過模型檢測與優(yōu)化合并,兩個階段的結(jié)果進(jìn)行比照,可以看到,優(yōu)化合并之后,減少了漏檢的情況,覆蓋到更多圖像隱私區(qū)域,圖像隱私區(qū)域分布較為集中,后期進(jìn)行部分加密時輸入圖像數(shù)據(jù)處理更加方便。 圖1 檢測結(jié)果及合并結(jié)果 將logistic映射和sine 映射組合,級聯(lián)上cosine映射,最終獲得logistic-sine-cosine映射[21],如下所示 (2) 式中:r∈[0,1],x∈(0,1)。初始狀態(tài)x0和控制參數(shù)r是圖像加密算法的密鑰,由此生成混沌序列。生成的混沌序列后續(xù)用以圖像加密中的像素置亂和擴(kuò)散。 logistic-sine-cosine映射的分叉圖、Lyapunov指數(shù)和樣本熵證明了其優(yōu)良的混沌性能[21]。當(dāng)r∈[0,1],x∈(0,1),logistic-sine-cosine映射的輸出狀態(tài)是隨機(jī)分布的,其Lyapunov指數(shù)在1.374~1.386范圍內(nèi)。logistic-sine-cosine映射實(shí)現(xiàn)簡單,并且能夠生成具有良好隨機(jī)性能的混沌序列。所以,選擇其生成本文圖像加密的混沌序列。 加密算法的密鑰由隨機(jī)生成的256位二進(jìn)制數(shù)組成:4對32位的初始狀態(tài)和控制參數(shù)。每32位都通過式(2)轉(zhuǎn)化成小數(shù)x0、r (3) 顯而易見,本文加密密鑰的密鑰空間是2256,足以對抗各式攻擊[22]。由x0和r密鑰,獲得相應(yīng)混沌序列,這4組混沌序列將一一作用于并影響著圖像加密的4輪像素置亂、像素擴(kuò)散,如圖2所示。 圖2 加密流程圖 加密過程:在進(jìn)行了隱私區(qū)域自動標(biāo)定之后,針對圖像隱私數(shù)據(jù)進(jìn)行4輪像素置亂、像素擴(kuò)散,如圖2所示,得到加密數(shù)據(jù)。解密時,針對圖像隱私部分進(jìn)行4輪像素擴(kuò)散還原、像素置亂還原,得到隱私部分解密后的圖像。 整體的彩色圖像隱私部分自動標(biāo)定及加解密算法如圖3所示。 圖3 圖像隱私部分標(biāo)定及加解密流程圖 接下來是詳細(xì)的像素置亂、像素擴(kuò)散算法介紹以及加密算法的安全性分析。設(shè)輸入圖像數(shù)組大小為(H,W,3)。 2.3.1 像素置亂 首先根據(jù)密鑰初始狀態(tài)x0和控制參數(shù)r生成長為H*W*3的混沌序列S,將S分成3個(H,W)的矩陣A,B,D。IA1是矩陣A每列按行排序的索引結(jié)果轉(zhuǎn)置,大小為(W,H),矩陣元素∈[1,H]的整數(shù)。IA2是矩陣A每行排序的索引結(jié)果,大小為(H,W),矩陣元素∈[1,W]的整數(shù)。IB1是矩陣B每列按行排序的索引結(jié)果轉(zhuǎn)置,大小為(W,H),矩陣元素∈[1,H]的整數(shù)。IB2是矩陣B每行排序的索引結(jié)果,大小為(H,W),矩陣元素∈[1,W] 的整數(shù)。ID1是矩陣D每列按行排序的索引結(jié)果轉(zhuǎn)置,大小為(W,H),矩陣元素∈[1,H]的整數(shù)。ID2是矩陣D每行排序的索引結(jié)果,大小為(H,W),矩陣元素∈[1,W]的整數(shù)。將S轉(zhuǎn)換為(H,W,3)的矩陣U,IU是矩陣U[i,j,:]中3個數(shù)排序的索引結(jié)果,大小為(H,W,3),矩陣元素∈[1,3]的整數(shù)(此節(jié)索引以1開始)。 置亂加密算法 輸入:P(H,W,3),IA1,IA2,IB1,IB2,ID1,ID2,IS 輸出:C(H,W,3) 1.fori=1:H://i從1取到H 2.forj=1:W: 3.C(i,j,1)=P(IA1(j,i),IA2(IA1(j,i),j),IU(IA1(j,i),IA2(IA1(j,i),j),1)) 4.C(i,j,2)=P(IB1(j,i),IB2(IB1(j,i),j),IU(IB1(j,i),IB2(IB1(j,i),j),2)) 5.C(i,j,3)=P(ID1(j,i),ID2(ID1(j,i),j),IU(ID1(j,i),ID2(ID1(j,i),j),3)) 6.returnC 接下來用一個實(shí)例進(jìn)一步闡述置亂算法,假設(shè)這個例子是一個H=2,W=3的三通道輸入數(shù)據(jù),如圖4所示。 圖4 置亂前的數(shù)據(jù) 每個框內(nèi)存放著一個數(shù)值(像素),數(shù)值的3位數(shù)字依次表示行、列和通道索引。這個數(shù)值作為每個框的標(biāo)識數(shù)值,以此區(qū)分不同表格。在置亂過程中,只置亂框的位置,不改變框內(nèi)的數(shù)值。通過這樣的設(shè)計,置亂之后的數(shù)據(jù)可以顯示出此置亂算法的置亂效果。此處索引從1開始。 按照上述置亂算法,推導(dǎo)出輸出數(shù)據(jù)上位置為(1,1,:)的像素: (1,1,1)處,放入第IA1(1,1)=1行,第IA2(1,1)=3列,第IU(1,3,1)=3通道的像素。 (1,1,2)處,放入第IB1(1,1)=2行,第IB2(2,1)=2列,第IU(2,1,2)=3通道的像素。 (1,1,3)處,放入第ID1(1,1)=2行,第ID2(2,1)=1列,第IU(2,1,3)=1通道的像素。 處理完所有數(shù)據(jù),得到圖5所示置亂效果。 圖5 置亂后的數(shù)據(jù) 如圖4和圖5所示,此像素置亂方法能夠達(dá)到像素隨機(jī)置亂到任意行、列、通道的效果,一一映射,置亂還原可逆。 還原算法 輸入:C(H,W,3),IA1,IA2,IB1,IB2,ID1,ID2,IS 輸出:P(H,W,3) 1.fori=1:H: 2.forj=1:W: 3.P(IA1(j,i),IA2(IA1(j,i),j),IU(IA1(j,i), IA2(IA1(j,i),j),1))=C(i,j,1) 4.P(IB1(j,i),IB2(IB1(j,i),j),IU(IB1(j,i), IB2(IB1(j,i),j),2))=C(i,j,2) 5.P(ID1(j,i),ID2(ID1(j,i),j),IU(ID1(j,i), ID2(ID1(j,i),j),3))=C(i,j,3) 6.returnP 2.3.2 像素擴(kuò)散 在進(jìn)行像素擴(kuò)散時,遵循“Z”字型最大化傳遞像素,并將原本的擴(kuò)散末尾點(diǎn)加至擴(kuò)散起始點(diǎn),使得在一輪擴(kuò)散中,每個點(diǎn)至少影響其余一個像素點(diǎn),至多擴(kuò)散到所有像素點(diǎn)。通過4輪像素置亂、像素擴(kuò)散,實(shí)現(xiàn)加密算法的混淆和擴(kuò)散,保障圖像數(shù)據(jù)安全。 先將x0和r生成的混沌序列S(總長為H*W*3)變換為大小(H,W,3)的矩陣,再把所有元素乘上232且向下取整,更新獲得元素為正整數(shù)的矩陣S。 假設(shè)輸入矩陣P,輸出矩陣C,遵循以下規(guī)則實(shí)現(xiàn)像素擴(kuò)散,規(guī)則中的i、j、u都是從1各自遞增到H、W、3: i=1,j=1,u=1:C(i,j,u)=mod(P(i,j,u)+ P(H,W,3)+S(i,j,u),256) i=1,j=1,u>1:C(i,j,u)=mod(P(i,j,u)+ C(i,j,u-1)+S(i,j,u),256) i≠1,j=1,u=1:C(i,j,u)=mod(P(i,j,u)+ C(i-1,W,3)+S(i,j,u),256) i≠1,j=1,u>1:C(i,j,u)=mod(P(i,j,u)+ C(i,j,u-1)+S(i,j,u),256) j≠1,u=1:C(i,j,u)=mod(P(i,j,u)+ C(i,j-1,3)+S(i,j,u),256) j≠1,u>1:C(i,j,u)=mod(P(i,j,u)+ C(i,j,u-1)+S(i,j,u),256) 解密操作與加密操作逆序,i、j、u這時初始化為H、W、3,遞減直至為1。解密規(guī)則和加密規(guī)則相同,區(qū)別僅在于操作符號,還原解密時需要將加號變?yōu)闇p號: i=1,j=1,u=1:P(i,j,u)=mod(C(i,j,u)- P(H,W,3)-S(i,j,u),256) i=1,j=1,u>1:P(i,j,u)=mod(C(i,j,u)- C(i,j,u-1)-S(i,j,u),256) i≠1,j=1,u=1:P(i,j,u)=mod(C(i,j,u)- C(i-1,W,3)-S(i,j,u),256) i≠1,j=1,u>1:P(i,j,u)=mod(C(i,j,u)- C(i,j,u-1)-S(i,j,u),256) j≠1,u=1:P(i,j,u)=mod(C(i,j,u)- C(i,j-1,3)-S(i,j,u),256) j≠1,u>1:P(i,j,u)=mod(C(i,j,u)- C(i,j,u-1)-S(i,j,u),256) 2.3.3 密鑰安全性分析 本文加密算法的密鑰空間為2256>2100足以對抗各式攻擊[22]。更進(jìn)一步地,利用比特變化率(Number of bit change rate,NBCR)檢驗(yàn)密鑰的靈敏度[23],確保密鑰實(shí)際空間不低于理論密鑰空間。 設(shè)彩色圖像P1和P2大小一致,NBCR(P1,P2) (4) 即P1和P2所有像素的漢明距離除以圖像總比特數(shù),P1和P2的總比特數(shù)一樣。 為了檢驗(yàn)密鑰靈敏度,進(jìn)行256次試驗(yàn)。每次試驗(yàn),都改變256位密鑰中的一位,原密鑰與改變后的密鑰加密同一明文圖像得密文圖像C1和C2,計算NBCR(C1,C2),之后用原密鑰與改變后密鑰解密密文圖像C1得D1和D2,計算NBCR(D1,D2)。根據(jù)256次試驗(yàn)得256對NBCR(C1,C2)和NBCR(D1,D2),所有的NBCR(C1,C2)和NBCR(D1,D2)都在0.5左右以不超過0.002 5的幅度振蕩,說明當(dāng)密鑰發(fā)生極細(xì)微的改變時,加密所得的密文圖像和解密所得的明文圖像都大不相同,本文加密算法的密鑰是很靈敏的。 2.3.4 算法統(tǒng)計分析和擴(kuò)散性分析 最后,針對本文圖像加密算法實(shí)施統(tǒng)計分析和擴(kuò)散性分析。統(tǒng)計分析上主要采用直方圖、相鄰像素的相關(guān)性、信息熵,擴(kuò)散性分析主要利用像素改變率(Number of pixels change rate,NPCR)和一致平均改變強(qiáng)度(Unified average changing intensity,UACI)[24]。 如圖6所示,加密所得的密文圖像的各通道直方圖都接近完全一致分布,本文加密算法可以抵御直方圖分析的攻擊。 圖6 明文、密文圖像的三通道灰度直方圖 隨機(jī)選擇明文、密文圖像在水平(垂直、對角線)方向上相鄰的2 000對像素,比較它們的相關(guān)性。結(jié)果如表2所示,Lena圖三通道各方向上的相關(guān)性都接近1,而密文圖像的相關(guān)性都接近0,可見加密算法可以抵抗相關(guān)性分析的攻擊。 若各灰度值出現(xiàn)在密文圖像中的概率一致,圖像的信息熵等于8,這意味著此加密算法得到的密文圖像是理想的隨機(jī)加密圖像。Lena圖三通道信息熵依次為7.287 4、7.565 9、7.053 2,加密后依次為7.989 9、7.989 6、7.990 1,密文圖像信息熵都在7.989之上,逼近目標(biāo)值8。 選用USC-SIPI“Aerials”中的14張彩色圖實(shí)施擴(kuò)散性分析,其中前8張圖像是256*256大小,剩余6張圖像大小是512*512。對于每張圖像,隨機(jī)生成密鑰、隨機(jī)選擇像素、修改像素值(加一或減一)、加密改變前后圖像、計算NPCR和UACI,取10次隨機(jī)測驗(yàn)的平均值作為最終結(jié)果填入表3。 表2 Lena原圖與加密圖三通道相關(guān)性對比 表3 14張彩色圖的NPCR和UACI測試結(jié)果 測試圖像大小是256*256時,測試通過的標(biāo)準(zhǔn)是NPCR>99.569 3%,UACI∈(33.282 4%,33.644 7%)。大小是512*512時,測試通過標(biāo)準(zhǔn)是NPCR>99.589 3%,UACI∈(33.373 0%,33.554 1%)[24]。如表2所示,所有圖片所有通道的NPCR都不低于99.60%,而且UACI不低于33.43%,測驗(yàn)通過??梢姳疚募用芩惴〝U(kuò)散性良好,可以抵抗差分攻擊。 表4是本文圖像加密算法的平均NPCR和UACI與其他現(xiàn)有加密算法的比較。相比之下,本文的一致改變強(qiáng)度表現(xiàn)突出,像素改變率也不相上下。 表4 各加密算法的NPCR和UACI對比 根據(jù)上述圖像隱私區(qū)域自動標(biāo)定算法和圖像部分加密算法處理輸入圖像,最終實(shí)現(xiàn)如圖7所示的人臉檢測、合并優(yōu)化、加密圖像。 圖7 圖像隱私部分自動標(biāo)定及加密 將本文提出的圖像隱私部分標(biāo)定方法和保護(hù)手段與現(xiàn)有相關(guān)方案進(jìn)行對比。 如表5所示,Yuan等[28]采用的加密手段:量化離散余弦變換系數(shù)符號修改,安全性不高[29],Wen等[30]將圖像顯著信息加密進(jìn)參考圖像,密文數(shù)據(jù)量大于明文。Yu等[8]、Liu等[31]的模糊手段難以抵擋McPherson等[18]描述的攻擊方法。孫江林[19]采用的加密算法僅有置亂階段,缺乏擴(kuò)散階段,安全性不高。Mahajan等[13]利用兩張人臉圖片,參考修改其中一個人臉的特征,修改后的人臉不僅不夠自然,還保留了一些原本的面部特征,不利于隱私保護(hù)。本文的保護(hù)算法在前人研究基礎(chǔ)之上,合并優(yōu)化人臉檢測區(qū)域,利用混淆和擴(kuò)散性良好的加密算法,很好地保護(hù)了人臉隱私信息。 表5 本文所提算法與同類算法的對比 針對目前國內(nèi)外研究的圖像隱私保護(hù)存在的不足,即像素化、模糊、遮擋等保護(hù)方法的安全性隨著深度學(xué)習(xí)的發(fā)展下降,而且無法實(shí)現(xiàn)圖像的無損還原,本文提出了一種面向人臉隱私信息保護(hù)的圖像部分加密算法: (1)人臉檢測模型初步檢測圖像中的人臉信息。 (2)優(yōu)化模型檢測結(jié)果,減少漏檢情況,合并距離相近的人臉檢測區(qū)域。 (3)在進(jìn)行像素置亂時,基于混沌序列設(shè)計實(shí)現(xiàn)了所有像素(行、列、通道)的一一映射,擴(kuò)大了像素的位置置亂范圍。 (4)針對加密算法的安全性進(jìn)行了密鑰安全性分析、統(tǒng)計分析和擴(kuò)散性分析,充分證明了算法具有良好的混淆和擴(kuò)散性。 本文提出的圖像隱私區(qū)域自動標(biāo)定及加密算法,針對的僅僅是人臉隱私信息,但在圖像中也存在著其他類型的需要保護(hù)的隱私信息。由于是根據(jù)人臉檢測深度學(xué)習(xí)模型進(jìn)行初步檢測,雖然已經(jīng)增加了合并擴(kuò)大隱私區(qū)域的后處理,但在實(shí)際應(yīng)用中還是存在著一定的誤檢、漏檢風(fēng)險,有待改善。采用了人臉檢測、加密等手段處理圖像隱私信息,一定程度上保護(hù)了圖像信息,但是面對龐大的數(shù)據(jù)量,處理速度和密鑰存儲機(jī)制還有待完善。1.3 合并結(jié)果分析
2 圖像部分加密算法
2.1 logistic-sine-cosine映射
2.2 密鑰組成
2.3 加解密算法
2.4 圖像隱私部分加解密效果圖
2.5 試驗(yàn)結(jié)果對比
3 結(jié)束語