徐昭 周昕 白星 李聰 陳潔 倪洋
(四川大學電子信息學院, 成都 610065)
大多數光學加密系統都是對稱加密系統, 在光學圖像加密中明文和密文之間具有線性關系, 其系統的安全性有待加強. 而基于相位截斷傅里葉變換(phase-truncated Fourier transform, PTFT)的非對稱加密系統,其非線性的相位截斷操作使加密系統的安全性得到了極大提升. 本文提出使用深度學習方法攻擊PTFT加密系統, 通過PTFT加密系統構造出明密文對圖像數據集, 然后將其輸入殘差網絡(residual network, ResNet)中進行訓練, ResNet自動學習該加密系統的解密特性. 最后應用測試集對訓練好的模型進行解密性能測試,數據表明該模型能夠較好地恢復圖像并且該模型具有一定的抗噪聲能力. 與兩步迭代振幅恢復算法相比, 本文所提出方法恢復的圖像質量更好.
在互聯網高速發展的時代, 信息安全的重要性不言而喻. 在多種多樣的傳遞信息方式中, 圖像是一種重要的載體, 因此保證圖像傳輸的安全得到廣泛關注. 數字圖像加密是保證圖像安全的一種重要技術, 這種技術通常使用計算機等電子手段實現.但是往往受到速度和成本的限制, 基于傳統的計算機加密技術需要耗費較長的時間. 隨著光信息技術的發展, 光學圖像加密技術也取得了長足的進步.光學圖像加密技術屬于并行加密, 它通過干涉、衍射、傅里葉變換等操作使明文圖像變成類似噪聲的密文圖像, 以光速對圖像的所有像素進行加密, 速度快效率高. 光的波長、相位、振幅等都能夠作為密鑰, 和計算機圖像加密算法相比, 光學圖像加密具有更高的復雜度和加密自由度.
1995年, Refregier和Javidi[1]首次提出了基于雙隨機相位編碼的光學圖像加密算法, 該算法是通過使用兩塊隨機相位板和傅里葉變換來實現. 不過由于該加密算法是對稱加密系統, 其線性特性降低了系統的安全性, 因此Qin和Peng[2]在2010年提出了基于相位截斷傅里葉變換(phase-truncated Fourier transform, PTFT)的非對稱加密系統. 該系統在加密過程中通過相位截斷和兩塊隨機相位板生成密文, 而在解密過程中則用與加密密鑰不同的解密密鑰來恢復密文, 此解密密鑰是在加密過程中通過截斷處理所產生的. 由于該加密系統是非線性的, 因此系統安全性得到很大提高, 攻擊難度較大.
隨著人工智能技術的飛速發展以及計算機算力的提升和數據量的膨脹, 深度學習在計算機視覺、生物醫學、模式識別等領域都取得了突破進展, 很多算法紛紛涌現并投入到實際應用中. 在深度學習領域有許多經典的神經網絡, 如LeNet-5[3],AlexNet[4], VGGNet[5], GoogleNet[6], ResNet[7]等,眾多學者在此基礎上做出了很多重要工作. 深度學習的特點在于它能使神經網絡自動分析數據和數據之間的關系, 因此完全可以利用神經網絡的這一特性來研究光學圖像加密中明文和密文之間的對應關系, 也就是說可以通過分析它們之間的關系來成功攻擊加密系統. Hai等[8]就曾使用卷積神經網絡(convolutional neural networks, CNN)成功破解了雙隨機相位編碼的光學圖像加密系統, 不過正如前面所說的, 此加密系統是線性且對稱的, 安全性較低, 同時破解難度也較低.
本文旨在使用深度學習的方法攻擊PTFT加密系統, 該加密系統為非線性且非對稱的系統, 破解難度較大. 通過以殘差網絡(residual network,ResNet)為基礎訓練大量的明密文對, 使神經網絡擬合明文和密文之間的對應關系, 將神經網絡訓練好之后, 輸入密文將可以得到恢復出的原文圖像.本文首先介紹了PTFT加密系統原理和ResNet工作原理, 然后闡述了利用ResNet訓練圖像數據的方法, 最后通過實驗驗證該方法的可行性, 并且和其他算法所恢復的圖像質量進行比較.
在基于PTFT的非對稱光學圖像加密系統中,兩塊隨機相位板R1,R2用作加密密鑰, 傅里葉頻譜面和輸出平面上的截斷相位P1,P2用作解密密鑰.加密密鑰是公開的, 解密密鑰只有特定的人才能擁有. 圖1為系統的加密解密原理圖.

圖1 基于PTFT的加密系統原理圖 (a) 加密過程; (b) 解密過程Fig. 1. Schematic diagrams of PTFT system: (a) Encryption; (b) decryption.
加密時, 輸入圖像f(x,y) 乘以第一個隨機相位板R1(x,y)=exp[j2πφ(x,y)] , 然后對其進行二維傅里葉變換, 將得到的傅里葉頻譜進行相位截斷, 截斷后的振幅為g1(μ,ν) ,g1乘以第二塊隨機相位板R2(μ,ν)=exp[j2πφ(μ,ν)], 再進行一次二維傅里葉逆變換得到一個復振幅, 將復振幅進行相位截斷便得到了密文圖像g(x,y). 加密公式如下所示:

其中PT表示相位截斷, FT表示傅里葉變換,FT-1表示逆傅里葉變換.
解密過程如圖1(b)所示, 相應公式如下:

通過上述公式可知, 該加密系統的加密密鑰和解密密鑰并不相同, 加密過程和解密過程不可逆,為非對稱加密系統. 在沒有得到解密密鑰的情況下無法恢復出原文圖像, 因此安全性得到提升, 更容易抵抗傳統攻擊方法.
傳統的CNN中, 隨著網絡層數的疊加, 特征也越來越豐富, 因此神經網絡層數越深, 理論上得到的效果越卓越. 但是簡單地增加網絡層數會導致兩個問題, 一個是在后向傳播的過程中不能有效地把梯度傳遞到前面的網絡層, 因此會出現梯度消失或者梯度爆炸的問題, 導致模型無法收斂, 影響網絡的性能. 初始化和正則化雖可以保證幾十層的網絡能夠正常收斂, 但是在更深層次的網絡中, 準確率達到飽和后效果反而變差. 另一個問題是退化現象, 模型精度下降, 訓練錯誤的頻率非常高, 相應的現象在CIFAR-10和ImageNet[9]中都有出現.
因此對于這種問題, He等[7]在2015年提出了殘差網絡模型(ResNet), 和傳統CNN相比, ResNet通過旁路支線將輸入傳遞到后面的網絡層, 這種結構稱為跳轉連接(skip connection)[10], 傳統的CNN在傳遞信息的時候, 會存在信息丟失的問題, ResNet這種直接將輸入與輸出連接的結構使得神經網絡只需要學習輸入與輸出差別的那部分, 學習更容易了, 這種模型緩解了梯度問題, 讓網絡學習到的內容更豐富. 其結構如圖2所示.

圖2 殘差網絡模塊Fig. 2. Residual module of ResNet.
本文提出的基于深度學習的攻擊PTFT加密系統的方法是在不知道密鑰的情況下對明文-密文對進行選擇明文攻擊, 因此需要大量的明文-密文對來制作訓練集, 將明文-密文對放進神經網絡中進行訓練, 讓神經網絡擬合從密文到明文的過程,從而達到解密的效果.
如圖3所示, 我們設計的基于ResNet神經網絡是一個端到端的結構, 圖像加密的過程可以描述為:

其中O是明文圖像,I是密文圖像, 盡管該加密系統不是一個對稱加密系統, 不能簡單地進行逆變換進行恢復, 但是神經網絡的訓練過程可以看作是加密的逆過程, 表示為:

P代表經過神經網絡恢復出來的圖像.
如圖3所示, 尺寸為 6 4×64 的灰度圖像先進入卷積層, 卷積層的卷積核的尺寸為 3×3 , 步長為1×1, 用于對輸入圖像進行特征提取. 此后經過卷積運算的圖像數據經過激活層, 激活函數為ReLU[11,12], 如下所示:

x代表神經網絡中上一層的輸出, 接下來經過殘差模塊, 殘差模塊中包括卷積層、批量歸一化(batch normalization, BN)層[13]和激活層, BN層可以加快收斂速度, 提高模型準確性并控制過擬合. 卷積核保持和之前的卷積層一致并輸出64張特征圖,圖3中設置了5個相同的殘差模塊, 經過5個殘差模塊后數據又依次被輸入到相應的層中, 最后, 我們可以從神經網絡中獲得 6 4×64×1 的圖像.

圖3 基于ResNet的網絡架構Fig. 3. Neural network based on ResNet.
為了更好地恢復密文圖像, 本文使用均方差(mean squared error, MSE)損失函數[14,15], 其定義如下:

其中xi和yi分別代表最后一層的輸出值和原始圖像的真值,M和N分別代表圖像的寬度和高度, 最后我們期望在訓練的過程中最小化損失函數, 當損失函數不再下降時, 訓練完成, 模型具有恢復原文圖像的能力.
本次實驗的硬件平臺采用的CPU是 Intel 至強 E5-2630V4, 內存為16 G, GPU為NVIDIA Ge-Force GTX1080Ti, 編譯環境為Python 3.6, 深度學習平臺為TensorFlow 1.12. 數據集基于MNIST[16],將所有MNIST數字圖像進行PTFT加密得到密文, 由明密文對組成的構成所有的數據集, 訓練集中有10000對明密文對, 驗證集和測試集中各有1000對, 每張圖像的大小為 6 4×64. 其中驗證集的目的是調整網絡的超參數, 而測試集的目的則是驗證神經網絡的泛化能力.
實驗中學習率設置為0.0001, 優化器采用的是Adam[17], batch size設置為16, 實驗結果如圖4所示, 圖4(a)是明文圖像, 圖4(b)是密文圖像, 圖4(c)是通過神經網絡恢復的明文圖像.

圖4 神經網絡重建效果圖 (a) 明文圖像; (b) 密文圖像;(c) 通過神經網絡恢復的明文圖像Fig. 4. Images reconstructed by neural network: (a) Plaintext; (b) ciphertext; (c) plaintext reconstructed by neural network.
為了測試模型的魯棒性, 可以將高斯噪聲添加進密文中, 然后檢測其重建效果. 本文使用與密文能量比分別為10%, 20%和50%的高斯噪聲得到被污染的密文, 并將其放入測試集中進行測試, 得到圖5所示結果. 圖5(a)是沒有添加噪聲的結果,圖5(b)是添加10%高斯噪聲的結果, 圖5(c)是添加20%高斯噪聲的結果, 圖5(d)是添加50%高斯噪聲的結果. 可以看到, 即使密文中帶有噪聲, 但是恢復出來的圖像仍然可以清晰地看到輪廓, 這表明本文提出的模型具有很強的抗噪聲能力. 但當密文中帶有噪聲比例較高如50%時恢復出來的圖像失真嚴重, 已難以辨認, 可以認為該神經網絡對噪聲的魯棒性范圍在50%以下.

圖5 含有不同能量比高斯噪聲的密文解密效果 (a) 0%;(b) 10%; (c) 20%; (d) 50%Fig. 5. Reconstruction results of ciphertext containing Gaussian noise with different energy ratios: (a) 0%; (b) 10%;(c) 20%; (d) 50%.
此后, 針對密文含有 2 0% 能量比高斯噪聲的情況, 我們嘗試讓訓練集中的密文也被與密文能量比為 2 0% 的高斯噪聲污染, 重新制作數據集并重新訓練, 再用訓練好的網絡去處理含有 2 0% 能量比高斯噪聲的測試集中的密文, 結果如圖6(b)所示.

圖6 使用含不同能量比高斯噪聲的密文訓練集后的測試效果 (a) 0%; (b) 20%Fig. 6. Test results after using ciphertext groups of Gaussian noise with different energy ratios: (a) 0%; (b) 20%.
作為對比, 圖6(a)是訓練集中密文沒有被高斯噪聲污染情況下訓練好的網絡, 對含有 2 0% 能量比高斯噪聲的測試集密文重建結果, 可以看到經過噪聲訓練的神經網絡在抗噪聲方面表現更佳. 因此在實際中, 如果待處理的密文含有噪聲, 可以考慮通過讓訓練集中的密文也遭受大致相當的噪聲污染的方法, 以提高網絡的訓練效果.
由于在實際應用中, 密文受到噪聲污染的比例通常是無法確定的, 因此針對訓練集和測試集噪聲比例不同做出的測試如圖7所示(測試集噪聲比例均為30%).

圖7 使用含不同能量比高斯噪聲的密文訓練集后的測試效果 (a) 0%; (b) 20%Fig. 7. Test results after using ciphertext groups of Gaussian noise with different energy ratios: (a) 0%; (b) 20%.
可以看到, 即使訓練集和測試集的噪聲比例不同, 經過噪聲訓練的神經網絡在恢復被噪聲污染的密文時仍然效果更好.
為了評價圖像質量, 我們使用峰值信噪比(peak signal to noise ratio, PSNR)和結構相似性(structural similarity index, SSIM)作為參考[18]:

其中X(i,j) 和Y(i,j) 分別代表原始圖像和恢復圖像的像素值,μX和μY分別是X(i,j) 和Y(i,j) 的均值,σX和σY分別是X(i,j) 和Y(i,j) 的標準差,σXY是X(i,j) 和Y(i,j) 的協方差,C1和C2用來保持穩定性, 使(10)式的分母任意時刻都不為0,k1=0.01,k2=0.03[19],L是像素值的動態范圍, 對于實驗中的圖像,L=255.
圖8分別是圖6(a), (b)的PSNR和SSIM, 可以從數據上得知, 加入噪聲訓練過的神經網絡, 在恢復有噪聲的密文圖像時的質量確實比沒有經過噪聲訓練的神經網絡恢復的圖像質量好.

圖8 圖6中圖像的PSNR和SSIM (a) PSNR; (b) SSIMFig. 8. PSNR and SSIM in Fig.6: (a) PSNR; (b) SSIM.
除了深度學習能夠恢復該加密系統加密后的圖像, 此前Wang和Zhao[20]曾提出使用兩步迭代振幅恢復算法來恢復加密圖像. 該算法建立在密文和加密密鑰公開的前提下, 可以簡單分為兩步進行, 第一步求PTFT加密系統中傅里葉平面上振幅分布的近似值, 給輸出平面上的相位分布即解密密鑰賦一個任意初始值, 根據密文求出迭代第一次的傅里葉平面上的振幅分布值, 由此值求出密文,與真正的密文的均方差表示迭代算法的收斂性. 第二步與第一步類似, 由第一步求出傅里葉平面振幅分布的近似值后, 根據此值和空域的隨機相位板迭代出明文圖像, 迭代出來的明文和原始明文的均方差表示迭代算法的收斂性. 根據此算法迭代10萬次得出圖9(b)結果.
從圖9中可以直觀地看出, 由本文提出的深度學習算法恢復出來的圖像質量好于兩步迭代振幅恢復算法恢復的圖像質量. 而從圖10中可以得知深度學習算法恢復的圖像的PSNR高于兩步迭代法恢復圖像的PSNR, 深度學習算法恢復的圖像的SSIM均高于0.5, 而兩步迭代法恢復圖像的SSIM均不高于0.1.

圖9 (a)深度學習算法恢復結果; (b)兩步迭代振幅恢復算法恢復結果Fig. 9. (a) Reconstruction results by deep learning; (b) reconstruction results by two-step iterative amplitude retrieval approach.

圖10 圖9中圖像的PSNR和SSIM (a) PSNR; (b) SSIMFig. 10. PSNR and SSIM in Fig. 9: (a) PSNR; (b) SSIM.
本文提出使用深度學習的方法攻擊基于PTFT的非對稱加密系統, 由于該加密系統在雙隨機加密系統的基礎上進行相位截斷, 因此該系統是非線性的加密系統, 攻擊難度大. 我們從深度學習角度對PTFT系統進行研究, 使用基于ResNet的神經網絡訓練明密文對數據集, 該網絡自動學習密文到明文的擬合過程. 實驗結果表明, 通過深度學習的方法能夠對密文圖像進行有效的恢復, 并且該網絡具有一定的抗噪聲能力. 與兩步迭代振幅恢復算法相比, 本文提出的方法恢復的圖像質量也遠好于它.在下一步的研究工作中將嘗試提高恢復圖像的質量, 并對更復雜的加密系統進行攻擊研究.