佘維,榮欣鵬,劉煒,田釗
(1.鄭州大學(xué)網(wǎng)絡(luò)空間安全學(xué)院,河南 鄭州 450001;2.河南省網(wǎng)絡(luò)密碼技術(shù)重點(diǎn)實驗室,河南 鄭州 450001;3.鄭州市區(qū)塊鏈與數(shù)據(jù)智能重點(diǎn)實驗室,河南 鄭州 450001)
隱蔽通信通常被認(rèn)為是在網(wǎng)絡(luò)環(huán)境中滿足現(xiàn)行協(xié)議或標(biāo)準(zhǔn)的通信雙方制定相應(yīng)規(guī)則進(jìn)行不引起第三方注意的隱蔽信息傳輸行為[1]。隨著個人計算機(jī)計算能力的大幅度提升與計算架構(gòu)的快速發(fā)展,傳統(tǒng)的保護(hù)隱私安全的方法受到了前所未有的挑戰(zhàn)[2-3]。隱蔽通信是一種非常規(guī)的通信方法,近年來越來越多的研究者提出可將其作為對傳統(tǒng)加密通信的有力補(bǔ)充手段之一。
研究者通常認(rèn)為現(xiàn)代的隱蔽通信起源于Simmons 提出的囚徒模型[4]。有別于常用的隱蔽信息傳輸媒介,區(qū)塊鏈作為一種具備去中心化、去信任、不可篡改、開放共識等特點(diǎn)的分布式技術(shù)平臺,其特性契合隱蔽通信的需求,可解決傳統(tǒng)隱蔽通信自身的諸多痛點(diǎn)[5]。因此自2018 年以來,研究者開始探索利用區(qū)塊鏈構(gòu)造隱蔽通信的方法。
Partala[6]首次嘗試?yán)脜^(qū)塊鏈作為媒介構(gòu)建隱蔽通信信道,并提出區(qū)塊鏈隱蔽信道(BLOCCE,blockchain covert channel)模型,該模型將信息隱藏至交易地址的最后一位,并順序使用對應(yīng)循環(huán)生成的交易地址使其保證秘密信息的順序性。此后,研究者針對該模型的不足進(jìn)行改進(jìn),提出改良的區(qū)塊鏈隱蔽通信方法,并嘗試降低其通信成本[7-8]。Guo 等[9]與藍(lán)怡琴等[10]通過結(jié)合多層可鏈接自發(fā)匿名群簽名實現(xiàn)混合,并引入新的橢圓曲線算法以及其他密碼學(xué)技術(shù)的門羅幣,在其區(qū)塊鏈應(yīng)用中構(gòu)建隱蔽通信信道,利用了門羅幣自身具備的高安全性以提高隱蔽信道的隱蔽性。She 等[11]提出了一種結(jié)合區(qū)塊鏈和星際文件系統(tǒng)(IPFS,interplanetary file system)的雙隱寫模型,這種協(xié)作模型有效解決了區(qū)塊鏈上構(gòu)建隱蔽通信信道的隱藏容量問題,且由于鏈上存儲的特殊信息較少,因此大大提高了信道隱蔽性。佘維等[12]提出了一種面向純文本信息隱藏的區(qū)塊鏈隱蔽通信模型,該模型相比于BLOCCE 在一定程度上提高了嵌入強(qiáng)度;隨后,余維等[13]結(jié)合屬性基加密(CP-ABE,ciphertext-policy attribute-based encryption)技術(shù)與基于生成式對抗網(wǎng)絡(luò)(GAN,generative adversarial networks)的圖像隱寫術(shù)提出了一種可隱藏敏感文檔和發(fā)送者身份的區(qū)塊鏈隱蔽通信模型。姜鵬坤等[14]提出了一種利用哈希算法構(gòu)建免傳輸密碼表匹配二進(jìn)制位的區(qū)塊鏈隱蔽通信方案。近幾年,基于區(qū)塊鏈構(gòu)建隱蔽通信信道的研究不斷深入,區(qū)塊鏈3.0 時代應(yīng)用落地的需求日益強(qiáng)烈,但現(xiàn)有的研究中仍存在以下尚未完全解決的問題。
問題1預(yù)處理或信道構(gòu)建過程中通常需要人工干預(yù),為信道的隱蔽增添了不確定性;同時需要通過預(yù)先協(xié)商的方式確定開始標(biāo)識符、結(jié)束標(biāo)識符、信息接收對象或密鑰等關(guān)鍵信息以達(dá)到通信同步,增加了隱蔽信道的構(gòu)建成本和構(gòu)建風(fēng)險。
問題2一些基于區(qū)塊鏈交易地址進(jìn)行信息隱寫的方案較簡易,隱蔽性較差,難以抵抗常規(guī)的隱蔽信道檢測。且由于區(qū)塊鏈的透明性,所有節(jié)點(diǎn)都可查看區(qū)塊信息,若該區(qū)塊鏈網(wǎng)絡(luò)中存在其他隱蔽通信對象,容易出現(xiàn)“信息交叉”的現(xiàn)象,即互相可探測其他隱蔽信道傳輸?shù)拿孛苄畔ⅰ?/p>
問題3傳統(tǒng)隱蔽通信通常需要引入第三方公共媒介,若通過數(shù)學(xué)方法統(tǒng)計分析則可能存在一定身份暴露的風(fēng)險。而完全嚴(yán)格基于區(qū)塊鏈平臺的隱蔽信道構(gòu)建方法的隱蔽容量過小,導(dǎo)致完成一次通信過程的時延較長,或?qū)Τ鰤K交易順序等條件要求苛刻,很難滿足實際應(yīng)用場景需求。
為解決以上問題,本文提出了一種基于馬爾可夫鏈的生成式區(qū)塊鏈隱蔽通信(MC-GBCC,generative blockchain-based covert communication based on Markov chain)模型。首先,發(fā)送方將秘密信息轉(zhuǎn)換為二進(jìn)制流,同時使用與接收方相同的文本數(shù)據(jù)集進(jìn)行馬爾可夫訓(xùn)練[15],再使用訓(xùn)練得到的條件轉(zhuǎn)移概率矩陣構(gòu)建哈夫曼樹;然后,針對二進(jìn)制流進(jìn)行哈夫曼解碼過程得到可讀性較強(qiáng)的文字信息;最后,通過環(huán)簽名進(jìn)行簽名后向區(qū)塊鏈中發(fā)布帶有該文字信息的交易[16],接收方查詢到該信息后通過逆向操作便可獲得該秘密信息。
本文的貢獻(xiàn)主要有以下幾個方面。
1) 本文在區(qū)塊鏈隱蔽通信信道構(gòu)建中使用生成式文本隱寫技術(shù),大大降低了人工干預(yù)可能帶來的信道不穩(wěn)定的風(fēng)險,滿足區(qū)塊鏈網(wǎng)絡(luò)合約執(zhí)行自動化這一設(shè)計思想,更有利于隱蔽信道在區(qū)塊鏈網(wǎng)絡(luò)中的構(gòu)建,同時為其帶來更強(qiáng)的可拓展性與靈活性,減少了信道暴露的風(fēng)險,一定程度上解決了問題1。
2) 本文在隱寫過程中引入馬爾可夫鏈與哈夫曼編碼結(jié)合的形式,在保證其信道隱蔽性的前提下,免除了預(yù)協(xié)商過程,實現(xiàn)了完全的異步式通信,不需要協(xié)商隱蔽通信位置以及通信的開始與結(jié)束,降低了隱蔽傳輸?shù)某杀?,進(jìn)一步解決了問題1。
3) 不同“通信對”只需維持不同的模型訓(xùn)練文本數(shù)據(jù)集即可保證該通信雙方信道的完全隱蔽,并將不同隱蔽通信對隔離開,不會存在其他用戶“誤讀”的情況,解決了問題2。
4) 相較于以往基于區(qū)塊鏈區(qū)塊結(jié)構(gòu)的隱寫方法,在不接入第三方平臺的情況下大大提高了信道隱藏容量,使其在隱藏容量與潛在風(fēng)險兩者中達(dá)到相對平衡;此外,嚴(yán)格將區(qū)塊鏈作為通信媒介并引入環(huán)簽名技術(shù),實現(xiàn)了現(xiàn)實對象與網(wǎng)絡(luò)節(jié)點(diǎn)的剝離,打破了可能存在的映射關(guān)系,使實際隱蔽通信對象完全實現(xiàn)現(xiàn)實身份的隱藏,區(qū)塊鏈的透明性使通信發(fā)送方不需要將攜帶秘密信息的交易直接發(fā)給信息接收方,解決了問題3。
本節(jié)主要介紹區(qū)塊鏈隱蔽通信、馬爾可夫鏈、生成式文本隱寫與環(huán)簽名以及哈夫曼編碼的相關(guān)知識。
比特幣的誕生將區(qū)塊鏈帶入人們視野之中,智能合約的引入大大推動了區(qū)塊鏈的爆發(fā)式發(fā)展,近年來,區(qū)塊鏈已經(jīng)開始在能源、醫(yī)療、教育、交通等領(lǐng)域嶄露頭角[17]。
區(qū)塊鏈作為一種結(jié)合了密碼學(xué)、數(shù)學(xué)、博弈論等多學(xué)科的分布式技術(shù)平臺,其自身具備匿名性、不可篡改、可追溯、合約執(zhí)行自動化、去信任等多種特性[18-19]。傳統(tǒng)的隱蔽通信通常利用第三方媒體的單一信道定向發(fā)送方式,由于系統(tǒng)中心化以及極易受到網(wǎng)絡(luò)環(huán)境的影響,可能降低隱蔽信道的可靠性與隱蔽性,而區(qū)塊鏈技術(shù)為隱蔽通信信道的構(gòu)建提供了更多的可能性,其特性能夠彌補(bǔ)傳統(tǒng)隱蔽通信方法易受篡改、可靠性不穩(wěn)定、信道單一等不足。區(qū)塊鏈隱蔽通信模型如圖1 所示。
圖1 區(qū)塊鏈隱蔽通信模型
區(qū)塊鏈隱蔽通信按照構(gòu)建原理可分為基于區(qū)塊結(jié)構(gòu)、基于外部載體、基于業(yè)務(wù)操作時間和基于系統(tǒng)機(jī)制4 類[20]。本文所提MC-GBCC 模型可歸類至基于結(jié)構(gòu)的區(qū)塊鏈隱蔽通信。
馬爾可夫鏈?zhǔn)且唤M離散隨機(jī)變量的集合,在狀態(tài)空間中隨機(jī)地從一個狀態(tài)轉(zhuǎn)移到另一個狀態(tài),且具備無記憶性,即在給定當(dāng)前知識或信息的前提下,下一步的狀態(tài)只與當(dāng)前狀態(tài)有關(guān),與過去狀態(tài)(即以前的狀態(tài))無關(guān)。馬爾可夫鏈根據(jù)時間狀態(tài)是否離散可分為連續(xù)時間馬爾可夫鏈與離散時間馬爾可夫鏈。本文使用的是離散時間馬爾可夫鏈,即時間和狀態(tài)都是離散取值的[21-22]。馬爾可夫鏈時間與狀態(tài)空間對應(yīng)關(guān)系如圖2 所示。
圖2 馬爾可夫鏈時間與狀態(tài)空間對應(yīng)關(guān)系
給定隨機(jī)變量集合X={xn,n> 0},且該隨機(jī)變量可能的取值都在有限狀態(tài)集S={sn,n> 0}內(nèi),即xi=si,si∈S,若符合以下條件
則集合X被稱為馬爾可夫鏈;集合X的取值被稱為狀態(tài)空間;馬爾可夫鏈在狀態(tài)空間內(nèi)的取值被稱為狀態(tài),其性質(zhì)被稱為馬爾可夫性質(zhì),即“無記憶性”。通過馬爾可夫鏈的模型轉(zhuǎn)換,便可以得到各狀態(tài)之間的轉(zhuǎn)換概率,從而得到條件轉(zhuǎn)移概率矩陣(也稱狀態(tài)分布矩陣),例如
現(xiàn)有的文本隱寫算法通??煞譃閮纱箢悾盒薷氖诫[寫算法與生成式隱寫算法[23]。近年來,隨著自然語言處理技術(shù)的發(fā)展,以文本生成技術(shù)為基礎(chǔ)的生成式隱寫算法的發(fā)展愈加成熟。該類算法有別于傳統(tǒng)文本隱寫,其不需要人為選擇文本載體,可自動生成載體并進(jìn)行秘密信息嵌入,大大降低了人為因素所帶來的不確定性和算法應(yīng)用落地的門檻。
環(huán)簽名是一種數(shù)字簽名方案,目的在于允許用戶在環(huán)內(nèi)保持匿名的前提下代表環(huán)進(jìn)行數(shù)字簽名,其環(huán)成員中沒有管理者和可信中心,成員權(quán)限地位平等,同時簽名過程不需要成員合作,只需利用自身私鑰以及集合中其他成員的公鑰即可獨(dú)立完成簽名過程,其他成員并不知道自己已被包含其中。環(huán)簽名滿足如下性質(zhì)。
1) 無條件匿名性。攻擊者確定簽名是由環(huán)中哪個成員生成的概率極低,即使攻擊者獲取了所有環(huán)成員的私鑰,能確定真實簽名者的概率也不超過,其中r為環(huán)成員個數(shù)。
2) 正確性。簽名能被所有人驗證。
3) 不可偽造性。環(huán)中其他成員與外部攻擊者均無法偽造真實簽名者簽名。
哈夫曼編碼是一種在壓縮字符編碼的同時不需要添加額外分隔符,且能保證解碼唯一性的不定長編碼[24]。該編碼方法完全依照字符出現(xiàn)概率來構(gòu)造平均字長最短的編碼,權(quán)值越大的節(jié)點(diǎn)越接近根節(jié)點(diǎn),也被稱為最佳編碼方式,其構(gòu)建過程如圖3所示。
圖3 哈夫曼編碼構(gòu)建過程
MC-GBCC 模型如圖4 所示。本節(jié)分為預(yù)處理、嵌入、傳輸、提取4 個過程對MC-GBCC 模型進(jìn)行說明。
圖4 MC-GBCC 模型
秘密信息發(fā)送方維持一份與接收方相同的文本數(shù)據(jù)集A,并且雙方均使用數(shù)據(jù)集A 進(jìn)行馬爾可夫模型訓(xùn)練,因此雙方可得到相同的模型及其條件轉(zhuǎn)移概率矩陣。一般希望數(shù)據(jù)集A 足夠大,通常數(shù)據(jù)量越大的文本數(shù)據(jù)集進(jìn)行馬爾可夫模型訓(xùn)練之后得到的生成式文本可讀性越強(qiáng),其對應(yīng)的隱蔽信道的隱蔽性也越強(qiáng)。
在嵌入過程之前要先對所持有的文本數(shù)據(jù)集A進(jìn)行文本預(yù)處理,操作如下
其中,f(x)表示刪除x中的特殊字符,g(x)表示刪除x中的網(wǎng)頁鏈接,h(x)表示x全部轉(zhuǎn)換為小寫,u(x)表示刪除x中的表情符號,SE 表示文本數(shù)據(jù)集 A 中以結(jié)束符為標(biāo)志的句子集合,即SE={se1,se2,…,sen}。
接著,對預(yù)處理后的文本數(shù)據(jù)集A 進(jìn)行馬爾可夫模型訓(xùn)練,訓(xùn)練步驟如下。
1) 建立一個包含數(shù)據(jù)集內(nèi)全部單詞的集合D={d1,d2,… ,dnum},即給定的隨機(jī)變量有限集合,將該字典中的所有單詞放入候選池中作為備選。
2) 每個句子sei的相應(yīng)位置和單詞可對應(yīng)至馬爾可夫鏈中的離散取值的時間與狀態(tài),即
其中,i∈{1,2,…,n},j∈{1,2,…li},sei為句子編號,li為該句的單詞個數(shù)。
3) 利用一階馬爾可夫鏈(實際使用中可根據(jù)需求采取二階或三階馬爾可夫鏈?zhǔn)怪筛泳邆淇勺x性的文本)計算每個單詞的轉(zhuǎn)移概率為
同時滿足
其中,SN 表示集合S的元素個數(shù)。
通過以上三步即可得到所需的條件轉(zhuǎn)移概率矩陣為
4) 初始哈夫曼樹t1表示所有可能位于初始位置的單詞,利用出現(xiàn)概率作為權(quán)值構(gòu)成初始哈夫曼樹t1;除初始位置外,以某個單詞wordi為基準(zhǔn)轉(zhuǎn)移到下一個位置 wordi+1的所有可能的每個單詞轉(zhuǎn)移概率p(wordi)為權(quán)值構(gòu)成哈夫曼樹,即對應(yīng)矩陣Pnn中的某一行構(gòu)成哈夫曼樹(舍棄概率為0 的情況)。這樣的情況共有n-1種,即除初始哈夫曼樹t1以外還可構(gòu)造n-1個狀態(tài)轉(zhuǎn)移哈夫曼樹。定義以下函數(shù)
其中,i∈{2,3,…,n},o(x,y)表示哈夫曼樹構(gòu)造算法。利用該函數(shù)構(gòu)造各狀態(tài)哈夫曼樹并與t1共同得到哈夫曼樹集合T={t1,t2,…,tn}。
將訓(xùn)練得到的馬爾可夫模型M與哈夫曼樹集合T保存,以便未來使用該數(shù)據(jù)集與對方通信。以上預(yù)處理過程只需在雙方第一次通信時進(jìn)行即可。
發(fā)送方嵌入秘密信息步驟如下。
1)發(fā)送方將需要傳輸?shù)拿孛苄畔⑽谋緎ecret_message 轉(zhuǎn)換為二進(jìn)制流bin1,即
其中,z(x) 表示將文本信息x轉(zhuǎn)換為二進(jìn)制流。
2) 從初始哈夫曼樹t1中查找與二進(jìn)制流開始階段的對應(yīng)單詞,并將其放入初始位置,即
其中,c(x,y)表示哈夫曼解碼函數(shù);q(x,y)表示每完成一次解碼過程則將y對應(yīng)的二進(jìn)制流,即解碼讀取的前n位二進(jìn)制流從長二進(jìn)制流x中刪去。
3) 完成初始二進(jìn)制流信息嵌入之后,繼續(xù)對剩余信息進(jìn)行嵌入,即
其中,i∈{2,3,4,…},r(x)表示查找單詞x在集合T中對應(yīng)的狀態(tài)哈夫曼樹。
4) 重復(fù)步驟3)直至二進(jìn)制流信息嵌入完畢,若最后位置的二進(jìn)制流無法順利解碼,則在末尾自動補(bǔ)0 直至完全解碼完畢。例如,二進(jìn)制流若為0110...01111,二進(jìn)制流解碼至最后的11 無法在哈夫曼樹的葉子節(jié)點(diǎn)找到(無法解碼),則在末尾自動補(bǔ)0直至能夠完成解碼。
5) 解碼完畢后,得到len -1個wordi,其中,i∈{2,3,…,len},len 為解碼得到的載密語句單詞個數(shù)。并得到由 word1與wordi組成的向量SEN=(word1,word2,…,wordlen),將該向量按照其排列順序組成語句作為載密語句輸出。
秘密信息嵌入過程完成后,得到載密信息cover-message,該載密信息是可讀性較強(qiáng)的普通文本信息。傳輸過程中,秘密信息發(fā)送方創(chuàng)建一筆交易Transaction(cover-message) 。其中,載密信息cover-message 存入交易的data 字段,而由于區(qū)塊鏈的公開透明性,任何本區(qū)塊鏈網(wǎng)絡(luò)中的用戶均可訪問鏈上的所有信息,因此為提高信道隱蔽性,這里交易接收方可任意選擇區(qū)塊鏈網(wǎng)絡(luò)中的用戶,并不要求交易接收方為本次隱蔽通信的實際秘密信息接收方。
為隱藏實際信息發(fā)送方身份,需要進(jìn)行環(huán)簽名操作,這里將簡要描述環(huán)簽名算法步驟。首先定義以下函數(shù)
其中,Ek為對稱加密算法,k為Ek對應(yīng)的密鑰。對包含該秘密信息的區(qū)塊鏈交易Transaction(cover-message)進(jìn)行環(huán)簽名,環(huán)簽名中各成員公鑰分別為P1,P2,…,Pn,消息發(fā)送方擁有公鑰Ps及其對應(yīng)的私鑰。令k=hash(Transaction(cover-message)),即交易的hash 值作為環(huán)簽名遞推公式(對稱加密)的密鑰,發(fā)送方隨機(jī)選取一個值v。然后,除發(fā)送方xs以外隨機(jī)選取n-1個值 {x1,x2,…,xs-1,xs+1,…,xn},并利用對應(yīng)的公鑰Pi通過yi=gi(xi)計算得到相應(yīng)的n-1 個值 {y1,y2,…,ys-1,ys+1,…,yn}。接下來,令Ck,v(y1,y2,…,ys,…,yn)=v,計算令等式成立的ys。可以把ys看作通過公鑰Ps加密得到,而發(fā)送方擁有Ps對應(yīng)的私鑰,因此可通過解密ys得到xs。最后,利用遞推式得到關(guān)于發(fā)送方創(chuàng)建的交易消息Transaction(cover-message)的環(huán)簽名,該簽名是一個2n+1 元組 (P1,P2,…,Pn;v;x1,x2,…,xn),區(qū)塊鏈網(wǎng)絡(luò)用戶通過該簽名無法獲知真正的信息發(fā)送方。
發(fā)送方將通過環(huán)簽名后的交易發(fā)布到區(qū)塊鏈網(wǎng)絡(luò)中,并在各節(jié)點(diǎn)中進(jìn)行廣播,被驗證交易正確有效之后打包至區(qū)塊內(nèi)經(jīng)過共識更新該新生成的區(qū)塊,至此載密信息完成上鏈,包括隱蔽通信信息接收者在內(nèi)的所有區(qū)塊鏈用戶都可收到并查看鏈上信息。
秘密信息接收方擁有與發(fā)送方相同的文本數(shù)據(jù)集A,首先使用與預(yù)處理過程同樣的方法構(gòu)造哈夫曼樹,如2.1 節(jié)所述,由于使用了完全相同的文本數(shù)據(jù)集與處理算法,因此可生成完全相同的集合T={t1,t2,…,tn}。同樣地,處理一次之后可將模型M與哈夫曼樹集合T保存以便以后的雙方通信,降低其通信成本。接收方提取步驟如下。
1) 接收方遍歷區(qū)塊鏈網(wǎng)絡(luò)中新生成的交易信息,即
其中,time 表示設(shè)定的區(qū)塊鏈交易讀取時間間隔,函數(shù)γ(x,y)表示每隔x時間間隔遍歷y中新生成的交易字段。
2) 將message 設(shè)定為向量MES,即
3) 利用訓(xùn)練得到的哈夫曼樹集合T對向量MES 中的元素word'i逐一解碼,并定義以下函數(shù)
其中,v(x,y)表示在集合y中尋找合適的元素對單詞x進(jìn)行解碼得到二進(jìn)制流,并將解碼得到的二進(jìn)制codei放入向量C中,即
4) 若不能完全執(zhí)行步驟3),則證明該消息并不是發(fā)給自身的秘密信息;若能得到完整有序集合C,則該有序集合元素組成的二進(jìn)制流為發(fā)送給自身的秘密信息,即
其中,h(x1,x2,…,xn)表示將二進(jìn)制x1,x2,…,xn進(jìn)行拼接,拼接得到的秘密二進(jìn)制流bin1進(jìn)行逆操作,即
其中,z(x)表示將秘密信息文本x轉(zhuǎn)化為二進(jìn)制流。接收方通過上述步驟得到秘密信息文本secret_message。
由于區(qū)塊鏈網(wǎng)絡(luò)的透明性,網(wǎng)絡(luò)中其他用戶可任意查看區(qū)塊交易信息,但無法辨別并區(qū)分含有秘密信息的交易信息,只可查看到合法交易內(nèi)容,且由于該交易信息是可讀性較強(qiáng)的文本信息,進(jìn)一步增強(qiáng)了信道的隱蔽性,使其他用戶無法察覺該信道的存在性。
本節(jié)介紹了仿真實驗,并結(jié)合實驗結(jié)果對MC-GBCC 模型進(jìn)行分析。實驗采用的硬件平臺為PC,處理器為AMD 5800H Ryzen 7@3.20 GHz,內(nèi)存為16.0 GB。
仿真實驗在Ubuntu 系統(tǒng)下使用FISCO BCOS模擬區(qū)塊鏈網(wǎng)絡(luò),在區(qū)塊鏈網(wǎng)絡(luò)中創(chuàng)建20 個賬戶,各賬戶信息如表1 所示。
表1 FISCO BCOS 模擬區(qū)塊鏈網(wǎng)絡(luò)賬戶信息
假設(shè)賬戶1 是隱蔽通信發(fā)送方在FISCO BCOS區(qū)塊鏈網(wǎng)絡(luò)中的賬戶,賬戶2 是接收方賬戶。在構(gòu)建隱蔽通信信道之前,雙方約定用于馬爾可夫鏈訓(xùn)練的文本數(shù)據(jù)集,通常馬爾可夫模型訓(xùn)練要求該文本數(shù)據(jù)集由人書寫并且具備足夠數(shù)量,本文實驗中選用Go 等[25]公開的用于情感分析的從Twitter 中提取的1 600 000 條評論,該類型文本更加符合人類日常語言習(xí)慣。在實際應(yīng)用場景之下,為便于普通用戶使用也可選擇較大單詞量的電子書。
預(yù)處理過程中,首先利用式(4)對文本數(shù)據(jù)集進(jìn)行文本預(yù)處理,部分預(yù)處理后文本內(nèi)容如表2 所示。然后,利用式(5)~式(9)進(jìn)行馬爾可夫鏈訓(xùn)練,訓(xùn)練得到的模型可存儲至本地用于未來與該接收方的通信。表3 為通過該模型隨機(jī)生成的文本。
表3 隨機(jī)生成的文本
根據(jù)訓(xùn)練結(jié)果可知,該模型生成文本基本符合人類語言習(xí)慣,具有較強(qiáng)隱蔽性。
發(fā)送方希望傳輸?shù)拿孛苄畔椤皐e will do it tomorrow”。在嵌入過程中,發(fā)送方利用式(10)將文本信息轉(zhuǎn)換為二進(jìn)制流“1110111110010110000 01110111110100111011001101100100000110010011 011111000001101001111010010000011101001101111110110111011111110010111001011011111110111”。這里使用ASCII 碼將字符轉(zhuǎn)換為整數(shù),再將整數(shù)轉(zhuǎn)換為二進(jìn)制。
接下來,利用式(11)~式(14)進(jìn)行秘密信息嵌入,得到的載密文本為“i hate when i have so much school work to do and does anyone know if there is a book for student”。
在傳輸過程中發(fā)送方不需要直接選擇接收方賬戶,而可任意選擇賬戶發(fā)送交易信息。發(fā)送方將生成的文本放入交易data 字段中,并利用式(15)進(jìn)行環(huán)簽名,環(huán)簽名后向區(qū)塊鏈網(wǎng)絡(luò)中發(fā)布交易,交易經(jīng)過驗證、共識后打包成塊,為便于觀察,將每個區(qū)塊打包交易數(shù)設(shè)置為1。區(qū)塊部分字段結(jié)構(gòu)和交易部分字段結(jié)構(gòu)分別如表4 和表5 所示。
表4 區(qū)塊部分字段結(jié)構(gòu)
由表5 可知,載密信息已成功上鏈。提取過程中,接收方利用式(16)~式(20)進(jìn)行接收秘密信息的嘗試,每隔一段時間主動利用通過文本數(shù)據(jù)集A 產(chǎn)生的哈夫曼森林對交易的data 字段進(jìn)行編碼,在對表5 中的交易data 字段編碼時,能順利得到一串匹配的二進(jìn)制流“ 11101111100101100000111011 11101001110110011011001000001100100110111110 00001101001111010010000011101001101111110110 111011111110010111001011011111110111”,接著利用式(15)相關(guān)函數(shù)驗證環(huán)簽名,驗證通過后利用式(21)進(jìn)行該二進(jìn)制流的逆向操作即可得到秘密信息“we will do it tomorrow”。至此,一次完整的隱蔽通信流程結(jié)束,此后雙方通信中不需要預(yù)處理過程,只需發(fā)送方嵌入過程和傳輸過程、接收方提取過程即可。
表5 交易部分字段結(jié)構(gòu)
本節(jié)主要從嵌入強(qiáng)度、時間效率兩方面對MC-GBCC 模型性能通過實驗進(jìn)行分析。
1) 嵌入強(qiáng)度
Houmansadr 等[26]認(rèn)為隱蔽通信的傳輸效率可定義為每個隱蔽數(shù)據(jù)流所傳遞的隱蔽信息的比特數(shù),對應(yīng)本文模型為秘密信息發(fā)送方所提交的每筆交易信息(即生成的可讀性較強(qiáng)的文本)中所包含的秘密信息的比特數(shù),因此本文模型與其他區(qū)塊鏈隱蔽信道嵌入強(qiáng)度可表示為
其中,r為每個隱蔽通信數(shù)據(jù)流所攜帶的秘密信息的比特數(shù),K為使用N+1個隱蔽信息數(shù)據(jù)流發(fā)送的隱蔽信息比特數(shù)。
為保持對比的相對合理性,本節(jié)選擇具有較強(qiáng)通用性的區(qū)塊鏈隱蔽通信信道構(gòu)建方法[6-10,12]與本文模型對比,條件設(shè)定為每個區(qū)塊內(nèi)打包一筆交易。本文利用模型生成1 000 輪并編碼計算其可攜帶最大秘密信息的平均值。
嵌入強(qiáng)度對比如表6 所示。相比于其他基于區(qū)塊字段結(jié)構(gòu)進(jìn)行隱蔽信道構(gòu)建的模型,本文模型的嵌入強(qiáng)度具有較大的優(yōu)勢。文獻(xiàn)[7]提出對地址空間的低α位進(jìn)行秘密信息嵌入,但實際操作中α的增大會大大增加哈希函數(shù)計算的時間開銷,嚴(yán)重降低系統(tǒng)效率,因此通常α取值較小。
表6 嵌入強(qiáng)度對比
2) 時間效率
時間效率同樣是判斷隱蔽通信信道性能的重要指標(biāo)之一。除區(qū)塊鏈網(wǎng)絡(luò)交易發(fā)布時延外,影響本文模型時間效率的關(guān)鍵因素在于秘密信息的嵌入過程與提取過程。本文利用上述預(yù)處理后的文本數(shù)據(jù)集進(jìn)行馬爾可夫模型訓(xùn)練,并利用訓(xùn)練后的模型進(jìn)行秘密信息嵌入與提取。
為了便于比較相關(guān)區(qū)塊鏈隱蔽通信模型的時間效率,統(tǒng)一嵌入相同秘密信息量為8 bit,本文模型模擬嵌入過程與提取過程各50 次,嵌入過程與提取過程時間如圖5 所示。從圖5 可以看出,嵌入過程與提取過程時間為1.40~1.75 s,并無較大波動。
圖5 嵌入過程與提取過程時間
若考慮到區(qū)塊鏈網(wǎng)絡(luò)自身每秒處理事務(wù)數(shù)(TPS,transaction per second),本文模型時間效率仍能達(dá)到秒級。文獻(xiàn)[6]的隱蔽信道構(gòu)建模型發(fā)送8 bit信息的時間大于30 min;文獻(xiàn)[8]多次重用Vanitygen(比特幣地址生成軟件)生成地址嵌入信息,但隨著每個地址嵌入位數(shù)的增加其難度呈指數(shù)級增長,若每個地址中直接嵌入8 bit 信息則地址生成時間將達(dá)到小時級,若采取降低每個地址嵌入信息比特數(shù)但提升發(fā)送交易數(shù)的方法,其時間效率過于依賴區(qū)塊鏈網(wǎng)絡(luò)TPS 且對交易順序有嚴(yán)格要求;文獻(xiàn)[11,13]由于引入了圖像隱寫術(shù)與IPFS,隱蔽通信時間為分鐘級;文獻(xiàn)[12]使用了基于空格法的信息隱藏技術(shù),其每筆交易內(nèi)所含的信息比特數(shù)較低,因此在傳輸與本文模型相同信息量的秘密信息的情況下傳輸時間為分鐘級。
本文模型與文獻(xiàn)[6,8,11-13]模型的傳輸時間對比如表7 所示,在相同嵌入量下,本文模型所使用的嵌入方法在時間效率上具有一定優(yōu)勢。
表7 傳輸時間對比
本文所提MC-GBCC 模型降低了隱蔽信道構(gòu)建風(fēng)險、避免了信息交叉、提升了隱蔽性,本節(jié)從上述三方面進(jìn)行安全性分析。
3.3.1 降低隱蔽信道構(gòu)建風(fēng)險
MC-GBCC 模型基于馬爾可夫鏈進(jìn)行生成式文本隱寫,一方面不需要人為操作即可實現(xiàn)載體文本與載密文本的自動生成,降低了人為誤操作或選擇載體不恰當(dāng)所帶來的信道暴露風(fēng)險;另一方面通信雙方不需要在區(qū)塊鏈網(wǎng)絡(luò)中交換信道關(guān)鍵參數(shù),只需雙方持有同一份文本數(shù)據(jù)集即可實現(xiàn)完全異步式通信,在縮減信道構(gòu)建成本的同時降低了構(gòu)建風(fēng)險。
3.3.2 避免信息交叉
每對隱蔽通信方采取不同的文本數(shù)據(jù)集,能夠保證即使區(qū)塊鏈網(wǎng)絡(luò)中存在其他使用同一方法構(gòu)建隱蔽信道的通信對,仍不暴露己方信道,且不存在誤讀其他信道數(shù)據(jù)的風(fēng)險,避免了其他區(qū)塊鏈隱蔽通信模型可能出現(xiàn)的信息交叉現(xiàn)象。
3.3.3 提升隱蔽性
1) 本文模型生成的載密信息仍具備較強(qiáng)可讀性,不易引起懷疑。在信息論領(lǐng)域中,perplexity(困惑度)通常用于度量概率分布或概率模型預(yù)測樣本的好壞,同樣地,在自然語言處理領(lǐng)域中,困惑度可用于度量句子的質(zhì)量,其計算式為
其中,p(si)為句子si中單詞的分布概率,N為句中單詞總數(shù)。困惑度越小,生成文本與訓(xùn)練文本統(tǒng)計分布越一致,則模型越好,越不容易引起懷疑,但實際上困惑度很難界定一個安全區(qū)間。針對MC-GBCC 模型,本節(jié)完全隨機(jī)生成了100 個已嵌入秘密信息的生成語句,并根據(jù)式(23)計算困惑度,結(jié)果如圖6 所示。
圖6 困惑度計算結(jié)果
由圖6 可知,MC-GBCC 模型困惑度主要集中在1~3。而在文獻(xiàn)[15]中,相同嵌入率下的困惑度可能超過200,與之相比,MC-GBCC 模型困惑度較低且更穩(wěn)定,因此,本文模型在信息嵌入過程中自動生成的語句不易引起懷疑,具有較強(qiáng)的隱蔽性,在未知足夠信息下證明該隱蔽信道存在基本不可行。
2) 區(qū)塊鏈網(wǎng)絡(luò)打破了現(xiàn)實身份與虛擬身份的映射關(guān)系,且包含載密信息的交易接收方并不一定與實際秘密信息接收方相同。
3) 環(huán)簽名技術(shù)的無條件匿名性融入?yún)^(qū)塊鏈交易發(fā)布之中進(jìn)一步混淆了發(fā)送方身份,即使攻擊者獲得所有環(huán)成員的私鑰,能確定真實發(fā)送方的概率也不超過,其中r為環(huán)成員個數(shù)。
以上三點(diǎn)共同保證了本文模型具備足夠高的隱蔽性。
綜上,本文所提MC-GBCC 模型與文獻(xiàn)[6-13]模型相比,在嵌入強(qiáng)度與時間效率方面具有明顯優(yōu)勢,解決了其他區(qū)塊鏈隱蔽通信模型所未解決的通信對隔離問題,并且通信過程中免除了預(yù)協(xié)商過程,大大降低了信道構(gòu)建風(fēng)險,實現(xiàn)了異步式通信,并提升了隱蔽性。不同模型的綜合對比如表8 所示。
表8 不同模型的綜合對比
本文提出了一種基于馬爾可夫鏈的生成式區(qū)塊鏈隱蔽通信模型,一定程度上解決了目前區(qū)塊鏈隱蔽通信中信道構(gòu)建風(fēng)險高、信息交叉、隱蔽性不足等問題。所提模型結(jié)合馬爾可夫鏈與哈夫曼編碼技術(shù)實現(xiàn)了隱蔽通信的完全異步式,并降低了信道構(gòu)建的潛在風(fēng)險,通過約定文本數(shù)據(jù)集將不同通信雙方隔離開,避免了信息交叉,進(jìn)一步提高了隱蔽性,并引入環(huán)簽名隱藏發(fā)送方身份。實驗結(jié)果表明,對比同類區(qū)塊鏈隱蔽通信模型,所提模型具備更優(yōu)秀的嵌入強(qiáng)度與時間效率以及足夠的安全性。