(桂林電子科技大學(xué)廣西無線寬帶通信與信號處理重點實驗室,廣西 桂林 541004)
0 引言
隱蔽通信利用正常的通信行為傳送秘密信息,可大大降低信息在傳遞過程中受攻擊的風(fēng)險。不同于一般的加密通信,隱蔽通信一般采用公共的信息載體,將隱蔽信息隱藏在主體信息中并隨之一起傳輸。所有用戶都可以讀取或接收到主體信息,但只有隱蔽通信的目標(biāo)接收方才有解密隱蔽信息的方法,其他用戶無法察覺正在進(jìn)行的隱蔽通信行為[1]。然而,若攻擊者有足夠多的時間和計算機(jī)資源對存在隱蔽通信行為的通信方進(jìn)行針對性的檢測,就可以區(qū)分和檢測出隱蔽通道[2]。
區(qū)塊鏈特別是公鏈,以去中心化和難以篡改著稱,由大部分節(jié)點參與共識形成的去中心化結(jié)構(gòu)提供了匿名環(huán)境;區(qū)塊中的交易內(nèi)容是隨機(jī)生成的地址之間的轉(zhuǎn)賬過程,而不是實際的賬戶,因此無法通過交易地址得知賬戶擁有人;利用Hash 函數(shù)唯一性特點[3]將產(chǎn)生的區(qū)塊以時間戳順序串聯(lián)起來保證區(qū)塊的內(nèi)容難以篡改,具有很強(qiáng)的安全性。第三方檢測者要想從隨機(jī)地址的交易環(huán)境中找到存在隱蔽通信行為的用戶非常困難。因此,區(qū)塊鏈平臺是實現(xiàn)隱蔽通信理想的信息載體。
比特幣[4]和以太坊[5]是目前最活躍、最完善的公鏈,現(xiàn)有關(guān)于區(qū)塊鏈隱蔽通信的研究大多基于這2 種公鏈。
基于比特幣的隱藏方案。Partala[6]提出的BLOCCE 隱藏結(jié)構(gòu),在比特幣公鑰地址的最低有效位(LSB)添加一位數(shù)據(jù),通過連續(xù)的交易,接收方將地址解析后再組合成密文消息。在此基礎(chǔ)上,宋上等[7]提出的BLOCCE+提高了單次交易的嵌入數(shù)據(jù)量和單個區(qū)塊可提取的交易數(shù)量,實現(xiàn)信息傳輸速率的提升,并且通過將下一次隱蔽信息的開始標(biāo)識符(MSI)包含在密文中以減少鏈外通信次數(shù)。Zhang 等[8]提出的V-BLOCCE 則將BLOCCE 原本以二進(jìn)制嵌入地址換成與比特幣地址同樣編碼的BASE58,利用比特幣地址生成應(yīng)用Vanitygen 在地址中映射密文,并將索引表存放在交易的腳本字段,極大地提升了傳輸速率。但是,以BLOCCE為代表的LSB 交易地址隱藏方法需要維護(hù)大量參與隱蔽通信的特殊地址,其改進(jìn)方案使用更多的交易字段來隱藏數(shù)據(jù),這意味著交易的特殊性增加,容易被檢測為異常行為。
基于以太坊的隱藏方案。Liu 等[9]使用以太坊交易的VALUE 字段構(gòu)造了基于哈希消息認(rèn)證碼(HMAC)的多比特嵌入方法,同時構(gòu)建哈希鏈增加隱蔽性,并且增加了模糊數(shù)據(jù)以提升安全性。Zhang 等[10]利用以太坊Whispers 通信中的信封和信體機(jī)制,將密文和映射表存儲到信體中,信封的主題字段存儲標(biāo)志,用于加快收信人的篩選速度,收信人通過篩選信封主題快速收集隱蔽信息。Zhang 等[11]對投票和競價智能合約提出隱藏方法,接收方根據(jù)收到的投票和競價順序或地址首字母進(jìn)行排序,若以選項作為載體,則對地址排序,地址對應(yīng)的選項序號為隱藏的字符;若以地址作為載體,則以選項順序?qū)?yīng)地址首字母作為隱藏信息。
基于文本或圖像的隱藏方案。佘維等[12]通過在交易中發(fā)送txt文件的最后文本行添加空格表示二進(jìn)制密文,并且通過雙方提前協(xié)商建立偏序集來增加隱藏強(qiáng)度。Basuki 等[13]提出了基于加密圖像實現(xiàn)隱藏大量信息的方法,首先由發(fā)送方在以太坊交易的時間戳、目標(biāo)地址和交易上限字段中利用最高有效位(MSB)嵌入圖像解密的方法數(shù)據(jù)包,然后接收方獲取并解析數(shù)據(jù)包后得到加密圖像的統(tǒng)一資源定位符(URL)和解密方法,最后解密圖像即可得到大量的隱藏信息。
上述方案均是基于在地址或字段的特殊位置隱藏的思路開展的研究,可歸類為存儲型隱蔽通信方案。不同于以上方案,隱蔽通信系統(tǒng)還能以時間為載體進(jìn)行構(gòu)建,如調(diào)整時間間隔、改變數(shù)據(jù)速率、改變包排列順序、觸發(fā)數(shù)據(jù)重傳等[2]。
區(qū)塊鏈系統(tǒng)中的時間戳機(jī)制是良好的時間載體,然而目前的研究較少,僅有李彥峰等[14]提出的基于區(qū)塊鏈時間戳隱藏方法,該方法不依賴特殊地址,而是對交易時間戳的間隔進(jìn)行編碼以承載隱藏信息,因此具有獨特的隱蔽性。但受限于單位時間內(nèi)有限的信息量,隱蔽通信的傳輸速率低,且通信的開始和結(jié)束標(biāo)志為連續(xù)的碼字,也容易被檢測為異常行為。
在此研究基礎(chǔ)上,本文以提升時間型區(qū)塊鏈隱蔽通信的傳輸速率和增強(qiáng)抗檢測性為目的,提出一種多地址時間型區(qū)塊鏈隱蔽通信方法,由特殊地址表示隱蔽通信的開始和結(jié)束,在一個區(qū)塊內(nèi)由多個地址參與隱蔽通信,將隱蔽通信任務(wù)拆分到更多地址上,地址的交易時間戳間隔表示密文片段,接收方讀取區(qū)塊并統(tǒng)計這些交易的間隔,最后組合、解密和還原出密文。
本文的主要貢獻(xiàn)如下。
1) 提出了多地址的時間型區(qū)塊鏈隱蔽通信方法,在一個區(qū)塊內(nèi)傳輸更多的信息量,具有更高的傳輸速率。
2) 提出了一種調(diào)整交易發(fā)起時間間隔的方法,降低了因隱蔽通信行為而導(dǎo)致地址呈現(xiàn)特殊性的概率,實現(xiàn)更好的抗檢測性能。
3) 以比特幣交易數(shù)據(jù)作為測試數(shù)據(jù),評估了所提隱蔽通信方法的傳輸速率和抗檢測性。
1 背景知識
1.1 隱蔽通信系統(tǒng)
基礎(chǔ)的隱蔽通信系統(tǒng)主要由構(gòu)建網(wǎng)絡(luò)隱蔽信道、嵌入密文和提取密文3 個過程組成。
1) 網(wǎng)絡(luò)隱蔽信道可以分為存儲型網(wǎng)絡(luò)隱蔽信道和時間型網(wǎng)絡(luò)隱蔽信道。存儲型網(wǎng)絡(luò)隱蔽信道使用協(xié)議數(shù)據(jù)單元內(nèi)部的信息傳輸隱蔽數(shù)據(jù);時間型網(wǎng)絡(luò)隱蔽信道使用協(xié)議數(shù)據(jù)單元的時間特性傳輸隱蔽數(shù)據(jù)。時間型隱蔽通信比存儲型隱蔽通信的隱蔽性更好,但傳輸速率更低[1]。
2) 存儲型網(wǎng)絡(luò)隱蔽信道嵌入密文的方法主要有根據(jù)數(shù)據(jù)包和協(xié)議頭中未使用的或不會被驗證的字段增加數(shù)據(jù),例如,在數(shù)據(jù)包中非關(guān)鍵報文的排列順序隱藏信息;根據(jù)需要編碼的字段中嵌入一位有效值,稱為LSB。時間型網(wǎng)絡(luò)隱蔽信道嵌入密文的方法主要有2 種,分別為根據(jù)不同數(shù)據(jù)包之間的時間間隔隱藏編碼后的信息和根據(jù)數(shù)據(jù)包到達(dá)的時間順序隱藏信息[2]。
3) 密文提取方法由隱蔽通信雙方在通信開始前協(xié)商,密文的接收一般根據(jù)時間順序依次提取隱藏信息組合,得到的密文由發(fā)送方進(jìn)行加密,接收方根據(jù)提前協(xié)商的方法解密便可得到信息。
在此基礎(chǔ)上,還有一些結(jié)合所在網(wǎng)絡(luò)環(huán)境實現(xiàn)隱蔽通信的方案,Taheri 等[15]在VANET(vehicular ad-hoc network)中開發(fā)了一種混合(時間和存儲)隱蔽通道,時間方面通過改變服務(wù)和控制數(shù)據(jù)包的時間模式來發(fā)送隱蔽消息,存儲方面通過控制信道發(fā)送周期性消息的一些字段。Wendzel 等[16]使用TCP/IP 頭字段作為隱蔽信道載體,將傳輸?shù)拿芪膬?nèi)容分片,同時建立多個傳輸協(xié)議隨機(jī)發(fā)送分片,收集所有分片以還原密文信息。Zhang 等[17]提出了一種雙向長期演進(jìn)語音承載(VoLTE)隱蔽方法,正向通過主動丟棄數(shù)據(jù)包來調(diào)制隱蔽消息,反向通過數(shù)據(jù)包存儲反饋隱蔽信息,通過反饋更改正向傳輸?shù)膮?shù)。這些隱蔽通信實現(xiàn)方法對在區(qū)塊鏈中實現(xiàn)更好的隱蔽通信有借鑒意義。
隱蔽通信中涉及的區(qū)塊鏈相關(guān)概念如下。
1) 交易的地址。一次交易的發(fā)起需要發(fā)送方的地址、對應(yīng)的公鑰和簽名,以及接收方的地址。用戶可以擁有多個地址,只要掌握地址對應(yīng)的私鑰即視為擁有此地址。以比特幣為例,地址生成過程如圖1 所示,地址的私鑰是隨機(jī)生成的,私鑰經(jīng)過橢圓曲線計算生成公鑰,再通過SHA256運算和RIPEMD160 運算得到Hash 值,和版本號一起進(jìn)行雙SHA256 運算,選取前4 B 作為校驗碼,一起封裝后再經(jīng)過BASE58 編碼轉(zhuǎn)換成比特幣地址。

圖1 比特幣地址生成過程
2) 交易的時間戳。區(qū)塊鏈的時間戳有2 個作用,一是防止篡改區(qū)塊哈希值,二是保證區(qū)塊排列順序。如圖2 所示,待確認(rèn)交易的時間是本地用戶發(fā)起交易的時間,在未被區(qū)塊驗證和打包成塊之前所有待確認(rèn)交易都使用本地時間。對于確認(rèn)后的交易來說,其時間戳為區(qū)塊時間戳,即一個區(qū)塊的所有交易都是同一個確認(rèn)時間。

圖2 區(qū)塊鏈系統(tǒng)的發(fā)起交易時間和確認(rèn)時間
3) 地址發(fā)起交易的間隔。對于區(qū)塊鏈系統(tǒng)來說,不同地址發(fā)起交易的頻率是獨立分布的,交易首先進(jìn)入待確認(rèn)過程,被系統(tǒng)打包成塊后再被賦予時間戳等信息。因此地址發(fā)起交易間隔有本地發(fā)起交易間隔和區(qū)塊時間戳間隔兩類。如圖3所示,對于地址add2的連續(xù)兩次交易,發(fā)起時間為t1和t2,對應(yīng)的區(qū)塊時間戳為和,交易的確認(rèn)時間為Δ1和Δ2,發(fā)起交易的間隔為 Δt1,區(qū)塊時間戳間隔為。

圖3 地址發(fā)起交易的間隔
4) 地址發(fā)起交易的交易費。區(qū)塊鏈系統(tǒng)為了避免惡意發(fā)起大量無效交易增加了交易費機(jī)制,因此對于打包區(qū)塊方來說,交易費越高越先進(jìn)入?yún)^(qū)塊。當(dāng)?shù)却虬灰椎年犃羞^長或者一筆交易的交易費少于絕大部分交易時,交易費低的交易可能一直不會被打包進(jìn)區(qū)塊,并且隨著擁塞時間的增加被撤銷而成為無效交易。
2 多地址區(qū)塊鏈隱蔽通信方法設(shè)計
公鏈區(qū)塊鏈的地址權(quán)限是由掌握對應(yīng)私鑰的用戶所使用的,用戶實際控制的私鑰和地址的數(shù)量是可觀的,又由于地址對應(yīng)的私鑰不會公開,用戶始終是匿名的,因此使用部分地址組成一個地址池參與隱蔽通信在用戶角度是完全可行的。
2.1 隱蔽通信流程
多地址區(qū)塊鏈隱蔽通信流程如圖4 所示。

圖4 多地址區(qū)塊鏈隱蔽通信流程
1) 隱蔽通信的開始和結(jié)束標(biāo)志僅由發(fā)送方用特殊地址adds發(fā)給接收方的地址表示,其他地址對應(yīng)密文M的分片Mi,這些地址組成地址池,特殊地址可以在發(fā)送方本身擁有的地址中挑選,也可以使用Vanitygen 程序生成[8],對指定地址位規(guī)定數(shù)值并自動生成地址,只需雙方在提前協(xié)商過程中達(dá)成共識即可。
2) 當(dāng)收到特殊地址的交易后,接收方開始在下一個區(qū)塊中遍歷發(fā)送方所有參與隱蔽通信的地址。這些地址的交易可以指向任意地址而不只是接收方,因此不影響發(fā)送方的正常交易。由于區(qū)塊時間戳不需要額外獲取,接收方只需要遍歷地址池的地址是否出現(xiàn)在此區(qū)塊中,因此減少了遍歷的開銷。
3) 接收方首先根據(jù)地址列表篩選,得到每個地址的交易發(fā)起分布,再按照交易發(fā)起的時間戳排序,直到收到結(jié)束標(biāo)志的地址開始解密。2 個交易之間的間隔表示為隱蔽信息,若以二進(jìn)制作為密文的調(diào)制方式,則可以設(shè)定短交易區(qū)塊時間戳間隔為“0”,長交易區(qū)塊時間戳間隔為“1”,將所有地址的交易間隔對應(yīng)的密文分片組合得到完整密文,密文分片的順序由地址池的順序保證,地址池的順序可按照地址的字母排序或雙方提前協(xié)商的規(guī)則。
4) 如果某個交易因為交易費不足或區(qū)塊鏈系統(tǒng)擁塞沒有被及時打包到對應(yīng)的區(qū)塊中,導(dǎo)致最新的區(qū)塊中讀取不到該地址,則發(fā)送方在下一個區(qū)塊中追加一個由特殊地址adds發(fā)起的交易表示暫停,本次信息無效,該交易的接收指向接收方地址和被延遲打包的地址,同時暫停被延遲打包的地址發(fā)起下一次通信,直到發(fā)送方和接收方在新的區(qū)塊中發(fā)現(xiàn)被延遲打包的地址出現(xiàn)在后續(xù)的區(qū)塊,結(jié)束暫停。
5) 隱蔽通信開始之前的協(xié)商內(nèi)容如下。①發(fā)送方發(fā)起隱蔽通信的地址池包括特殊地址;② 密文對應(yīng)的信息編碼和加密規(guī)則。在一次正常的交易中,接收方需要向發(fā)送方公布接收地址,協(xié)商過程本來就合理存在,因此協(xié)商可以順利完成。
整個隱蔽通信中地址的對應(yīng)關(guān)系如圖5 所示,只有特殊地址adds的交易指向接收方地址,而其他地址的交易指向可以是任意地址,接收地址出現(xiàn)的頻率減少,降低了地址交易的特殊性,且不影響發(fā)送方本身常規(guī)的交易需求。

圖5 地址的對應(yīng)關(guān)系
2.2 地址交易間隔分布和傳輸速率
區(qū)塊鏈系統(tǒng)將一個時間段的交易打包并賦予同一個時間戳,而時間型隱蔽通信利用時間間隔作為載體隱藏密文,間隔長短對應(yīng)不同的碼字,因此參與隱蔽通信的地址在一段時間內(nèi)會間隔著區(qū)塊時間戳出現(xiàn)在區(qū)塊中。若以此規(guī)律作為檢測區(qū)塊中是否存在特殊地址的判斷條件,則會有大量正常樣本被計入可疑樣本。由于本文方法參與傳輸密文的地址數(shù)量增多,每個地址承擔(dān)的隱蔽通信任務(wù)時間大大縮短,更難以和正常樣本區(qū)分,故隱蔽性較好;若檢測地址發(fā)起交易間隔,也就是待確認(rèn)交易,這個階段的交易發(fā)起行為更加隨機(jī)化,對于有規(guī)律的隱蔽通信行為會變得更特殊、更容易分辨。因此需要對一般的地址交易發(fā)起行為進(jìn)行統(tǒng)計和建模,以優(yōu)化隱蔽通信地址的交易發(fā)起行為。
將整個區(qū)塊鏈的交易到達(dá)過程視為一個隨機(jī)過程,這個隨機(jī)過程可以簡化為參數(shù)為λ的泊松流模型,表示在時間區(qū)間t內(nèi)n個交易到達(dá)的概率,參數(shù)λ表示單位時間內(nèi)平均到達(dá)的交易數(shù)量[18]。那么兩次交易間隔T必定服從指數(shù)分布,易證明對任意時間t>0 和s>0,P{T>t+s|T>s}=P{T>t}具有馬爾可夫性,交易到達(dá)的間隔與前一次交易無關(guān),交易間隔分布情況由指數(shù)分布的分布函數(shù)1 - e-λt體現(xiàn)。
本文使用的變量和符號釋義如表1 所示。區(qū)塊鏈中交易的發(fā)起行為由用戶決定,且活躍用戶的可用地址形成地址池,則在單位時間內(nèi),區(qū)塊鏈系統(tǒng)平均到達(dá)的交易數(shù)量;αnB表示單位時間內(nèi)同地址發(fā)起的交易數(shù)量,則同地址平均到達(dá)的交易數(shù)量,。因此,無論是區(qū)塊鏈系統(tǒng)的交易間隔分布還是同地址的交易間隔分布,在理論上都是服從指數(shù)分布的。

表1 變量和符號釋義
為了得到真實的交易間隔分布,本文收集了比特幣一周的交易發(fā)起時間數(shù)據(jù),對地址的發(fā)起交易間隔分析得到發(fā)起交易間隔的一般規(guī)律,同地址發(fā)起交易間隔的分布情況如圖6 所示,發(fā)起交易間隔為0~40 min 的分布情況如圖7 所示。

圖6 同地址發(fā)起交易間隔的分布情況

圖7 發(fā)起交易間隔為0~40 min 的分布情況
從圖6 可以看出,同地址發(fā)起交易間隔次數(shù)的規(guī)律近似于指數(shù)分布的概率密度函數(shù)曲線。
從圖7 可以看出,發(fā)起交易間隔出現(xiàn)次數(shù)在10 min、20 min、30 min 都高于鄰近時間,這與比特幣大約每10 min 完成一次出塊具有很大的關(guān)聯(lián)性,間隔為10 min 的數(shù)量約為20 min 的2 倍。
若假設(shè)傳輸?shù)拿芪囊远M(jìn)制進(jìn)行調(diào)制,短區(qū)間(約10 min)包含一個區(qū)塊,長區(qū)間(約20 min)包含2 個區(qū)塊,由此可以得到隱蔽通信的傳輸速率。設(shè)發(fā)送方有nA個可以用于隱蔽通信的地址,若密文調(diào)制后的“0”“1”碼字出現(xiàn)概率為均勻分布,即碼字出現(xiàn)的概率相同,可以得到一個地址傳輸一個碼字的平均時間約為15 min。則擁有nA個地址的發(fā)送方傳輸一個碼字時間平均約為,速率為比特每區(qū)塊(bit/block)。發(fā)送方傳輸一個地址私鑰隨機(jī)數(shù)為1~ 2256,用二進(jìn)制表示至多256 bit,需要經(jīng)過個區(qū)塊傳輸完成,傳輸長度為m的密文所需區(qū)塊為個,且,即至少有2 個區(qū)塊來表示2 種碼字。
同時,地址數(shù)量不能超過區(qū)塊所承載的交易量,大量地址參與會提高交易費,這對區(qū)塊鏈系統(tǒng)而言是一種特殊事件,故不可同時發(fā)送大量地址。
2.3 地址交易間隔調(diào)整
密文碼字出現(xiàn)的概率對應(yīng)時間間隔長短的概率,對于均勻分布的二進(jìn)制密文,2 個區(qū)間包含的交易數(shù)量相同,且區(qū)間內(nèi)大部分的交易集中在對應(yīng)的區(qū)塊間隔時間上。設(shè)長短區(qū)間內(nèi)的不同時間交易發(fā)起次數(shù)都服從正態(tài)分布N(μ,σ2),如圖8 所示。從圖8 可知,短區(qū)間內(nèi)服從期望μ=10的正態(tài)分布N(10,σ2),長區(qū)間內(nèi)服從期望μ=20的正態(tài)分布N(20,σ2),15 min 時長短區(qū)間的數(shù)據(jù)重合。

圖8 長短區(qū)間內(nèi)發(fā)起交易間隔呈現(xiàn)的正態(tài)分布
當(dāng)這段特殊交易間隔被加入某個地址的交易行為中時,會改變原本指數(shù)分布的發(fā)起規(guī)律,若地址想再次作為隱蔽通信地址,則需要用更多的正常交易來保持正常規(guī)律,這不僅影響了隱蔽通信的二次運行效率,還增加了地址的維護(hù)開銷。
因此可以調(diào)整交易間隔分布擬合指數(shù)分布,圖9為交易間隔調(diào)整流程,短區(qū)間內(nèi)的發(fā)起交易間隔映射在5~15 min,平均為10 min;長區(qū)間內(nèi)的發(fā)起交易間隔映射在15~25 min,平均為20 min。

圖9 交易間隔調(diào)整流程
不同時間間隔出現(xiàn)的次數(shù)需要擬合指數(shù)分布,若將所有的時間點都分配相應(yīng)的交易數(shù)量,則短區(qū)間的交易數(shù)量將遠(yuǎn)超長區(qū)間,這不符合密文碼字分布。因此在短區(qū)間中,可以將交易數(shù)量集中在一部分時間點上,使這部分時間點擬合指數(shù)分布。
調(diào)整后的交易間隔分布如圖10 所示,長短2 個區(qū)間內(nèi)的交易數(shù)量相同,長區(qū)間內(nèi)的交易間隔次數(shù)服從指數(shù)分布,短區(qū)間內(nèi)的交易集中在一些時間點上使整體近似指數(shù)分布,當(dāng)?shù)刂吠瓿杀敬坞[蔽通信任務(wù)后可以根據(jù)發(fā)送方要求進(jìn)入下一次隱蔽通信。而下一次隱蔽通信的序列可以填補(bǔ)上一次短區(qū)間空缺的時間點,兩次交易間隔都近似指數(shù)分布,若統(tǒng)計樣本中包含了兩次間隔累計次數(shù),則長短區(qū)間內(nèi)交易間隔次數(shù)都近似指數(shù)分布,地址交易間隔的特殊性進(jìn)一步降低。

圖10 調(diào)整后的交易間隔分布
3 所提隱蔽通信方法的性能分析
3.1 傳輸速率
不同于文獻(xiàn)[19]將隱藏容量定義為每條交易可以嵌入的秘密信息比特數(shù),再根據(jù)隱蔽通信時間得到系統(tǒng)效率的對比方式,時間型區(qū)塊鏈隱蔽通信方法以區(qū)塊時間戳間隔為載體,至少需要經(jīng)過2 個以上的時間戳間隔才能完成隱蔽通信,因此不適合直接使用上述方式進(jìn)行對比。
傳輸速率C定義為每個區(qū)塊中隱藏信息的比特數(shù),單位為比特每區(qū)塊,若每條交易包含的信息量為Ibit,同時一個區(qū)塊內(nèi)可能存在多條參與隱蔽通信的交易,則傳輸?shù)目?a class="channel_keylink" href="/search.asp">信息量為。隱蔽通信系統(tǒng)傳輸一段mbit 的密文需要條交易,故隱蔽通信系統(tǒng)的傳輸速率表示為
BLOCCE 的LSB 地址隱藏方法一個區(qū)塊內(nèi)由一個地址發(fā)起一次特殊交易,特殊交易的地址最低有效位嵌入一位字符表示密文,即每個區(qū)塊時間傳輸一個包含字符M的交易,每條交易的信息量為I= lbM,其傳輸速率表示為
考慮到在時間型隱蔽通信方法中也可以使用多進(jìn)制調(diào)制密文,但是需要更長的時間間隔來對應(yīng)碼字,其傳輸效率表示傳輸一個碼字的平均區(qū)塊個數(shù)。
如圖11 所示,η收斂于M=4,為每1.25 個區(qū)塊傳輸1 bit,二進(jìn)制傳輸速率為每1.5 個區(qū)塊傳輸1 bit,隨著編碼進(jìn)制的增加,交易間隔越來越大,傳輸速率反而下降。因此可以設(shè)計一種四進(jìn)制編碼規(guī)則以提升速率,限于篇幅,本文采用二進(jìn)制這種更加普遍的調(diào)制方式。
由圖11 可知,本文提出的多地址時間型區(qū)塊鏈隱蔽方法二進(jìn)制調(diào)制的密文平均需要1.5 個區(qū)塊傳輸1 bit,故每條交易的信息量為系統(tǒng)有nA個地址,所有地址參與隱蔽通信可視為同一行為,故總信息量為。

圖11 使用多進(jìn)制編碼的速率曲線
由于時間型隱蔽通信系統(tǒng)開始和結(jié)束隱蔽通信需要額外過程,本文方法使用特殊地址盡可能減少這一過程的損耗。為保持開始階段所有地址同步,開始標(biāo)志的特殊地址不參與時間間隔計算。考慮到所有地址承載的密文長度不同,結(jié)束標(biāo)志的特殊地址也不參與時間間隔計算,所以整個系統(tǒng)僅多出兩次不表示密文的交易。故傳輸一段mbit 的密文需要條交易,其傳輸速率為,在多進(jìn)制情況下的傳輸速率表示為
基礎(chǔ)時間間隔隱藏方法,開始和結(jié)束標(biāo)志為連續(xù)相同碼字,設(shè)定為連續(xù)的5 個“0”和“1”,共10 個間隔作為標(biāo)志[14],可由s表示開始和結(jié)束標(biāo)志個數(shù),二進(jìn)制調(diào)制下總信息量為,其傳輸速率為bit/block,在多進(jìn)制情況下的傳輸速率表示為
多地址時間型方法、文獻(xiàn)[6]提出的BLOCCE的地址LSB 嵌入型方法和文獻(xiàn)[14]提出的基礎(chǔ)時間型方法的理論傳輸速率對比如表2 所示。其中,M為編碼進(jìn)制,m為密文比特數(shù),nA為用戶擁有的可發(fā)起的隱蔽通信的地址數(shù),s為開始和結(jié)束標(biāo)志個數(shù)。

表2 不同隱蔽通信方法的理論傳輸速率對比
為了簡化對比,接收方從完成出塊的區(qū)塊中遍歷隱蔽信息和解碼的時間為接收方獲密時間,獲密時間不計入密文傳輸時間。
在比特幣交易系統(tǒng)中使用同樣的編碼方式和地址交易發(fā)起頻率傳輸同一段密文。設(shè)所有隱蔽通信系統(tǒng)都以10 min 的區(qū)塊為單位計算隱蔽通信時間,時間型隱蔽通信方法統(tǒng)一使用二進(jìn)制編碼;地址LSB 嵌入型通信方法中一個區(qū)塊內(nèi)包含一次交易,同時傳輸256 bit 的密文,不同隱蔽通信方法的傳輸速率對比如圖12 所示。

圖12 不同隱蔽通信方法的傳輸速率對比
當(dāng)多地址時間型隱蔽通信方法的地址數(shù)量nA=1時,信息傳輸速率略高于基礎(chǔ)時間型隱蔽通信方法,這是因為其使用了特殊地址代替發(fā)送連續(xù)同碼字密文作為開始結(jié)束標(biāo)志;當(dāng)多地址時間型隱蔽通信方法的地址數(shù)量nA=2時,信息傳輸速率高于LSB 地址隱藏的BLOCCE;當(dāng)多地址時間型隱蔽通信方法的地址數(shù)量nA=10時,信息傳輸速率接近直接以BASE58 編碼的V-BLOCCE[8]。
在包含2 000 個以上交易的比特幣區(qū)塊中,平均每個區(qū)塊內(nèi)僅有5 次交易參與隱蔽通信,特殊交易占比0.25%。若將占比小于1%視為不會引起交易費異常的安全值,在二進(jìn)制編碼下,地址平均每1.5 個區(qū)塊出現(xiàn)一次,則極限的地址數(shù)量為nA=30,此時傳輸速率約為20 bit/block。
盡管多地址傳輸速率比單地址傳輸速率提升了nA倍,可以在更短的時間內(nèi)完成所有隱藏信息的發(fā)送,對于單個地址而言傳輸時間也相應(yīng)減少,被檢測的可能性也被分散到各個地址中。但用戶總體的交易發(fā)起次數(shù)沒有減少,需要同樣的交易費,而多進(jìn)制編碼的BLOCCE 可以在單次交易中隱藏更多的信息從而減少交易發(fā)起次數(shù),這是時間型區(qū)塊鏈隱蔽通信方法暫時無法做到的。
3.2 抗檢測性
抗檢測性即隱蔽通信系統(tǒng)的安全性,不同于加密密文提升密文安全性,抗檢測的安全性表現(xiàn)為網(wǎng)絡(luò)隱蔽信道不被發(fā)現(xiàn)的能力,是密文安全的第一道防線,一個好的隱蔽通信系統(tǒng)可以不依賴加密密文等方法做到隱蔽傳輸完成而不被發(fā)現(xiàn),即隱蔽通信系統(tǒng)可以在被檢測出來前完成密文傳遞[20]。
在區(qū)塊鏈系統(tǒng)中,隱蔽通信信道的基本單元為地址,本文提出的多地址時間型隱蔽通信方法從3 個方面降低地址的特殊性:1) 除了作為標(biāo)志的特殊地址,其余所有地址的交易指向可以是任意地址,使承載密文的地址不泄露接收地址,降低了接收地址的特殊性;2) 使用多地址實現(xiàn)分布式傳輸密文不僅提升傳輸速率也均衡了每個地址隱蔽通信量,地址隱蔽通信的持續(xù)時間大大減少,降低了發(fā)起地址出現(xiàn)次數(shù)的特殊性;3) 優(yōu)化交易的發(fā)起時間間隔,擬合正常樣本的分布,降低了發(fā)起地址的發(fā)起時間間隔的特殊性。
針對發(fā)起時間,從信息論角度對比加入隱蔽通信過程后的交易間隔分布和正常的交易間隔分布得到抗檢測性能。K-L 散度又稱相對熵,用于描述2 個概率分布的差異關(guān)系,定義為,其中,P表示真實的概率分布,G表示擬合的概率分布。在隱蔽通信的抗檢測性測試中,P和G可以體現(xiàn)為合法流量和隱蔽流量的概率分布[21]。
基于對比特幣正常交易間隔分布的統(tǒng)計結(jié)果,設(shè)正常樣本為指數(shù)分布的交易間隔,隱蔽通信交易隔間主要集中在5~25 min。當(dāng)前場景下x∈ [5,25],未作處理的正態(tài)分布表示為
一次擬合的指數(shù)分布表示為
兩次擬合的指數(shù)分布表示為
合法流量的概率分布P(x) =λe-λx,x∈[5,25],依次得到的3 個離散熵分別表示為
將隱蔽流量混入合法流量后中進(jìn)行評估離散度,由K-L 散度公式和熵函數(shù)可知,合法流量P和隱蔽流量G的差值越大,相對熵DKL越大,當(dāng)相對熵達(dá)到某個閾值時可以認(rèn)定為隱蔽流量。
Ge1、Ge2和合法流量P都為指數(shù)分布,相較于正態(tài)分布的Gn會具有更低的離散度,而兩次擬合后的指數(shù)分布Ge2相較于一次擬合的Ge1擬合的時間點更多,離散度將會進(jìn)一步降低。
假設(shè)某地址在一段時間內(nèi)一共發(fā)起1 000 次交易,其中包含了100 次隱蔽通信交易,即隱蔽通信樣本和正常樣本的比例為1:9。正常交易間隔序列和分別加入正態(tài)分布密文、指數(shù)分布密文后的序列如圖13所示,其中指數(shù)分布密文序列分為兩階段,第一階段為加入一次指數(shù)分布密文后的分布,如圖13(c)所示;第二階段為加入兩次指數(shù)分布密文后的分布,如圖13(d)所示,為了方便對比,比例仍然為1:9。

圖13 正常交易間隔樣本和隱蔽通信交易間隔樣本的分布
表3 為合法流量P和隱蔽流量G的概率分布情況,P為1 000 次正常交易間隔樣本,G為900 次的正常交易樣本中加入100 次隱蔽通信樣本,設(shè)Gn為μ1= 10、μ2= 20、σ=2的正態(tài)分布樣本,Ge1為一次λ=0.1的指數(shù)分布樣本,Ge2為兩次λ=0.1的指數(shù)分布樣本。

表3 合法流量P 和隱蔽流量G 的概率分布情況
計算密文添加到正常序列后和正常序列的K-L散度計算結(jié)果如表4 所示。

表4 K-L 散度計算結(jié)果
經(jīng)過調(diào)整后的交易間隔序列K-L散度低于常規(guī)正態(tài)分布的60%,而加入兩次指數(shù)分布后的密文序列K-L 散度為正態(tài)分布的35%,這和理論推導(dǎo)的結(jié)果相吻合,可證明調(diào)整交易間隔后的時間型隱蔽通信系統(tǒng)可以承受更高的交易間隔檢測閾值,具有更好的抗檢測性。
又因為使用多個地址來傳輸隱蔽信息,每個地址分配到一部分密文并且傳輸密文的長度相近。所以地址的交易間隔是獨立同分布的,地址都滿足以上的抗檢測性能。而特殊地址的發(fā)起頻率很低,不屬于高頻交易地址,故被檢測的概率極低。
3.3 其他性能
1) 誤碼率。傳統(tǒng)的隱蔽通信系統(tǒng)中因為網(wǎng)絡(luò)波動或收發(fā)雙方的誤差,誤碼情況不可避免,因此提出了很多保證密文序列的方法。然而在區(qū)塊鏈網(wǎng)絡(luò)上實現(xiàn)隱蔽通信的方法中,使用的時間都指系統(tǒng)生成的區(qū)塊時間戳。隱蔽通信的雙方都可以讀取時間戳信息,只需統(tǒng)計交易是否出現(xiàn)在區(qū)塊中即可得到時間戳間隔信息,故傳統(tǒng)意義上時間波動對區(qū)塊鏈網(wǎng)絡(luò)下的隱蔽通信影響很小,不存在因網(wǎng)絡(luò)波動而導(dǎo)致密文誤碼的情況。
對于時間型區(qū)塊鏈隱蔽通信而言,出現(xiàn)誤碼的情況為交易沒有及時上鏈,導(dǎo)致表示密文的時間戳間隔改變,本文在第2 節(jié)的描述中已經(jīng)提到這種情況并且通過特殊地址暫停隱蔽通信等待重新開始的方法解決誤碼事件。
2) 獲密時間。接收方從完成共識后的區(qū)塊中獲取密文的時間,由于區(qū)塊的時間戳無須獲取,接收方只需要遍歷每個區(qū)塊中地址是否存在,因此遍歷的復(fù)雜度為O(nTnA),其中,nT為一個區(qū)塊包含的交易數(shù)量,nA為參與隱蔽通信的地址數(shù)量。地址LSB 嵌入型利用特殊地址的標(biāo)簽機(jī)制[22]加速遍歷的收斂,得到的復(fù)雜度為O(nTnL),nL為標(biāo)簽地址的數(shù)量,然而地址嵌入型獲密過程還包含了地址的解析,因此需要更多的計算資源,故時間型區(qū)塊鏈隱蔽通信方法在獲密時間上存在一定的優(yōu)勢。
3) 通信成本。在區(qū)塊鏈系統(tǒng)中實現(xiàn)隱蔽通信具有更高的安全性但是也需要更多的通信成本,主要體現(xiàn)在交易費中,本文在性能測試中已經(jīng)提出此問題,即使提高了時間型區(qū)塊鏈隱蔽通信方法的傳輸速率,但是通信所產(chǎn)生的總交易費沒有改變,若要減少通信成本只能采用更高效的編碼方式,從而使一次交易可以承載更多的信息量。
4 結(jié)束語
針對時間型區(qū)塊鏈隱蔽通信傳輸速率低的問題,本文提出了多地址時間型區(qū)塊鏈隱蔽通信方法,由多個地址發(fā)起交易,這些交易可以指向任意地址,接收方由共識廣播獲取所有參與隱蔽通信地址的區(qū)塊時間戳間隔,將間隔對照密文表轉(zhuǎn)換為密文片段,組合后得到完整密文。
本文系統(tǒng)的傳輸速率隨著參與隱蔽通信地址數(shù)量增加而提升,并且從交易接收地址、發(fā)起地址的出現(xiàn)次數(shù)和發(fā)起時間間隔3 個方面降低了地址的特殊性。經(jīng)統(tǒng)計得出比特幣中同一個地址交易發(fā)起時間間隔近似為指數(shù)分布的規(guī)律,根據(jù)這個規(guī)律提出了一種調(diào)整地址發(fā)起交易間隔擬合為指數(shù)分布的方法,將密文序列對應(yīng)的交易間隔加入正常交易序列中和正常序列對比,擬合后的序列具有更低的K-L 散度,說明本文方法具有更好的抗檢測性。
在未來工作中,筆者將結(jié)合時間型抗檢測性強(qiáng)和空間型單次交易傳輸信息量大的優(yōu)點實現(xiàn)混合型區(qū)塊鏈隱蔽通信方法,在此基礎(chǔ)上還可以探索時間和空間雙通道的區(qū)塊鏈隱蔽通信方法。