李西明,吳嘉潤,吳少乾,郭玉彬,馬 莎
華南農業大學 數學與信息學院,廣州 510642
抗泄漏密碼學是伴隨著側信道攻擊技術而產生的,其主要關注的是如何設計可以抵抗各種側信道攻擊的安全密碼方案,用于消除秘密信息泄露對方案安全性的影響。2004年Micali和Reyzin提出的唯計算泄露模型[1]對抗泄漏密碼學研究具有開創性的意義。而Akavia 等人在文獻[2]中提出的弱密鑰泄露模型降低了構造安全的抗弱密鑰泄露攻擊的密碼方案的難度。Naor和Segev在文獻[3]中提出在弱密鑰泄漏模型中選擇明文安全的公鑰加密方案,使得抗泄漏密碼學可以擴展到更多的應用場景。近年來,國內相關研究者也集中研究了密鑰連續泄漏情況下密碼系統的安全問題[4-6]。
生成對抗網絡(Generative Adversarial Networks,GANs)由一個生成模型和一個判別模型組成,其核心思想是讓生成模型和判別模型對抗學習,兩者進行博弈,使得兩者在互相對抗過程中不斷強化,最后得到能夠生成以假亂真數據的生成模型。自Goodfellow等人[7]提出后,GANs 已被廣泛應用并取得了很好的成績,其中應用效果最好的是在計算機視覺領域,包括圖像生成及分割[8]、圖像風格遷移[9]等。另外,在信息檢索[10]、文本生成[11]等領域中也取得了令人矚目的成果。
2016 年 Google Brain 團隊 Abadi 等人利用生成對抗網絡進行了安全通信方面的研究[12]。該加密通信模型由兩個互相通信的神經網絡Alice 與Bob,以及一個竊聽者神經網絡Eve 組成。當Alice 與Bob 進行加密通信時,盡量限制Eve從竊聽Alice和Bob之間的通信中獲得信息。在訓練過程中,Alice 與Bob 在保證明文加密解密準確無誤的情況下盡力提高加密解密復雜度,而Eve則盡量使自己的解密結果與明文相近,提高解密的準確性。通過對抗訓練,可得到一個能夠保證正常通信并抵抗竊聽的加密通信模型。
本文研究使用生成對抗網絡來解決密鑰部分泄漏情況下安全加密通信問題。首先提出了基于生成對抗網絡的抗泄漏密碼學的基本架構,然后使用文獻[12]的Alice、Bob 和 Eve 在 16 位密鑰對稱加密方案下,泄露1比特密鑰時,模型基本可以實現安全的加密通信。進而對通信雙方及敵手的神經網絡模型進行增加全連接層、修改激活函數以及數據批規格化等方面的改進,改進后的神經網絡模型通過對抗訓練可實現8 比特及以下密鑰信息泄漏的安全保密通信。
Abadi等人在文獻[12]中把對稱加密系統通信雙方Alice與Bob以及敵方Eve均設計為神經網絡模型,并通過GANs 實現了在敵手監聽情況下的加密安全通信。其工作始于經典的密碼學場景,如圖1所示[12]。Alice與Bob 進行加密通信。Alice 利用密鑰K(Key)對明文P(PlainText)加密生成密文C(Ciphertext)。Bob 與 Eve均能夠完整獲取密文C。Bob通過密鑰K對密文C進行解密,解密后獲得消息PBob。Eve在沒有密鑰情況下對密文C解密,得到消息PEve。Alice 與Bob 組成的加密通信模型與Eve 的敵手模型在對抗訓練過程中不斷優化,最終使消息PBob與明文P完全相等,而PEve與P的差異盡量大。

圖1 安全加密通信中的Alice、Bob和Eve
圖2 給出Abadi 等人實驗中使用的神經網絡模型,其中Alice和Bob模型相同,Eve的神經網絡模型增加了一層全連接層用以模擬生成密鑰的過程。Alice輸入為P和K,加密輸出為C。Bob 輸入為C和K,解密輸出為PBob。Eve 作為敵手對信息進行竊聽,輸入為C,解密輸出為PEve。Alice與Bob通過訓練共同提升加密解密能力,保證解密結果PBob=P,敵手Eve 通過訓練提高解密能力,其目標是PEve=P,而實際訓練中降低PEve的損失率,使得PEve盡量接近P。通信方與敵手的對抗表現為在訓練過程中互相反饋,Eve的訓練結果用于下一輪Alice 和Bob 的加密解密訓練,Alice 和Bob的訓練結果用于Eve的下一輪解密訓練,從而提高加密通信方案的安全性。

圖2 Alice、Bob和Eve的神經網絡結構
其實驗在16 位明文(每比特取值為1 或-1)、16 位密鑰對稱加密條件下進行,通過對抗訓練,通信雙方可正常通信,即保證PBob=P,而Eve 解密結果保持與明文的差異在7~8比特之間,即解密結果與隨機生成的結果相似,未獲取更多有用信息。
為計算Alice 與Bob、Eve 解密結果與明文的差距,同時給出明文與解密明文之間的距離。設N為明文P和解密明文P0的長度,則P與P0之間的距離定義為:


因為Bob與Alice需要抵抗Eve的破解,所以損失需要涉及到Eve的損失LEve。通信方信息損失記作LBob,其計算公式定義為式(3)。

為描述方便,本文首先給出基于生成對抗網絡的抗泄露加密通信系統結構,如圖3 所示。圖3 中,Alice 與Bob是通信方,Alice利用密鑰K對信息P進行加密,生成密文C。Bob 接受密文C,利用密鑰K進行解密得到明文PBob(在此不考慮使用的是對稱加密還是非對稱加密方案,因為無論何種加密方案,加密和解密密鑰都是已知的)。Eve 是敵手,他通過監聽或獲取密文C與部分泄露的密鑰LK,利用C和LK解密得到明文PEve。Alice、Bob和Eve是具有相同計算能力的神經網絡,因為通信方Alice、Bob具有完整密鑰,無疑通過神經網絡訓練,可實現正常通信。Eve竊取密文C和部分密鑰LK,通過訓練可獲取盡量多的信息。抗泄漏加密通信的目標是通過神經網絡設計和對抗訓練實現Alice、Bob 雙方正常通信,而Eve 無法得到比隨機猜想更好的解密結果。極端情況下,即使Eve拿到16比特密鑰中的15比特,依然無法解密得到明文P,而Alice和Bob依舊保持正常通信。

圖3 抗泄露加密通信場景
本文首先使用Abadi 等人給出的Alice 與Bob 的神經網絡模型,如圖2所示。圖2中Eve模型的全連接層1是用來推測密鑰的,但在本文抗泄露加密通信中它已獲取了一個泄漏i比特的密鑰,同時假設ABC三方具有相同的計算能力,因此設定Eve 與Alice、Bob 的神經網絡模型相同,并為其增加一個新的輸入,即泄露i比特的密鑰LK。三方神經網絡模型與輸入輸出見圖4。

圖4 Alice、Bob和Eve初步的抗泄漏加密通信模型
本文在密鑰泄露1 比特、2 比特的情況下對通信雙方和敵手進行對抗訓練。實驗中Alice、Bob和Eve均采用AdamOptimizer 優化器進行模型優化。對抗訓練按輪進行。模型的學習速率均設為0.000 8。Alice的輸入端由明文P和密鑰K組成,Bob 的輸入端由密文C和密鑰K組成,Eve的輸入端由密文C與部分密鑰LK組成。其中P、K、LK和C均用長度為N的數組表示,檢測時N取16。P和K中每一位隨機取值為-1 或1。隨機選取密鑰K中的n位,生成部分泄漏密鑰LK,n代表密鑰相同的位數,剩余位由隨機數生成。如下為模型的偽代碼。
Alice網絡搭建:
(1)明文與密鑰K橫向拼接作為Alice 的輸入(設明文與密鑰長度均為N);
(2)Alice 輸入傳入2N×2N的全連接神經網絡,輸出經過激活函數sigmoid;
(3)卷積層1過濾器大小為4×1,掃描后輸出的網絡深度為2,步長為1,激活函數為relu函數;
(4)卷積層2過濾器大小為2×2,掃描后輸出的網絡深度為4,步長為2,激活函數為relu函數;
(5)卷積層3過濾器大小為1×4,掃描后輸出的網絡深度為4,步長為1,激活函數為relu函數;
(6)卷積層4過濾器大小為1×4,掃描后輸出的網絡深度為1,步長為1,激活函數為tanh函數;
(7)輸出的結果為密文C。
Bob網絡搭建:
(1)密文C與密鑰K拼接作為Bob輸入(設密文與密鑰長度均為N);
(2)Bob 輸入傳入 2N×2N的全連接神經網絡,輸出經過激活函數sigmoid;
(3)采用與Alice完全相同的卷積網絡結構。
Eve網絡搭建:
(1)把密鑰K中的隨機x位數賦值到泄漏的密鑰K′中作為泄漏的信息,其他數用隨機數生成,得到泄漏的密鑰K′;
(2)密文C與泄漏的密鑰K′拼接作為Eve的輸入;
(3)Eve輸入傳入2N×2N的全連接神經網絡,輸出經過激活函數sigmoid;
(4)采用與Alice完全相同的卷積網絡結構。
首先對Alice和Bob 進行加密解密訓練,訓練2 000次,穩定后利用其訓練結果對Eve 進行解密訓練,同樣訓練2 000次可達到穩定。下一輪利用Eve的解密結果對Alice 和Bob 進行加密解密訓練,再利用其訓練結果對Eve進行解密訓練。此訓練共進行10輪,訓練結果如圖5所示。

圖5 模型的抗泄露訓練結果
圖5 中,在泄漏1 比特密鑰時Alice 和Bob 在訓練5輪以后可達到穩定,信息損失率接近0,而Eve 經過10輪訓練其損失率仍保持在0.80~0.85之間,接近最好值1。依據式(2),此時Eve 解密正確的比特數約占明文長度的40%~50%,接近隨機猜想的正確位數。此情況與原加密通信方案沒有密鑰泄露的情況相比,Eve獲得了稍多一點的信息,但遠無法達到完全解密的程度。泄漏2比特密鑰時,Alice和Bob在訓練2輪以后可達到穩定,比泄露1 比特密鑰訓練速度快。Eve 經過10 輪訓練后可達到穩定,但其信息損失穩定在0.6~0.7 之間,即Eve解密正確的比特數約占30%~35%,由于明文取值僅有1和-1,此情況等價于解密正確位數占的比例65%~70%,此時泄漏信息略多,不再是一個可接受的抗泄露加密通信方案。
抗泄露加密通信的關鍵在于部分密鑰泄漏,既要保證通信雙方Alice和Bob的正常通信,又要保證在Eve得到部分密鑰情況下無法正確解密。由上文實驗可知,Abadi等人給出的神經網絡模型在泄露1比特密鑰情況下勉強可用,但泄露2比特及以上時,無法使用,因此無法直接用來解決抗泄露加密通信問題。本文從改進激活函數、增強神經網絡功能以及批規格化三方面對此模型進行改進,并通過實驗來驗證抗泄露加密模型。
分析實驗過程,在泄漏密鑰位數增加時,圖4中Eve神經網絡模型的損失下降顯著,說明Eve越來越容易破解密文了。模型中使用relu 激活函數容易導致神經元死亡現象,通過對模型中死亡神經元個數統計得出,Alice與Bob 死亡神經元比例約為34%,Eve 的死亡神經元比例為50%。死亡神經元出現原因在Xu 等人的文獻[13]中已指出。
以下給出修改激活函數的具體原因。圖6為relu與leaky relu 的函數圖像,由圖可知,relu 函數在輸入為負數時輸出的結果恒為0,因此relu 函數在負半軸的導數也恒為0。由于神經網絡的權值更新是通過反向傳播實現的,而反向傳播即通過計算損失E對權值w的偏導數來更新權值,當神經元的輸出為負數時,relu 的導數必然是0,因此權值w將不會進行更新。正因如此,使用多層relu 神經網絡(若都使用relu 作激活函數)的時候,容易出現大面積的神經元死亡,即大部分的神經元不再更新權值,代表神經網絡的學習進程停滯。本文提出使用leaky relu 函數,因為此函數在負半軸的導數不恒為0,有效地保證當輸入落在負半軸時損失E對權值w的偏導數不恒為0,權值依然能夠進行更新,避免由于神經元死亡而導致的學習進程停滯的問題。故將模型中所有卷積神經網絡的relu 激活函數修改為leaky relu函數,其余部分結構不變。

圖6 relu與leaky relu激活函數
圖7 給出修改激活函數后,1~5 比特密鑰泄露情況下的訓練結果。為描述方便,圖7 橫坐標改為輪數,每輪訓練中首先對Alice 和Bob 的加密解密進行訓練,再利用訓練結果對Eve 進行訓練。每輪訓練對Alice 和Bob、Eve 各訓練2 000 次。實驗過程中發現對3 個網絡的訓練都可以2 000次以內達到穩定狀態。從圖7中可以看出,修改激活函數之后模型的能力得到提升,且沒有出現Bob無法解析密文的情況。Eve在1、2比特密鑰泄露情況下訓練較為平穩,均可達到接近0.9 的信息損失。當Eve 已知位數達到3 和4 后信息損失出現波動,無法進入平滑優化。據統計,死亡神經元的比例下降了約1%。同時因為修改激活函數后減少了死亡神經元的出現,所以模型的訓練時間也有所增加,增長比例約為5.7%。

圖7 測試1~5比特密鑰泄露的運行結果
通過上一節的操作,把安全通信的密鑰泄漏提高到了2 比特,密鑰泄漏比特數進一步提高后,就無法進行安全通信了,也就是說,Bob和Eve都不能正確解密Alice發送的密文。這說明,接收網絡和敵手網絡被加密的信息迷惑,網絡解密能力達到了極限。如果增強Bob 和Eve的網絡模型,其解密能力就能提高,但是由于Eve只有部分密鑰,其解密能力的提升程度應該低于Bob。為驗證這一想法,通過增加全連接層的方法來同步增加Bob與Eve的解密能力,保證Bob與Eve的解密能力一致。
模型修改:對Bob 和Eve 的神經網絡模型在圖4 基礎上增加全連接層2,激活函數取tanh函數,他們的輸入輸出保持不變。Alice 神經網絡和輸入輸出都保持不變。同時按4.1節對3個神經網絡的卷積層1~3,將激活函數修改為leaky relu函數。
以下給出使用tanh 的具體原因。圖8 為sigmoid 與tanh 函數的導函數圖像,由圖可知sigmoid 導函數的值域在[0,0.25],而 tanh 導函數的值域在[0,1]。因為 sigmoid 的導數最大為0.25,所以在更新權值、計算偏導數的過程中必然也乘了一個小于等于0.25 的值。因此這樣計算出來的偏導數會偏小。隨著sigmoid 層數的增加,會有更多的數相乘,這種現象會越來越嚴重,最終導致權值的更新過小,即反向傳播的信息量被大量減少,近似于沒有任何更新,從而出現死亡神經元,學習進度停滯。本文使用的tanh 的導數比sigmoid 的導數大,因此相比sigmoid,權值更新的值并不會被壓縮得太小,神經網絡層數增加時,對更新的數值影響也不會太大。因此tanh能夠有效地減緩死亡神經元的現象,從而避免神經網絡學習進程停滯的問題[13-14]。因此,此處取全連接層2的激活函數為tanh函數,不取sigmoid函數。

圖8 sigmoid與tanh的導函數
對1~5比特密鑰泄露情況,本文對Alice、Bob和Eve進行訓練,訓練結果如圖9所示。由圖9可知,整體上增加全連接層后模型穩定性增強。同時,Bob的解密能力明顯增強,經1~3 輪訓練后可達到穩定,且其信息損失均接近0。Eve 在1~3 比特密鑰泄露情況下訓練較為平穩,均可達到0.8 左右的信息損失。但是在4~5 比特密鑰泄露情況下Eve信息損失波動在0.4~0.7之間,平均在0.6附近,無法進一步提升。

圖9 測試1~5比特密鑰泄露的運行結果
進一步分析4.2 節的實驗結果,模型在增加全連接層后穩定性得到了提升,但很可能陷入局部最優位置。因此考慮對全連接層加入規格化處理來減少數據差異性因素對模型優化的影響,提升神經網絡尋找最優解的能力。
數據規格化(Scaling)又稱數據尺度歸一化[15],就是將數據的取值范圍映射到一個特定范圍之內,以消除數值型屬性因大小范圍不一而影響基于距離的分類方法結果的公正性。本文對Bob、Eve 模型的輸入數據采用取零均值規格化方法進行處理,取均值為0,方差為1。修改后Alice、Bob和Eve模型見圖10。
增加數據規格化處理后,對密鑰泄漏1~9比特的情況進行模型訓練,結果見圖11。由圖11 可知,Bob 與Eve 在增加數據規格化后整體解密能力都有較大提高。數據規格化起到進一步增加模型穩定性,同時避免陷入局部最優的作用。Bob的解密能力經過1~3輪訓練后可達到穩定,信息損失接近0。Eve在密鑰泄漏1~7比特情況下收斂都很快,在訓練9 輪后可達到穩定狀態,且信息損失可達到0.8左右。密鑰泄漏達到8比特時收斂變慢,但信息損失仍可達到0.8 附近。但當密鑰泄漏達到9 比特時收斂較慢,經19 輪訓練后才基本達到穩定,而信息損失在0.6 附近。可見,圖10 給出的模型對1~8比特密鑰泄漏,在多輪訓練可得到安全的抗泄漏加密通信模型。繼續增加密鑰泄漏位數情況下,無法得到安全的抗泄漏加密通信模型。

圖10 抗泄漏加密通信模型

圖11 測試1~9比特密鑰泄露的運行結果
本文利用神經網絡、生成對抗網絡解決抗泄露加密通信問題,給出基于生成對抗網絡的抗泄露加密通信方案。從Abadi等人的安全加密通信模型出發,通過一系列實驗改進,在16位密鑰對稱加密通信環境中,密鑰泄露達到8位時仍可保證安全的抗泄露加密通信模型。
本文為抗泄露加密通信提供了一種全新的解決思路,并通過實驗證明了思路的可行性。但本文對神經網絡的改進目前僅從提高神經網絡復雜性、激活函數和數據規格化方面開展,所使用的方法主要是提高模型整體解密能力和穩定性。
對抗泄漏加密通信問題,還可從更加精巧、更具有針對性的神經網絡結構,更強的加解密能力,增加神經網絡模型的存儲能力等方面入手。期望通過實驗實現僅剩余1 比特密鑰未泄漏的極端情況下仍能保證安全通信的終極目標。