朱澤爍 暨南大學智能科學與工程學院
在密碼學中,密鑰是成功實現(xiàn)加解密的關鍵。然而,傳統(tǒng)的圖像加密算法多數(shù)都涉及到密鑰的安全傳輸和管理困難問題。虹膜是人體的生物特征之一,具有唯一性、特征信息豐富和抗攻擊能力強等特點,擁有優(yōu)秀的加密潛質。本文提出了一種基于深度學習的虹膜圖像加密算法,通過深度學習優(yōu)化虹膜特征提取,使得加解密精度與安全性大幅度提升。
1.1.1 圖像預處理
算法中對虹膜圖像的預處理主要包括虹膜定位、分割與歸一化。其中,虹膜內邊緣定位時主要采用灰色投影法[2]和橫移法,外邊緣定位采用微積分算子方法,虹膜歸一化則采用線段提取算法。
1.1.2 虹膜特征提取
算法采用CNN對虹膜數(shù)據集進行特征提取。同時,為了解決虹膜圖像采集難度大造成樣本較少的問題,引入了SAE模型。通過它對圖像塊提取后的虹膜進行訓練,達到初始化CNN參數(shù)的目的,然后采用CNN對整幅虹膜圖像進行訓練以提取最終的虹膜特征。雙模型的結合不僅解決了樣本較少的問題,而且更保障了圖像加密的安全性。具體步驟如下:
(1)對虹膜圖像P0進行預處理得到P1;
(2)對P1進行圖像塊提取P2,組成SAE數(shù)據集x;
(3)將數(shù)據集x用于訓練SAE模型,然后對訓練好的參數(shù)矩陣進行區(qū)間歸一化,作為CNN的卷積核和全連接層權值,計算方法如式(2-1)-(2-4)。
其中nk代表第k層SAE節(jié)點數(shù),為避免CNN模型參數(shù)初始化失誤而導致的梯度消失或者梯度爆炸等現(xiàn)象,算法為初始化參數(shù)增加區(qū)間限制
(4)加密方將采集的虹膜圖像輸入訓練好的CNN模型,從中提取特征向量Vn,特征向量的維數(shù)n可根據采用的圖像加密算法進行調整。
(5)為保證提取出來的加解密特征向量的一致性,對提取出來的圖像使用RS碼進行糾錯。
(3) 利 用Logistic映 射 產 生 一 個 混 沌 序 列作為圖像像素進行橫向移動的位數(shù),對圖像每行像素進行行移位。
(4)將圖像的每列像素根據第三步的對換方法置換到該列的另一位置,記為。
(6)回到第二步進行下一輪加密,一共有10輪加密。其中結尾輪稍有不同,減少了列置換部分。
解密時則是執(zhí)行上述過程的逆變換。
為了提高算法的可信度和預測性,實驗虹膜數(shù)據采用CASIA虹膜數(shù)據庫公共版。原始數(shù)據集中含有睫毛等干擾因素,首先通過虹膜定位、分割和歸一化對圖像進行預處理。
預處理后的圖像只包含虹膜部分,將其作為數(shù)據集進行SAE模型與CNN模型的訓練。數(shù)據集一共包含虹膜圖像400張,一共10類,每一類40張,其中300張作為訓練樣本,100張作為測試樣本。SAE與CNN均采用五層網絡,CNN卷積核大小為5×5,降采樣步長為2×2,第一卷積層生成特征圖個數(shù)為6,第二卷積層為12。由CNN提取出來的特征向量經過RS碼后即為最終密鑰。
使用生成的密鑰對原始圖像進行基于AES的圖像加密算法,結果如圖3-1所示。由結果可知,對圖像加解密成功,原始圖像與解密圖像完全一致。
圖3 -1基于深度學習的虹膜圖像加密與解密結果
為驗證算法的可行性,本文主要從安全性方面對算法進行評估。在僅有RS糾錯碼時,只能通過猜測對密鑰進行攻擊。若RS碼容錯能力T=92,那么長度為256的密鑰被破解的幾率為
,表3-1為本算法與其余算法密鑰破解幾率對比表。
表3 -1 密鑰破解幾率對比表
由此可見,引入深度學習進行密鑰生成,可極大地降低密鑰被破解的幾率,提高圖像加密的安全性。
本文提出基于深度學習的虹膜圖像加密算法,該算法利用SAE有限制參數(shù)初始化算法實現(xiàn)對CNN模型參數(shù)的初始化,然后通過CNN模型提取特征向量作為密鑰,最后使用AES算法對圖像進行加密實驗。實驗結果表明,利用該算法得到的加密圖像的精度與安全性更高,保護圖像信息效果更好。