何文奇 陳嘉譽 張蓮彬 盧大江 廖美華 彭翔
(深圳大學物理與光電工程學院,光電子器件與系統教育部/廣東省重點實驗室, 深圳 518060)
本文提出了一種基于光與多重散射介質相互作用的光學Hash 函數構造方法.該方法創新性地利用多重散射介質對相干調制光的天然隨機散射作用, 實現了對調制光的“混淆”和“擴散”, 從而滿足了Hash 函數的核心功能要求: 高安全強度的單向編碼/加密.所設計的光電混合系統能有效地模擬Hash 函數中的“壓縮函數”, 結合具有特征提取功能的Sobel 濾波器, 能實現將任意長度的輸入數據壓縮并加密為固定長度為256 bit的輸出(即Hash 值).一系列仿真結果表明: 該方法所構造的光學Hash 函數具有良好的“雪崩效應”和“抗碰撞性”, 其安全性能可比擬當前最為廣泛使用的傳統Hash 函數(MD5 和SHA-1).
隨著信息技術和互聯網的發展, 人類進入了“信息爆炸”的時代.信息的爆炸式增長促進了人類社會的發展, 但是, 伴隨而來的信息安全問題也引起了人們的廣泛關注, 如何保證信息的安全性也成為了一個持續的研究熱點.目前, 信息安全技術通常可分為兩大類, 一類是基于數學運算的傳統信息安全技術; 另一類是基于非數學運算的新型信息安全技術, 主要包括: 量子加密、生物特征識別和光學信息安全[1]等.其中, 得益于“光學信息處理”具有并行處理以及多維運算的能力, 光學加密技術近年來吸引了不少學者們的關注.自Refregier 和Javidi[2]于1995 年提出基于4f 光學相關器的雙隨機相位編碼技術以來, 研究者們在此基礎上發展出了一系列相關的衍生技術[3?5].但是, 由于雙隨機相位編碼系統具有線性以及對稱性, 導致其存在一定的安全隱患, 這一點已經被多種密碼分析方案所證實[6?8].為了解決這一問題, 各國的研究者們陸續在此基礎上提出了多種安全性增強型的光學加密方案[9,10], 甚至是加、解密鑰不同的光學非對稱密碼系統[11?16].
眾所周知, 在信息安全領域中, 除了“加密”技術之外, 各類安全認證技術也同等重要, 其中,Hash 函數便是一種能夠高效地實現“數據完整性認證”的核心技術, 同時, Hash 函數也在數字簽名、數據檢索以及身份認證等眾多領域扮演著非常重要的角色[1].通常, 我們將Hash 函數視為一個單向加密系統, 它能將任意長度的輸入消息M 映射為固定長度的輸出h, 即h = H(M).為了保證其安全性, Hash 函數需滿足以下三個條件: 1) 對于給定的M, 易于計算出其對應的Hash 值h; 2) 對于給定的h, 難以計算出M; 3) 對于給定的M, 難以找到另一個消息M', 使得H(M)= H(M'), 即抗碰撞性[1].在傳統信息安全領域, 自MD4[17]算法在1990 年被提出以來, Hash 函數已取得了長足的進步.目前, 應用最廣泛的Hash 函數有兩大系列,即MD 系列[17]以及SHA 系列[18], 其中, MD5 和SHA1 是國際上通行的兩大Hash 函數.值得指出的是: 這兩種主流Hash 函數都是基于某種數學難題和復雜的數學運算而設計的.近年來, 在光學信息安全領域, 幾種基于光學思想和理論的Hash 函數也相繼被提出, 如2010 年, He 等[19,20]首次提出了一種基于級聯切相傅里葉變換的光學Hash 函數, 從理論上探索了用光電混合系統構建Hash 函數的可能性.隨后, Lai 等[21]又提出了一種基于雙光束干涉的光學Hash 函數, 并對其安全性能進行了系統分析.然而, 上述兩種方法的核心部件—壓縮函數, 其本質上都是一個線性過程, 盡管均引入了非線性操作, 但其理論上的安全隱患仍然存在.
本文將提出一種基于光與多重散射介質相互作用的光學Hash 函數.在該方法中, 以多重散射介質來構造核心部件—光學壓縮函數, 創新性地利用多重散射介質與相干調制光的相互作用, 進行天然而充分地隨機“擾亂”, 實現對調制光的“混淆”和“擴散”.文中將詳細描述所提光學Hash 函數的設計過程, 并給出相應的數值仿真實驗和結果分析.
Hash 函數的一般結構如圖1 所示, 它是一種基于消息預編碼的迭代結構, 通過級聯調用一個壓縮函數, 每次處理一個固定長度的消息分組, 最終輸出一個固定長度的Hash 值.可以看出, 其核心是壓縮函數f, 它以某一個消息分組Mi(i = 1, 2,3, ···, t)和上一個壓縮函數的輸出Hi(i = 2, 3, ···,t)為輸入, 輸出為Ht+1.Hash 函數算法還需要一個初始值H1以及變換函數g, 其中, 變換函數g 的作用是將壓縮函數的最終輸出Ht+1轉化成固定長度的Hash 值.用數學形式可將整個Hash 算法表示為:

圖1 Hash 函數的結構Fig.1.Schematic diagram of the Hash function.

如上所述, 壓縮函數是Hash 函數的核心單元,因此, 它的實現方式在很大程度上決定了Hash 函數的性能優劣.本文利用多重散射介質對相干調制光的天然而變幻莫測的“擾動效應”, 選擇以“多重散射介質”作為壓縮函數的核心部件來構造光學Hash 函數.擬用于實現基于多重散射的光學壓縮函數的光電系統結構如圖2 所示, 其中, SF 表示空間濾波器; L 表示準直透鏡; SLM1和SLM2分別表示振幅型空間光調制器和純相位型空間光調制器, 用于加載待處理的消息分組(復振幅分布);MSM(multiple scattering medium)表示多重散射介質; D 表示孔徑光闌.受SLM 調制的光經過多重散射介質時將以不可預知的方向隨機散射, 因此, 攜帶調制消息的光波將由于光的多重散射效應而被多次“混淆”和“擴散”.

圖2 實現基于多重散射的光學壓縮函數的光電系統結構示意圖Fig.2.Schematic diagram of optoelectronic architecture for realizing the optical compression function based on multiple scattering.
該光學壓縮函數的具體工作原理和流程如下:1) Mi(i = 1, 2, 3, ···, t)以及Hi(i = 1, 2, 3, ···,t)被編碼為8 位量化精度、大小為16 × 16 像素的圖像, 并分別以振幅和相位的形式加載在SLM1和SLM2上; 2) 用相干光照射SLM1和SLM2, 經過SLM1和SLM2調制的相干光衍射傳播至多重散射介質, 被其擾亂后, 在CCD (charge coupled device)上形成隨機散斑場; 3) 利用Sobel濾波器提取散斑的特征, 得到一個16 × 16 的特征矩陣,將其作為壓縮函數的輸出.
基于多重散射介質的光學Hash 函數的構造過程主要可分為三個步驟: 消息預處理、數據壓縮以及輸出變換.
在進行數據壓縮之前, 需要對原始消息進行預處理.預處理操作如下: 1) 將消息數據長度用64 bit二進制數表示, 并作為附加信息添加到消息末尾;2) 將1)中的數據劃分為固定長度的子塊數據, 若最后一個子塊數據的長度未達到所要求的固定長度, 則需要在其末尾進行數據填充, 一般做法是在末尾直接填充0 或1[10].預處理的步驟1)一般被稱為MD 強化, 其目的是為了增強算法的抗碰撞性.假設有兩則不同數據長度的消息A 和B, A 滿足分組要求無需進行填充, 而B 需要在其末尾全部填充0 或者1.消息B 經過填充之后, 其數據分布可能與消息A 相同, 因此, 經過同樣的Hash 函數之后得到相同的Hash 值, 這就意味著產生了碰撞, 這將是一個嚴重的安全漏洞.通過引入MD 強化, 由于不同的消息其數據長度不同, 因此可避免碰撞的發生.在步驟2)的消息分組中, 本方案將原始消息劃分為長度為2048 bit 的數據塊, 并將每一數據塊編碼成8 bit 量化精度的16 × 16 的圖像(M1, M2, ···, Mt).此外, 壓縮函數還需要一個初始輸入H1, 本方案以原始消息長度作為種子, 利用偽隨機數生成器生成2048 bit 二進制偽隨機數, 并將其編碼成8 bit 量化精度的16 × 16 的圖像H1, 其生成過程如圖3 所示.
經過消息預處理操作后, 得到了光學Hash 函數的初始輸入H1以及多個消息子圖(M1, M2, ···,Mt), 隨后即可利用光學壓縮函數對各消息子圖(分組消息)進行壓縮, 其流程圖如圖4 所示.步驟描述如下:
1) 用PC 分別將M1和H1以純振幅和純相位的形式寫入SLM1和SLM2, 則光波的復振幅可表示為


圖3 初始偽隨機圖像的生成Fig.3.Flowchart for creating initial pseudo-random image.

圖4 級聯壓縮流程圖Fig.4.Flowchart of cascade compression.
2) 經過SLM1和SLM2調制后的相干光傳輸至MSM 并與其相互作用, 最終在CCD 上形成散斑圖樣, 散斑圖樣的強度表示為

其中

h1(x,y,u) 和 h2(x,y,v) 分別對應衍射距離為 u 和v的菲涅耳衍射的點擴散函數; u 和 v 分別表示SLM2與MSM 之間的距離以及MSM 與CCD 之間的距離; P 代表MSM 的函數; *代表卷積運算符;
3) 利用Sobel 濾波器提取散斑圖樣的特征, 得到量化精度為8 bit 的16 × 16 圖像H2:

式中 e xtr(·) 代表特征提取操作.步驟2)和3)可用壓縮函數f (·) 合并表示為

4) 將M2,, H2分別寫入SLM1和SLM2, 并重復步驟2)和3), 得到下一個特征矩陣H3:

5) 同理, 對其他子圖像重復步驟1) — 3), 最終得到特征矩陣Ht+1.整個消息級聯壓縮過程如圖5 所示.

圖5 級聯壓縮過程Fig.5.Procedure of cascaded compression.
在輸出最終的Hash 值之前, 還需要對壓縮函數的最終輸出Ht+1做輸出變換.本方案以Ht+1的均值作為閾值, 將Ht+1中大于或等于均值的像素灰度值設置為1, 小于均值的像素灰度值設置為0,最后以逐行串接的形式將Ht+1中的值串聯, 得到256 bit 的Hash 值.
雪崩效應是評價Hash 函數安全性能的重要指標[17], 其表明當輸入消息產生微小變化時, 比如反轉一個二進制位, 輸出的Hash 值將發生很大變化,且依據嚴格雪崩準則, 當任何一個輸入位發生變化時, 一個性能良好的Hash 函數的Hash 值至少有一半的位數發生變化[22].為了評估雪崩效應以及所提出光學Hash 函數的穩定性, 擬采用以下幾個參數[17,18]:

(10)式中, hi和分別表示原始消息和將原始消息輕微改動后所對應的Hash 函數; L 和k 分別表示Hash 值的總長度和比特位序數; A EC(i)表示第 i 次測試的雪崩系數.(11)式中, AEC 和N 分別表示平均雪崩系數以及測試的總次數.顯然, 當AEC(i)和 AEC 的值越大時, 說明Hash 函數的雪崩效應越強, 同時, 當標準差 ? B 越小時, 說明Hash 算法的穩定性越好.
數值仿真測試步驟如下: 1) 用所提出的光學Hash 函數計算任意一個原始消息對應的Hash 值;2) 任意選取原始消息中的一位數據并對其進行修改, 計算消息被修改后的Hash 值.消息的具體修改過程如圖6 所示.首先, 隨機地選取圖像中的任一像素, 如圖6 黑色圓圈所示; 隨后提取該像素的像素值, 并通過二值化操作, 將該像素的像素值以二進制數的形式表示; 最后任意地選取這一像素值(二進制表示)的某一位執行數據的修改操作:若該位的數據值為“1”, 則將其修改為“0”, 類似地,若其值為“0”, 則將其修改為“1”; 3) 利用(10)式計算雪崩效應系數.

圖6 輕微修改原始消息的過程Fig.6.Flowchart of modifying the bit of message.
值得指出的是, 為了表征多重散射介質對于相干光(振幅和相位)的雙重“混淆”和“擴散”作用,仿真時選取10 層相互間隔一定距離的隨機相位掩模來表征多重散射介質, 間隔設置為 z =10 mm ,如圖7 所示.

圖7 多重散射介質仿真模型Fig.7.Simulation model of the MSM.
重復上述步驟2)和步驟3)共10000 次, 通過計算得到多個 A EC(i)值, 再結合(11)式以及(12)式可計算平均雪崩系數 AEC 及標準差 ? B ,利用這些參數可以評判一個Hash 函數的性能優劣.在仿真實驗中, 分別對隨機生成的10, 100 和1000 kbit 的原始消息進行測試, 測試結果如圖8所示.根據(11)式和(12)式計算平均雪崩系數AEC 及標準差 ? B , 結果如表1 所列.為了進一步驗證所提出的光學多重散射Hash 函數的性能, 比較了本方案與傳統的MD5 和SHA-1 的平均雪崩系數和穩定性數值, 相應的數值結果如表2 所列.
測試結果表明, 對三組不同數據長度的消息而言, 在10000 次的測試中, 任意改變原始消息中的某一位, 其對應的Hash 值與原始消息的Hash 值相比幾乎一半的位數發生改變, 說明所提出的光學Hash 函數具有良好的雪崩效應.同時, 在測試結果中, 三組數各自的 ? B 分別是0.0770, 0.0647,0.0636, 表明所提出的光學Hash 函數具有較好的穩定性.在測試過程中, 分別對三組不同長度的消息測試10000 次, 并未出現一次碰撞, 即 A EC(i)=0, 表明該Hash 函數具有優秀的抗碰撞性.進一步地, 通過對比可知, 本方法的雪崩效應系數與傳統Hash 函數(MD5 和SHA-1)相當(如表2).

表1 雪崩效應測試結果Table 1.Results of testing avalanche effect.

表2 與MD5 和SHA-1 算法的比較Table 2.Comparison with MD5 and SHA-1.

圖8 10000 次測試下的 A EC 分布, 消息長度為 (a) 10 kbit,(b) 100 kbit, (c) 1000 kbitFig.8.Distribution of AEC values in tests for the messages with (a) 10 kbit, (b) 100 kbit, and (c) 1000 kbit.
本文提出了一種基于光與多重散射介質相互作用的光學Hash 函數構造方法, 該光學Hash 函數以多重散射介質為核心部件, 利用多重散射介質對調制光進行天然而隨機的散射, 實現對輸入信息的混淆和擴散作用, 同時, 結合Sobel 濾波器進一步完成散射信號的特征提取, 最終實現了將任意長度的輸入消息壓縮為固定長度的輸出(Hash 值)的目的.相比于已報道的光學Hash 函數, 該方法利用了散射介質對輸入信號所具有的天然置亂特性, 提高了其光電混合實現的可行性.數值仿真結果表明, 所設計的光學Hash 函數具有優秀的雪崩效應以及抗碰撞性, 與傳統Hash 函數的安全性能相當.