密碼,不只是你打開(kāi)手機(jī)時(shí)輸入的那幾個(gè)數(shù)字,它還關(guān)系到你銀行里的存款、電腦里的裸照,甚至,世界和平。 電影《模仿游戲》(The Imitation Game)講述的就是關(guān)于著名密碼系統(tǒng)恩尼格瑪(Enigma)的故事。這里不討論電影中情節(jié)的真實(shí)性,但二戰(zhàn)時(shí)納粹德國(guó)正是利用了這套密碼系統(tǒng),隱秘而高效地傳遞著軍事情報(bào)。恩尼格瑪?shù)淖罱K破譯成功地扭轉(zhuǎn)了戰(zhàn)局。人們普遍認(rèn)為,它的破譯使盟軍在西歐的勝利提早了兩年。 電影《模仿游戲》的海報(bào)。圖片來(lái)源:wikipedia 一直以來(lái),設(shè)計(jì)和破解密碼都是人類的專利。然而隨著密碼學(xué)理論的提升與計(jì)算機(jī)能力的增強(qiáng),現(xiàn)代的密碼變得越來(lái)越復(fù)雜,人們開(kāi)始尋求讓機(jī)器替代人類的辦法。不過(guò)這就涉及到一個(gè)問(wèn)題:用0和1思考的“機(jī)器大腦”能學(xué)會(huì)對(duì)信息進(jìn)行加密嗎? 在谷歌大腦(Google Brain)的最新的研究成果《讓對(duì)抗神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)保護(hù)通信》(Learningto Protect Communications with Adversarial Neural Cryptography)中,人們就試圖教會(huì)機(jī)器加密與解密信息1。這次,思考密碼術(shù)的不再是人類的大腦,而是“神經(jīng)網(wǎng)絡(luò)”與“生成對(duì)抗網(wǎng)絡(luò)”(Generative Adversarial Network)結(jié)合而成的機(jī)器之“腦”。 神經(jīng)網(wǎng)絡(luò),生成對(duì)抗網(wǎng)絡(luò)與密碼術(shù)神經(jīng)網(wǎng)絡(luò)神經(jīng)網(wǎng)絡(luò)全稱人工神經(jīng)網(wǎng)絡(luò),是一種模仿動(dòng)物神經(jīng)系統(tǒng)結(jié)構(gòu)和功能的計(jì)算模型。在經(jīng)歷過(guò)歷史中的幾度沉浮后,如今它已成為科研界與工業(yè)界的新寵,在人工智能及相關(guān)領(lǐng)域中炙手可熱。 神經(jīng)網(wǎng)絡(luò)由大量的“感知機(jī)”(Perceptron)相互連接構(gòu)成。感知機(jī)類似于生物神經(jīng)系統(tǒng)中的神經(jīng)元,是神經(jīng)網(wǎng)絡(luò)中最基本的單元。 神經(jīng)網(wǎng)絡(luò)并非生來(lái)就具備強(qiáng)大的功能,它也需要訓(xùn)練才能掌握技能。比如我們希望神經(jīng)網(wǎng)絡(luò)通過(guò)西瓜的外形判斷瓜的甜度,一開(kāi)始神經(jīng)網(wǎng)絡(luò)并不懂如何去判斷,這時(shí)就需要分別把西瓜的外形和對(duì)應(yīng)的甜度分別輸入神經(jīng)網(wǎng)絡(luò),以訓(xùn)練它去學(xué)習(xí)兩者之間的對(duì)應(yīng)關(guān)系。訓(xùn)練神經(jīng)網(wǎng)絡(luò)的過(guò)程實(shí)際上就是通過(guò)學(xué)習(xí)數(shù)據(jù)來(lái)調(diào)整每一個(gè)感知機(jī)參數(shù)的過(guò)程。神經(jīng)網(wǎng)絡(luò)讀取數(shù)據(jù)樣本后,感知機(jī)們會(huì)先根據(jù)現(xiàn)有模型參數(shù)進(jìn)行計(jì)算,然后把輸出的值與真實(shí)值進(jìn)行比較,再將兩者的差距反饋回去,以調(diào)整參數(shù)。經(jīng)過(guò)反復(fù)多次“計(jì)算-比對(duì)-反饋-調(diào)整”的循環(huán)后,神經(jīng)網(wǎng)絡(luò)就能夠準(zhǔn)確地判斷瓜甜還是不甜了。 生成對(duì)抗網(wǎng)絡(luò)很多時(shí)候訓(xùn)練數(shù)據(jù)的真實(shí)結(jié)果信息難以獲得——比如不能把每個(gè)瓜切開(kāi)嘗嘗。生成對(duì)抗網(wǎng)絡(luò)利用模塊間的對(duì)抗,巧妙地避開(kāi)了這個(gè)問(wèn)題。 生成對(duì)抗網(wǎng)絡(luò)中主要有兩個(gè)模塊:負(fù)責(zé)生成的模塊G和負(fù)責(zé)判別的模塊D。我們用模仿畫(huà)作的例子來(lái)說(shuō)明兩個(gè)模塊的作用。G是一位初出茅廬的畫(huà)家,想要通過(guò)模仿名畫(huà)的來(lái)提升自身能力。在每次模仿名畫(huà)之后,G畫(huà)家會(huì)將自己的贗品與真品一同送給鑒定師D。D的主要任務(wù)便是鑒定送來(lái)的畫(huà)哪一幅是真品哪一幅是贗品。剛開(kāi)始,G畫(huà)家的水平一般,D鑒定師能夠很輕松的鑒定出真?zhèn)?。隨著G畫(huà)家的模仿水平的提高,D鑒定師無(wú)法分辨真?zhèn)?。這個(gè)時(shí)候,我們便可以說(shuō)G畫(huà)家的模仿水平相當(dāng)?shù)膬?yōu)秀了。這也是我們想要的結(jié)果,模仿能力卓絕的生成模塊G。 人類的密碼術(shù)說(shuō)完網(wǎng)絡(luò),再說(shuō)說(shuō)密碼術(shù)。在密碼術(shù)中,能夠直接代表原文含義的信息稱為明文;經(jīng)過(guò)加密處理之后隱藏原文含義的信息稱為密文。加密與解密便是明文與密文相互轉(zhuǎn)換的過(guò)程,而密鑰是用來(lái)加密與解密的工具。密鑰好比一本雙語(yǔ)字典,你既可以用它把明文翻譯成密文,也可以通過(guò)它查找密文所對(duì)應(yīng)的明文是什么。在信息保密過(guò)程中,密鑰的安全格外重要。因?yàn)檎业矫罔€就是找到了加密和解密的方法,密碼也就迎刃而解。早期的密碼設(shè)計(jì)有替換法與位移法。替換法就是有規(guī)律的使用一組字母來(lái)代替原有字母,例如每個(gè)字母用上一個(gè)字母取代,“abc”替換為“zab”;移位法就是將字母順序重新排列,例如“Key”變成“yeK”。這樣的密碼可以分別使用窮舉法和統(tǒng)計(jì)法進(jìn)行破解。后來(lái)密碼的書(shū)寫(xiě)發(fā)生了手寫(xiě)到機(jī)器書(shū)寫(xiě)的轉(zhuǎn)變,這也使得密碼的編寫(xiě)變得千變?nèi)f化。 不過(guò),這是人類的密碼術(shù)。作為機(jī)器之腦的神經(jīng)網(wǎng)絡(luò)也能“想”出類似的技術(shù)對(duì)信息進(jìn)行加密嗎? 機(jī)器能學(xué)會(huì)加密信息嗎?回到谷歌大腦最新的研究上。研究者向神經(jīng)網(wǎng)絡(luò)A中投入明文和密鑰數(shù)據(jù),它的計(jì)算結(jié)果會(huì)作為密文,與密鑰一起交給另一個(gè)神經(jīng)網(wǎng)絡(luò)B,并由B進(jìn)行解密。而A、B組成的生成對(duì)抗網(wǎng)絡(luò),則會(huì)試圖在對(duì)抗中使解密出的數(shù)據(jù)趨近原始明文。當(dāng)然,整個(gè)過(guò)程中神經(jīng)網(wǎng)絡(luò)并不懂“明文”“密文”的概念,因?yàn)檠芯咳藛T絲毫沒(méi)有向它們透露人類密碼術(shù)的相關(guān)知識(shí)。它們只知道自己收到了數(shù)據(jù),又要輸出數(shù)據(jù)。研究者通過(guò)這樣的方式,探究神經(jīng)網(wǎng)絡(luò)能否自己“思考”出機(jī)器的密碼術(shù)來(lái)實(shí)現(xiàn)對(duì)信息加密、解密的功能。 實(shí)際操作中,研究者設(shè)計(jì)了一種通用的保密情況,叫做對(duì)稱加密模型。對(duì)稱加密是指溝通雙方有公共的密鑰,而竊聽(tīng)者沒(méi)有。研究者在該模型中加入了三個(gè)獨(dú)立的神經(jīng)網(wǎng)絡(luò)模塊,分別取名為Alice、Bob和Eve。這三個(gè)神經(jīng)網(wǎng)絡(luò)模塊共同構(gòu)成了對(duì)抗神經(jīng)網(wǎng)絡(luò)的主體。 我們可以把它們想象成是三個(gè)人:Alice想和Bob進(jìn)行秘密溝通,而Eve想要竊取他們的通信。為了防止秘密被Eve知道,Alice制定了密鑰并共享給Bob。通信的時(shí)候,Alice首先通過(guò)密鑰將信息進(jìn)行加密,然后將加密后的信息發(fā)送出去。這時(shí)Bob和Eve都能接收到信息,不同的是,Bob可以通過(guò)共享的密鑰對(duì)信息解密,而Eve需要自己想辦法猜測(cè)信息的內(nèi)容。 方框分別代表著三個(gè)獨(dú)立的神經(jīng)網(wǎng)絡(luò),P是明文,K是密鑰,C是密文,PBob和PEve分別是Bob與Eve對(duì)密文的預(yù)測(cè)結(jié)果。 參考文獻(xiàn):arXiv:1610.06918 如圖所示,K是Alice和Bob共享的密鑰,P便是要進(jìn)行加密的信息。C是Alice轉(zhuǎn)換出的密文,它會(huì)被Eve和Bob收到并進(jìn)行解密,兩人各自解密得到的結(jié)果則為PBob和PEve。研究者通過(guò)統(tǒng)計(jì)PBob和PEve中與P相同的數(shù)據(jù)有幾位來(lái)計(jì)算解密結(jié)果的準(zhǔn)確性。 當(dāng)然,我們希望PBob與P越接近越好,而PEve與P值差距越大越好。這表示通過(guò)Bob解密的信息是準(zhǔn)確的,而竊聽(tīng)者難以通過(guò)Eve得到被加密的信息。 基于以上這些設(shè)置,研究者開(kāi)始對(duì)這個(gè)加密模型訓(xùn)練。每一次的訓(xùn)練過(guò)程中,神經(jīng)網(wǎng)絡(luò)Alice會(huì)接收到4096套K和P作為訓(xùn)練樣本。K、P都是16位二進(jìn)制數(shù)據(jù),Bob和Eve輸出的解密文件也是16位二進(jìn)制數(shù)據(jù)。通過(guò)統(tǒng)計(jì)每次訓(xùn)練后Bob和Eve解密結(jié)果的與明文P的對(duì)應(yīng)數(shù)位的數(shù)字,研究人員得到了如下圖的結(jié)果: Bob和Eve解密信息的錯(cuò)誤率隨實(shí)驗(yàn)次數(shù)的變化曲線。橫軸是訓(xùn)練次數(shù),縱軸是錯(cuò)誤的字節(jié)數(shù)。紅線與綠線分別代表著B(niǎo)ob與Eve錯(cuò)誤字節(jié)數(shù)的變化情況。在進(jìn)行到10000次左右的時(shí)候,Bob迷之反擊了Eve。參考文獻(xiàn):arXiv:1610.06918 訓(xùn)練剛開(kāi)始的時(shí)候,Bob和Eve的錯(cuò)誤位數(shù)都是8,對(duì)于一個(gè)16位的二進(jìn)制文本來(lái)說(shuō),隨便生成的16位數(shù)字在概率上錯(cuò)誤位數(shù)就是8——這時(shí)Bob和Eve都還沒(méi)有具備解密的能力。伴隨的神經(jīng)網(wǎng)絡(luò)之間的對(duì)抗,每個(gè)神經(jīng)網(wǎng)絡(luò)不斷的調(diào)整其中感知機(jī)參數(shù)的數(shù)值,Alice和Bob也逐漸獲得了極強(qiáng)的加密與解密能力。當(dāng)?shù)M(jìn)行到7000次的時(shí)候,Bob預(yù)測(cè)明文的錯(cuò)誤率大幅度的下滑。在15000次訓(xùn)練之后,Bob預(yù)測(cè)的錯(cuò)誤位數(shù)已經(jīng)幾乎為0,而此時(shí)Eve的錯(cuò)誤位數(shù)為仍徘徊在8左右。也就是說(shuō)Eve的破解密碼的能力基本上仍然等于瞎猜,這時(shí)Alice發(fā)出的信息非常安全。 經(jīng)過(guò)這樣的訓(xùn)練后,研究人員得到了一個(gè)具有極強(qiáng)加密能力的神經(jīng)網(wǎng)絡(luò)Alice。雖然研究人員并沒(méi)有教給Alice任何密碼術(shù)的知識(shí),但Alice已經(jīng)在對(duì)抗中習(xí)得了保密信息的技巧。 在研究了對(duì)稱加密模型之后,研究者們還對(duì)非對(duì)稱的加密模型進(jìn)行了研究。與對(duì)稱加密模型不同的是,這一次只有Bob擁有密鑰K,Alice和Eve擁有由K生成的公鑰。公鑰是由密鑰按照一定規(guī)則生成的,它包含了密鑰的部分信息。 與之前的研究相比,該結(jié)構(gòu)中多了公鑰,Alice、Bob與Eve都能接收到該公鑰。參考文獻(xiàn):arXiv:1610.06918 經(jīng)過(guò)同樣的訓(xùn)練后,研究者們得到了非對(duì)稱加密模型的解密準(zhǔn)確率。這次的保密效果沒(méi)有預(yù)想中的好,測(cè)試結(jié)果也比對(duì)稱加密模型更難解讀。在絕大多數(shù)的測(cè)試中,Eve的錯(cuò)誤字節(jié)都在8以下,甚至與Bob的錯(cuò)誤率相當(dāng)。也就是說(shuō)在非對(duì)稱加密模型中,Eve幾乎總能竊取到Alice和Bob的秘密信息。下圖展示的是一個(gè)保密效果較好(也就是Eve錯(cuò)誤率較高)的測(cè)試結(jié)果,圖中Eve的錯(cuò)誤字節(jié)數(shù)也下降到了7: Bob和Eve解密信息的錯(cuò)誤率隨實(shí)驗(yàn)次數(shù)的變化曲線(非對(duì)稱),即使在保密效果較好的情況下,Eve仍能獲取少量信息。參考文獻(xiàn):arXiv:1610.06918 這個(gè)結(jié)果說(shuō)明,將對(duì)稱模型改為非對(duì)稱加密模型對(duì)于對(duì)抗神經(jīng)網(wǎng)絡(luò)的訓(xùn)練結(jié)果有著很大的影響。對(duì)于這樣的變化,研究員們計(jì)劃通過(guò)兩種途徑來(lái)增強(qiáng)在非對(duì)稱模型下Alice的保密效果,分別是使用新的神經(jīng)網(wǎng)絡(luò)或者是新穎的訓(xùn)練方式。但進(jìn)一步的研究將會(huì)如何進(jìn)行,我們還要等待谷歌大腦的新論文。 除了更換保密模型,研究員還將對(duì)稱模型中明文和密鑰的數(shù)據(jù)位數(shù)由16位變成32位以及64位。位數(shù)變化后測(cè)試的結(jié)果與原來(lái)的結(jié)果是相同的,即Alice發(fā)出的信息依然能夠被很好的保護(hù)起來(lái)。這就說(shuō)明該對(duì)抗神經(jīng)網(wǎng)絡(luò)能夠加密更多的信息。如果擴(kuò)展到128位、256位,甚至成千上萬(wàn)位呢?如果結(jié)果依然相同,那么Alice的加密能力就有希望用于海量數(shù)據(jù)的加密與保護(hù)。 在這里我們不禁要問(wèn),在對(duì)稱模型下,只用“0”和“1”思考的神經(jīng)網(wǎng)絡(luò)為何能夠表現(xiàn)的如此優(yōu)秀。 遺憾的是我現(xiàn)在無(wú)法給出答案。目前所有這方面的研究中對(duì)此并有沒(méi)有很明確地解釋??梢哉f(shuō)神經(jīng)網(wǎng)絡(luò)對(duì)于科學(xué)家們來(lái)講依舊是一種難解釋的“黑箱模型”。對(duì)于現(xiàn)在的神經(jīng)網(wǎng)絡(luò)來(lái)說(shuō),尚缺乏一套完整系統(tǒng)的理論指導(dǎo)。在神經(jīng)網(wǎng)絡(luò)研究快速發(fā)展起來(lái)之前,我們還需要更多像谷歌大腦這樣的探索。 為什么要讓機(jī)器學(xué)習(xí)數(shù)據(jù)加密?你是否還記得阿爾法圍棋(AlphaGo)和它的升級(jí)版“大師”(Master)在圍棋界攪起的血雨腥風(fēng)?我們暫且不談?wù)摪柗▏宓目蚣芙Y(jié)構(gòu),只是簡(jiǎn)單地說(shuō)說(shuō)它對(duì)我們的影響。阿爾法圍棋在對(duì)弈的過(guò)程中會(huì)落下與我們固有思想不同的棋子,這種機(jī)器的“思維”在一定程度上會(huì)給我們提供不一樣的思考方式,幫助我們更好地探究圍棋的技巧。 谷歌大腦的這次新穎且大膽的研究則是一次密碼學(xué)中的嘗試,期待著機(jī)器的思維能夠?yàn)閭鹘y(tǒng)的信息加密技術(shù)提供新穎的想法。在訓(xùn)練神經(jīng)網(wǎng)絡(luò)的過(guò)程中,研究人員并沒(méi)有將密碼學(xué)相關(guān)的算法放進(jìn)模型中,而是通過(guò)神經(jīng)網(wǎng)絡(luò)之間的對(duì)抗,讓Alice自己獲得了高超的加密能力。當(dāng)然這并不是說(shuō)我們已經(jīng)能拋開(kāi)密碼學(xué),轉(zhuǎn)而依賴神經(jīng)網(wǎng)絡(luò)的自身學(xué)習(xí)能力了。考慮到神經(jīng)網(wǎng)絡(luò)的安全性與穩(wěn)定性,Alice的“密碼術(shù)”還不能立刻用于生活中的信息加密。但是另一方面,一旦我們能夠穩(wěn)定的使用神經(jīng)網(wǎng)絡(luò)對(duì)數(shù)據(jù)進(jìn)行加密且確保加密內(nèi)容難以被破解,便可以將其利用在日常的信息加密中,甚至用于國(guó)家安全信息的保護(hù)。 也許,機(jī)器密碼術(shù)的時(shí)代已經(jīng)不遠(yuǎn)了。(編輯:婉珺) 參考文獻(xiàn):
|
|
來(lái)自: 昵稱535749 > 《網(wǎng)絡(luò)安全》