黃冬艷,李琨
(桂林電子科技大學(xué)廣西無線寬帶通信與信號(hào)處理重點(diǎn)實(shí)驗(yàn)室,廣西 桂林 541004)
隱蔽通信利用正常的通信行為傳送秘密信息,可大大降低信息在傳遞過程中受攻擊的風(fēng)險(xiǎn)。不同于一般的加密通信,隱蔽通信一般采用公共的信息載體,將隱蔽信息隱藏在主體信息中并隨之一起傳輸。所有用戶都可以讀取或接收到主體信息,但只有隱蔽通信的目標(biāo)接收方才有解密隱蔽信息的方法,其他用戶無法察覺正在進(jìn)行的隱蔽通信行為[1]。然而,若攻擊者有足夠多的時(shí)間和計(jì)算機(jī)資源對(duì)存在隱蔽通信行為的通信方進(jìn)行針對(duì)性的檢測(cè),就可以區(qū)分和檢測(cè)出隱蔽通道[2]。
區(qū)塊鏈特別是公鏈,以去中心化和難以篡改著稱,由大部分節(jié)點(diǎn)參與共識(shí)形成的去中心化結(jié)構(gòu)提供了匿名環(huán)境;區(qū)塊中的交易內(nèi)容是隨機(jī)生成的地址之間的轉(zhuǎn)賬過程,而不是實(shí)際的賬戶,因此無法通過交易地址得知賬戶擁有人;利用Hash 函數(shù)唯一性特點(diǎn)[3]將產(chǎn)生的區(qū)塊以時(shí)間戳順序串聯(lián)起來保證區(qū)塊的內(nèi)容難以篡改,具有很強(qiáng)的安全性。第三方檢測(cè)者要想從隨機(jī)地址的交易環(huán)境中找到存在隱蔽通信行為的用戶非常困難。因此,區(qū)塊鏈平臺(tái)是實(shí)現(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ù)量和單個(gè)區(qū)塊可提取的交易數(shù)量,實(shí)現(xiàn)信息傳輸速率的提升,并且通過將下一次隱蔽信息的開始標(biāo)識(shí)符(MSI)包含在密文中以減少鏈外通信次數(shù)。Zhang 等[8]提出的V-BLOCCE 則將BLOCCE 原本以二進(jìn)制嵌入地址換成與比特幣地址同樣編碼的BASE58,利用比特幣地址生成應(yīng)用Vanitygen 在地址中映射密文,并將索引表存放在交易的腳本字段,極大地提升了傳輸速率。但是,以BLOCCE為代表的LSB 交易地址隱藏方法需要維護(hù)大量參與隱蔽通信的特殊地址,其改進(jìn)方案使用更多的交易字段來隱藏?cái)?shù)據(jù),這意味著交易的特殊性增加,容易被檢測(cè)為異常行為。
基于以太坊的隱藏方案。Liu 等[9]使用以太坊交易的VALUE 字段構(gòu)造了基于哈希消息認(rèn)證碼(HMAC)的多比特嵌入方法,同時(shí)構(gòu)建哈希鏈增加隱蔽性,并且增加了模糊數(shù)據(jù)以提升安全性。Zhang 等[10]利用以太坊Whispers 通信中的信封和信體機(jī)制,將密文和映射表存儲(chǔ)到信體中,信封的主題字段存儲(chǔ)標(biāo)志,用于加快收信人的篩選速度,收信人通過篩選信封主題快速收集隱蔽信息。Zhang 等[11]對(duì)投票和競(jìng)價(jià)智能合約提出隱藏方法,接收方根據(jù)收到的投票和競(jìng)價(jià)順序或地址首字母進(jìn)行排序,若以選項(xiàng)作為載體,則對(duì)地址排序,地址對(duì)應(yīng)的選項(xiàng)序號(hào)為隱藏的字符;若以地址作為載體,則以選項(xiàng)順序?qū)?yīng)地址首字母作為隱藏信息。
基于文本或圖像的隱藏方案。佘維等[12]通過在交易中發(fā)送txt文件的最后文本行添加空格表示二進(jìn)制密文,并且通過雙方提前協(xié)商建立偏序集來增加隱藏強(qiáng)度。Basuki 等[13]提出了基于加密圖像實(shí)現(xiàn)隱藏大量信息的方法,首先由發(fā)送方在以太坊交易的時(shí)間戳、目標(biāo)地址和交易上限字段中利用最高有效位(MSB)嵌入圖像解密的方法數(shù)據(jù)包,然后接收方獲取并解析數(shù)據(jù)包后得到加密圖像的統(tǒng)一資源定位符(URL)和解密方法,最后解密圖像即可得到大量的隱藏信息。
上述方案均是基于在地址或字段的特殊位置隱藏的思路開展的研究,可歸類為存儲(chǔ)型隱蔽通信方案。不同于以上方案,隱蔽通信系統(tǒng)還能以時(shí)間為載體進(jìn)行構(gòu)建,如調(diào)整時(shí)間間隔、改變數(shù)據(jù)速率、改變包排列順序、觸發(fā)數(shù)據(jù)重傳等[2]。
區(qū)塊鏈系統(tǒng)中的時(shí)間戳機(jī)制是良好的時(shí)間載體,然而目前的研究較少,僅有李彥峰等[14]提出的基于區(qū)塊鏈時(shí)間戳隱藏方法,該方法不依賴特殊地址,而是對(duì)交易時(shí)間戳的間隔進(jìn)行編碼以承載隱藏信息,因此具有獨(dú)特的隱蔽性。但受限于單位時(shí)間內(nèi)有限的信息量,隱蔽通信的傳輸速率低,且通信的開始和結(jié)束標(biāo)志為連續(xù)的碼字,也容易被檢測(cè)為異常行為。
在此研究基礎(chǔ)上,本文以提升時(shí)間型區(qū)塊鏈隱蔽通信的傳輸速率和增強(qiáng)抗檢測(cè)性為目的,提出一種多地址時(shí)間型區(qū)塊鏈隱蔽通信方法,由特殊地址表示隱蔽通信的開始和結(jié)束,在一個(gè)區(qū)塊內(nèi)由多個(gè)地址參與隱蔽通信,將隱蔽通信任務(wù)拆分到更多地址上,地址的交易時(shí)間戳間隔表示密文片段,接收方讀取區(qū)塊并統(tǒng)計(jì)這些交易的間隔,最后組合、解密和還原出密文。
本文的主要貢獻(xiàn)如下。
1) 提出了多地址的時(shí)間型區(qū)塊鏈隱蔽通信方法,在一個(gè)區(qū)塊內(nèi)傳輸更多的信息量,具有更高的傳輸速率。
2) 提出了一種調(diào)整交易發(fā)起時(shí)間間隔的方法,降低了因隱蔽通信行為而導(dǎo)致地址呈現(xiàn)特殊性的概率,實(shí)現(xiàn)更好的抗檢測(cè)性能。
3) 以比特幣交易數(shù)據(jù)作為測(cè)試數(shù)據(jù),評(píng)估了所提隱蔽通信方法的傳輸速率和抗檢測(cè)性。
基礎(chǔ)的隱蔽通信系統(tǒng)主要由構(gòu)建網(wǎng)絡(luò)隱蔽信道、嵌入密文和提取密文3 個(gè)過程組成。
1) 網(wǎng)絡(luò)隱蔽信道可以分為存儲(chǔ)型網(wǎng)絡(luò)隱蔽信道和時(shí)間型網(wǎng)絡(luò)隱蔽信道。存儲(chǔ)型網(wǎng)絡(luò)隱蔽信道使用協(xié)議數(shù)據(jù)單元內(nèi)部的信息傳輸隱蔽數(shù)據(jù);時(shí)間型網(wǎng)絡(luò)隱蔽信道使用協(xié)議數(shù)據(jù)單元的時(shí)間特性傳輸隱蔽數(shù)據(jù)。時(shí)間型隱蔽通信比存儲(chǔ)型隱蔽通信的隱蔽性更好,但傳輸速率更低[1]。
2) 存儲(chǔ)型網(wǎng)絡(luò)隱蔽信道嵌入密文的方法主要有根據(jù)數(shù)據(jù)包和協(xié)議頭中未使用的或不會(huì)被驗(yàn)證的字段增加數(shù)據(jù),例如,在數(shù)據(jù)包中非關(guān)鍵報(bào)文的排列順序隱藏信息;根據(jù)需要編碼的字段中嵌入一位有效值,稱為LSB。時(shí)間型網(wǎng)絡(luò)隱蔽信道嵌入密文的方法主要有2 種,分別為根據(jù)不同數(shù)據(jù)包之間的時(shí)間間隔隱藏編碼后的信息和根據(jù)數(shù)據(jù)包到達(dá)的時(shí)間順序隱藏信息[2]。
3) 密文提取方法由隱蔽通信雙方在通信開始前協(xié)商,密文的接收一般根據(jù)時(shí)間順序依次提取隱藏信息組合,得到的密文由發(fā)送方進(jìn)行加密,接收方根據(jù)提前協(xié)商的方法解密便可得到信息。
在此基礎(chǔ)上,還有一些結(jié)合所在網(wǎng)絡(luò)環(huán)境實(shí)現(xiàn)隱蔽通信的方案,Taheri 等[15]在VANET(vehicular ad-hoc network)中開發(fā)了一種混合(時(shí)間和存儲(chǔ))隱蔽通道,時(shí)間方面通過改變服務(wù)和控制數(shù)據(jù)包的時(shí)間模式來發(fā)送隱蔽消息,存儲(chǔ)方面通過控制信道發(fā)送周期性消息的一些字段。Wendzel 等[16]使用TCP/IP 頭字段作為隱蔽信道載體,將傳輸?shù)拿芪膬?nèi)容分片,同時(shí)建立多個(gè)傳輸協(xié)議隨機(jī)發(fā)送分片,收集所有分片以還原密文信息。Zhang 等[17]提出了一種雙向長期演進(jìn)語音承載(VoLTE)隱蔽方法,正向通過主動(dòng)丟棄數(shù)據(jù)包來調(diào)制隱蔽消息,反向通過數(shù)據(jù)包存儲(chǔ)反饋隱蔽信息,通過反饋更改正向傳輸?shù)膮?shù)。這些隱蔽通信實(shí)現(xiàn)方法對(duì)在區(qū)塊鏈中實(shí)現(xiàn)更好的隱蔽通信有借鑒意義。
隱蔽通信中涉及的區(qū)塊鏈相關(guān)概念如下。
1) 交易的地址。一次交易的發(fā)起需要發(fā)送方的地址、對(duì)應(yīng)的公鑰和簽名,以及接收方的地址。用戶可以擁有多個(gè)地址,只要掌握地址對(duì)應(yīng)的私鑰即視為擁有此地址。以比特幣為例,地址生成過程如圖1 所示,地址的私鑰是隨機(jī)生成的,私鑰經(jīng)過橢圓曲線計(jì)算生成公鑰,再通過SHA256運(yùn)算和RIPEMD160 運(yùn)算得到Hash 值,和版本號(hào)一起進(jìn)行雙SHA256 運(yùn)算,選取前4 B 作為校驗(yàn)碼,一起封裝后再經(jīng)過BASE58 編碼轉(zhuǎn)換成比特幣地址。
圖1 比特幣地址生成過程
2) 交易的時(shí)間戳。區(qū)塊鏈的時(shí)間戳有2 個(gè)作用,一是防止篡改區(qū)塊哈希值,二是保證區(qū)塊排列順序。如圖2 所示,待確認(rèn)交易的時(shí)間是本地用戶發(fā)起交易的時(shí)間,在未被區(qū)塊驗(yàn)證和打包成塊之前所有待確認(rèn)交易都使用本地時(shí)間。對(duì)于確認(rèn)后的交易來說,其時(shí)間戳為區(qū)塊時(shí)間戳,即一個(gè)區(qū)塊的所有交易都是同一個(gè)確認(rèn)時(shí)間。
圖2 區(qū)塊鏈系統(tǒng)的發(fā)起交易時(shí)間和確認(rèn)時(shí)間
3) 地址發(fā)起交易的間隔。對(duì)于區(qū)塊鏈系統(tǒng)來說,不同地址發(fā)起交易的頻率是獨(dú)立分布的,交易首先進(jìn)入待確認(rèn)過程,被系統(tǒng)打包成塊后再被賦予時(shí)間戳等信息。因此地址發(fā)起交易間隔有本地發(fā)起交易間隔和區(qū)塊時(shí)間戳間隔兩類。如圖3所示,對(duì)于地址add2的連續(xù)兩次交易,發(fā)起時(shí)間為t1和t2,對(duì)應(yīng)的區(qū)塊時(shí)間戳為和,交易的確認(rèn)時(shí)間為Δ1和Δ2,發(fā)起交易的間隔為 Δt1,區(qū)塊時(shí)間戳間隔為。
圖3 地址發(fā)起交易的間隔
4) 地址發(fā)起交易的交易費(fèi)。區(qū)塊鏈系統(tǒng)為了避免惡意發(fā)起大量無效交易增加了交易費(fèi)機(jī)制,因此對(duì)于打包區(qū)塊方來說,交易費(fèi)越高越先進(jìn)入?yún)^(qū)塊。當(dāng)?shù)却虬灰椎年?duì)列過長或者一筆交易的交易費(fèi)少于絕大部分交易時(shí),交易費(fèi)低的交易可能一直不會(huì)被打包進(jìn)區(qū)塊,并且隨著擁塞時(shí)間的增加被撤銷而成為無效交易。
公鏈區(qū)塊鏈的地址權(quán)限是由掌握對(duì)應(yīng)私鑰的用戶所使用的,用戶實(shí)際控制的私鑰和地址的數(shù)量是可觀的,又由于地址對(duì)應(yīng)的私鑰不會(huì)公開,用戶始終是匿名的,因此使用部分地址組成一個(gè)地址池參與隱蔽通信在用戶角度是完全可行的。
多地址區(qū)塊鏈隱蔽通信流程如圖4 所示。
圖4 多地址區(qū)塊鏈隱蔽通信流程
1) 隱蔽通信的開始和結(jié)束標(biāo)志僅由發(fā)送方用特殊地址adds發(fā)給接收方的地址表示,其他地址對(duì)應(yīng)密文M的分片Mi,這些地址組成地址池,特殊地址可以在發(fā)送方本身擁有的地址中挑選,也可以使用Vanitygen 程序生成[8],對(duì)指定地址位規(guī)定數(shù)值并自動(dòng)生成地址,只需雙方在提前協(xié)商過程中達(dá)成共識(shí)即可。
2) 當(dāng)收到特殊地址的交易后,接收方開始在下一個(gè)區(qū)塊中遍歷發(fā)送方所有參與隱蔽通信的地址。這些地址的交易可以指向任意地址而不只是接收方,因此不影響發(fā)送方的正常交易。由于區(qū)塊時(shí)間戳不需要額外獲取,接收方只需要遍歷地址池的地址是否出現(xiàn)在此區(qū)塊中,因此減少了遍歷的開銷。
3) 接收方首先根據(jù)地址列表篩選,得到每個(gè)地址的交易發(fā)起分布,再按照交易發(fā)起的時(shí)間戳排序,直到收到結(jié)束標(biāo)志的地址開始解密。2 個(gè)交易之間的間隔表示為隱蔽信息,若以二進(jìn)制作為密文的調(diào)制方式,則可以設(shè)定短交易區(qū)塊時(shí)間戳間隔為“0”,長交易區(qū)塊時(shí)間戳間隔為“1”,將所有地址的交易間隔對(duì)應(yīng)的密文分片組合得到完整密文,密文分片的順序由地址池的順序保證,地址池的順序可按照地址的字母排序或雙方提前協(xié)商的規(guī)則。
4) 如果某個(gè)交易因?yàn)榻灰踪M(fèi)不足或區(qū)塊鏈系統(tǒng)擁塞沒有被及時(shí)打包到對(duì)應(yīng)的區(qū)塊中,導(dǎo)致最新的區(qū)塊中讀取不到該地址,則發(fā)送方在下一個(gè)區(qū)塊中追加一個(gè)由特殊地址adds發(fā)起的交易表示暫停,本次信息無效,該交易的接收指向接收方地址和被延遲打包的地址,同時(shí)暫停被延遲打包的地址發(fā)起下一次通信,直到發(fā)送方和接收方在新的區(qū)塊中發(fā)現(xiàn)被延遲打包的地址出現(xiàn)在后續(xù)的區(qū)塊,結(jié)束暫停。
5) 隱蔽通信開始之前的協(xié)商內(nèi)容如下。①發(fā)送方發(fā)起隱蔽通信的地址池包括特殊地址;② 密文對(duì)應(yīng)的信息編碼和加密規(guī)則。在一次正常的交易中,接收方需要向發(fā)送方公布接收地址,協(xié)商過程本來就合理存在,因此協(xié)商可以順利完成。
整個(gè)隱蔽通信中地址的對(duì)應(yīng)關(guān)系如圖5 所示,只有特殊地址adds的交易指向接收方地址,而其他地址的交易指向可以是任意地址,接收地址出現(xiàn)的頻率減少,降低了地址交易的特殊性,且不影響發(fā)送方本身常規(guī)的交易需求。
圖5 地址的對(duì)應(yīng)關(guān)系
區(qū)塊鏈系統(tǒng)將一個(gè)時(shí)間段的交易打包并賦予同一個(gè)時(shí)間戳,而時(shí)間型隱蔽通信利用時(shí)間間隔作為載體隱藏密文,間隔長短對(duì)應(yīng)不同的碼字,因此參與隱蔽通信的地址在一段時(shí)間內(nèi)會(huì)間隔著區(qū)塊時(shí)間戳出現(xiàn)在區(qū)塊中。若以此規(guī)律作為檢測(cè)區(qū)塊中是否存在特殊地址的判斷條件,則會(huì)有大量正常樣本被計(jì)入可疑樣本。由于本文方法參與傳輸密文的地址數(shù)量增多,每個(gè)地址承擔(dān)的隱蔽通信任務(wù)時(shí)間大大縮短,更難以和正常樣本區(qū)分,故隱蔽性較好;若檢測(cè)地址發(fā)起交易間隔,也就是待確認(rèn)交易,這個(gè)階段的交易發(fā)起行為更加隨機(jī)化,對(duì)于有規(guī)律的隱蔽通信行為會(huì)變得更特殊、更容易分辨。因此需要對(duì)一般的地址交易發(fā)起行為進(jìn)行統(tǒng)計(jì)和建模,以優(yōu)化隱蔽通信地址的交易發(fā)起行為。
將整個(gè)區(qū)塊鏈的交易到達(dá)過程視為一個(gè)隨機(jī)過程,這個(gè)隨機(jī)過程可以簡化為參數(shù)為λ的泊松流模型,表示在時(shí)間區(qū)間t內(nèi)n個(gè)交易到達(dá)的概率,參數(shù)λ表示單位時(shí)間內(nèi)平均到達(dá)的交易數(shù)量[18]。那么兩次交易間隔T必定服從指數(shù)分布,易證明對(duì)任意時(shí)間t>0 和s>0,P{T>t+s|T>s}=P{T>t}具有馬爾可夫性,交易到達(dá)的間隔與前一次交易無關(guān),交易間隔分布情況由指數(shù)分布的分布函數(shù)1 - e-λt體現(xiàn)。
本文使用的變量和符號(hào)釋義如表1 所示。區(qū)塊鏈中交易的發(fā)起行為由用戶決定,且活躍用戶的可用地址形成地址池,則在單位時(shí)間內(nèi),區(qū)塊鏈系統(tǒng)平均到達(dá)的交易數(shù)量;αnB表示單位時(shí)間內(nèi)同地址發(fā)起的交易數(shù)量,則同地址平均到達(dá)的交易數(shù)量,。因此,無論是區(qū)塊鏈系統(tǒng)的交易間隔分布還是同地址的交易間隔分布,在理論上都是服從指數(shù)分布的。
表1 變量和符號(hào)釋義
為了得到真實(shí)的交易間隔分布,本文收集了比特幣一周的交易發(fā)起時(shí)間數(shù)據(jù),對(duì)地址的發(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 都高于鄰近時(shí)間,這與比特幣大約每10 min 完成一次出塊具有很大的關(guān)聯(lián)性,間隔為10 min 的數(shù)量約為20 min 的2 倍。
若假設(shè)傳輸?shù)拿芪囊远M(jìn)制進(jìn)行調(diào)制,短區(qū)間(約10 min)包含一個(gè)區(qū)塊,長區(qū)間(約20 min)包含2 個(gè)區(qū)塊,由此可以得到隱蔽通信的傳輸速率。設(shè)發(fā)送方有nA個(gè)可以用于隱蔽通信的地址,若密文調(diào)制后的“0”“1”碼字出現(xiàn)概率為均勻分布,即碼字出現(xiàn)的概率相同,可以得到一個(gè)地址傳輸一個(gè)碼字的平均時(shí)間約為15 min。則擁有nA個(gè)地址的發(fā)送方傳輸一個(gè)碼字時(shí)間平均約為,速率為比特每區(qū)塊(bit/block)。發(fā)送方傳輸一個(gè)地址私鑰隨機(jī)數(shù)為1~ 2256,用二進(jìn)制表示至多256 bit,需要經(jīng)過個(gè)區(qū)塊傳輸完成,傳輸長度為m的密文所需區(qū)塊為個(gè),且,即至少有2 個(gè)區(qū)塊來表示2 種碼字。
同時(shí),地址數(shù)量不能超過區(qū)塊所承載的交易量,大量地址參與會(huì)提高交易費(fèi),這對(duì)區(qū)塊鏈系統(tǒng)而言是一種特殊事件,故不可同時(shí)發(fā)送大量地址。
密文碼字出現(xiàn)的概率對(duì)應(yīng)時(shí)間間隔長短的概率,對(duì)于均勻分布的二進(jìn)制密文,2 個(gè)區(qū)間包含的交易數(shù)量相同,且區(qū)間內(nèi)大部分的交易集中在對(duì)應(yīng)的區(qū)塊間隔時(shí)間上。設(shè)長短區(qū)間內(nèi)的不同時(shí)間交易發(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 時(shí)長短區(qū)間的數(shù)據(jù)重合。
圖8 長短區(qū)間內(nèi)發(fā)起交易間隔呈現(xiàn)的正態(tài)分布
當(dāng)這段特殊交易間隔被加入某個(gè)地址的交易行為中時(shí),會(huì)改變?cè)局笖?shù)分布的發(fā)起規(guī)律,若地址想再次作為隱蔽通信地址,則需要用更多的正常交易來保持正常規(guī)律,這不僅影響了隱蔽通信的二次運(yùn)行效率,還增加了地址的維護(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)整流程
不同時(shí)間間隔出現(xiàn)的次數(shù)需要擬合指數(shù)分布,若將所有的時(shí)間點(diǎn)都分配相應(yīng)的交易數(shù)量,則短區(qū)間的交易數(shù)量將遠(yuǎn)超長區(qū)間,這不符合密文碼字分布。因此在短區(qū)間中,可以將交易數(shù)量集中在一部分時(shí)間點(diǎn)上,使這部分時(shí)間點(diǎn)擬合指數(shù)分布。
調(diào)整后的交易間隔分布如圖10 所示,長短2 個(gè)區(qū)間內(nèi)的交易數(shù)量相同,長區(qū)間內(nèi)的交易間隔次數(shù)服從指數(shù)分布,短區(qū)間內(nèi)的交易集中在一些時(shí)間點(diǎn)上使整體近似指數(shù)分布,當(dāng)?shù)刂吠瓿杀敬坞[蔽通信任務(wù)后可以根據(jù)發(fā)送方要求進(jìn)入下一次隱蔽通信。而下一次隱蔽通信的序列可以填補(bǔ)上一次短區(qū)間空缺的時(shí)間點(diǎn),兩次交易間隔都近似指數(shù)分布,若統(tǒng)計(jì)樣本中包含了兩次間隔累計(jì)次數(shù),則長短區(qū)間內(nèi)交易間隔次數(shù)都近似指數(shù)分布,地址交易間隔的特殊性進(jìn)一步降低。
圖10 調(diào)整后的交易間隔分布
不同于文獻(xiàn)[19]將隱藏容量定義為每條交易可以嵌入的秘密信息比特?cái)?shù),再根據(jù)隱蔽通信時(shí)間得到系統(tǒng)效率的對(duì)比方式,時(shí)間型區(qū)塊鏈隱蔽通信方法以區(qū)塊時(shí)間戳間隔為載體,至少需要經(jīng)過2 個(gè)以上的時(shí)間戳間隔才能完成隱蔽通信,因此不適合直接使用上述方式進(jìn)行對(duì)比。
傳輸速率C定義為每個(gè)區(qū)塊中隱藏信息的比特?cái)?shù),單位為比特每區(qū)塊,若每條交易包含的信息量為Ibit,同時(shí)一個(gè)區(qū)塊內(nèi)可能存在多條參與隱蔽通信的交易,則傳輸?shù)目傂畔⒘繛?。隱蔽通信系統(tǒng)傳輸一段mbit 的密文需要條交易,故隱蔽通信系統(tǒng)的傳輸速率表示為
BLOCCE 的LSB 地址隱藏方法一個(gè)區(qū)塊內(nèi)由一個(gè)地址發(fā)起一次特殊交易,特殊交易的地址最低有效位嵌入一位字符表示密文,即每個(gè)區(qū)塊時(shí)間傳輸一個(gè)包含字符M的交易,每條交易的信息量為I= lbM,其傳輸速率表示為
考慮到在時(shí)間型隱蔽通信方法中也可以使用多進(jìn)制調(diào)制密文,但是需要更長的時(shí)間間隔來對(duì)應(yīng)碼字,其傳輸效率表示傳輸一個(gè)碼字的平均區(qū)塊個(gè)數(shù)。
如圖11 所示,η收斂于M=4,為每1.25 個(gè)區(qū)塊傳輸1 bit,二進(jìn)制傳輸速率為每1.5 個(gè)區(qū)塊傳輸1 bit,隨著編碼進(jìn)制的增加,交易間隔越來越大,傳輸速率反而下降。因此可以設(shè)計(jì)一種四進(jìn)制編碼規(guī)則以提升速率,限于篇幅,本文采用二進(jìn)制這種更加普遍的調(diào)制方式。
由圖11 可知,本文提出的多地址時(shí)間型區(qū)塊鏈隱蔽方法二進(jìn)制調(diào)制的密文平均需要1.5 個(gè)區(qū)塊傳輸1 bit,故每條交易的信息量為系統(tǒng)有nA個(gè)地址,所有地址參與隱蔽通信可視為同一行為,故總信息量為。
圖11 使用多進(jìn)制編碼的速率曲線
由于時(shí)間型隱蔽通信系統(tǒng)開始和結(jié)束隱蔽通信需要額外過程,本文方法使用特殊地址盡可能減少這一過程的損耗。為保持開始階段所有地址同步,開始標(biāo)志的特殊地址不參與時(shí)間間隔計(jì)算??紤]到所有地址承載的密文長度不同,結(jié)束標(biāo)志的特殊地址也不參與時(shí)間間隔計(jì)算,所以整個(gè)系統(tǒng)僅多出兩次不表示密文的交易。故傳輸一段mbit 的密文需要條交易,其傳輸速率為,在多進(jìn)制情況下的傳輸速率表示為
基礎(chǔ)時(shí)間間隔隱藏方法,開始和結(jié)束標(biāo)志為連續(xù)相同碼字,設(shè)定為連續(xù)的5 個(gè)“0”和“1”,共10 個(gè)間隔作為標(biāo)志[14],可由s表示開始和結(jié)束標(biāo)志個(gè)數(shù),二進(jìn)制調(diào)制下總信息量為,其傳輸速率為bit/block,在多進(jìn)制情況下的傳輸速率表示為
多地址時(shí)間型方法、文獻(xiàn)[6]提出的BLOCCE的地址LSB 嵌入型方法和文獻(xiàn)[14]提出的基礎(chǔ)時(shí)間型方法的理論傳輸速率對(duì)比如表2 所示。其中,M為編碼進(jìn)制,m為密文比特?cái)?shù),nA為用戶擁有的可發(fā)起的隱蔽通信的地址數(shù),s為開始和結(jié)束標(biāo)志個(gè)數(shù)。
表2 不同隱蔽通信方法的理論傳輸速率對(duì)比
為了簡化對(duì)比,接收方從完成出塊的區(qū)塊中遍歷隱蔽信息和解碼的時(shí)間為接收方獲密時(shí)間,獲密時(shí)間不計(jì)入密文傳輸時(shí)間。
在比特幣交易系統(tǒng)中使用同樣的編碼方式和地址交易發(fā)起頻率傳輸同一段密文。設(shè)所有隱蔽通信系統(tǒng)都以10 min 的區(qū)塊為單位計(jì)算隱蔽通信時(shí)間,時(shí)間型隱蔽通信方法統(tǒng)一使用二進(jìn)制編碼;地址LSB 嵌入型通信方法中一個(gè)區(qū)塊內(nèi)包含一次交易,同時(shí)傳輸256 bit 的密文,不同隱蔽通信方法的傳輸速率對(duì)比如圖12 所示。
圖12 不同隱蔽通信方法的傳輸速率對(duì)比
當(dāng)多地址時(shí)間型隱蔽通信方法的地址數(shù)量nA=1時(shí),信息傳輸速率略高于基礎(chǔ)時(shí)間型隱蔽通信方法,這是因?yàn)槠涫褂昧颂厥獾刂反姘l(fā)送連續(xù)同碼字密文作為開始結(jié)束標(biāo)志;當(dāng)多地址時(shí)間型隱蔽通信方法的地址數(shù)量nA=2時(shí),信息傳輸速率高于LSB 地址隱藏的BLOCCE;當(dāng)多地址時(shí)間型隱蔽通信方法的地址數(shù)量nA=10時(shí),信息傳輸速率接近直接以BASE58 編碼的V-BLOCCE[8]。
在包含2 000 個(gè)以上交易的比特幣區(qū)塊中,平均每個(gè)區(qū)塊內(nèi)僅有5 次交易參與隱蔽通信,特殊交易占比0.25%。若將占比小于1%視為不會(huì)引起交易費(fèi)異常的安全值,在二進(jìn)制編碼下,地址平均每1.5 個(gè)區(qū)塊出現(xiàn)一次,則極限的地址數(shù)量為nA=30,此時(shí)傳輸速率約為20 bit/block。
盡管多地址傳輸速率比單地址傳輸速率提升了nA倍,可以在更短的時(shí)間內(nèi)完成所有隱藏信息的發(fā)送,對(duì)于單個(gè)地址而言傳輸時(shí)間也相應(yīng)減少,被檢測(cè)的可能性也被分散到各個(gè)地址中。但用戶總體的交易發(fā)起次數(shù)沒有減少,需要同樣的交易費(fèi),而多進(jìn)制編碼的BLOCCE 可以在單次交易中隱藏更多的信息從而減少交易發(fā)起次數(shù),這是時(shí)間型區(qū)塊鏈隱蔽通信方法暫時(shí)無法做到的。
抗檢測(cè)性即隱蔽通信系統(tǒng)的安全性,不同于加密密文提升密文安全性,抗檢測(cè)的安全性表現(xiàn)為網(wǎng)絡(luò)隱蔽信道不被發(fā)現(xiàn)的能力,是密文安全的第一道防線,一個(gè)好的隱蔽通信系統(tǒng)可以不依賴加密密文等方法做到隱蔽傳輸完成而不被發(fā)現(xiàn),即隱蔽通信系統(tǒng)可以在被檢測(cè)出來前完成密文傳遞[20]。
在區(qū)塊鏈系統(tǒng)中,隱蔽通信信道的基本單元為地址,本文提出的多地址時(shí)間型隱蔽通信方法從3 個(gè)方面降低地址的特殊性:1) 除了作為標(biāo)志的特殊地址,其余所有地址的交易指向可以是任意地址,使承載密文的地址不泄露接收地址,降低了接收地址的特殊性;2) 使用多地址實(shí)現(xiàn)分布式傳輸密文不僅提升傳輸速率也均衡了每個(gè)地址隱蔽通信量,地址隱蔽通信的持續(xù)時(shí)間大大減少,降低了發(fā)起地址出現(xiàn)次數(shù)的特殊性;3) 優(yōu)化交易的發(fā)起時(shí)間間隔,擬合正常樣本的分布,降低了發(fā)起地址的發(fā)起時(shí)間間隔的特殊性。
針對(duì)發(fā)起時(shí)間,從信息論角度對(duì)比加入隱蔽通信過程后的交易間隔分布和正常的交易間隔分布得到抗檢測(cè)性能。K-L 散度又稱相對(duì)熵,用于描述2 個(gè)概率分布的差異關(guān)系,定義為,其中,P表示真實(shí)的概率分布,G表示擬合的概率分布。在隱蔽通信的抗檢測(cè)性測(cè)試中,P和G可以體現(xiàn)為合法流量和隱蔽流量的概率分布[21]。
基于對(duì)比特幣正常交易間隔分布的統(tǒng)計(jì)結(jié)果,設(shè)正常樣本為指數(shù)分布的交易間隔,隱蔽通信交易隔間主要集中在5~25 min。當(dāng)前場(chǎng)景下x∈ [5,25],未作處理的正態(tài)分布表示為
一次擬合的指數(shù)分布表示為
兩次擬合的指數(shù)分布表示為
合法流量的概率分布P(x) =λe-λx,x∈[5,25],依次得到的3 個(gè)離散熵分別表示為
將隱蔽流量混入合法流量后中進(jìn)行評(píng)估離散度,由K-L 散度公式和熵函數(shù)可知,合法流量P和隱蔽流量G的差值越大,相對(duì)熵DKL越大,當(dāng)相對(duì)熵達(dá)到某個(gè)閾值時(shí)可以認(rèn)定為隱蔽流量。
Ge1、Ge2和合法流量P都為指數(shù)分布,相較于正態(tài)分布的Gn會(huì)具有更低的離散度,而兩次擬合后的指數(shù)分布Ge2相較于一次擬合的Ge1擬合的時(shí)間點(diǎn)更多,離散度將會(huì)進(jìn)一步降低。
假設(shè)某地址在一段時(shí)間內(nèi)一共發(fā)起1 000 次交易,其中包含了100 次隱蔽通信交易,即隱蔽通信樣本和正常樣本的比例為1:9。正常交易間隔序列和分別加入正態(tài)分布密文、指數(shù)分布密文后的序列如圖13所示,其中指數(shù)分布密文序列分為兩階段,第一階段為加入一次指數(shù)分布密文后的分布,如圖13(c)所示;第二階段為加入兩次指數(shù)分布密文后的分布,如圖13(d)所示,為了方便對(duì)比,比例仍然為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 的概率分布情況
計(jì)算密文添加到正常序列后和正常序列的K-L散度計(jì)算結(jié)果如表4 所示。
表4 K-L 散度計(jì)算結(jié)果
經(jīng)過調(diào)整后的交易間隔序列K-L散度低于常規(guī)正態(tài)分布的60%,而加入兩次指數(shù)分布后的密文序列K-L 散度為正態(tài)分布的35%,這和理論推導(dǎo)的結(jié)果相吻合,可證明調(diào)整交易間隔后的時(shí)間型隱蔽通信系統(tǒng)可以承受更高的交易間隔檢測(cè)閾值,具有更好的抗檢測(cè)性。
又因?yàn)槭褂枚鄠€(gè)地址來傳輸隱蔽信息,每個(gè)地址分配到一部分密文并且傳輸密文的長度相近。所以地址的交易間隔是獨(dú)立同分布的,地址都滿足以上的抗檢測(cè)性能。而特殊地址的發(fā)起頻率很低,不屬于高頻交易地址,故被檢測(cè)的概率極低。
1) 誤碼率。傳統(tǒng)的隱蔽通信系統(tǒng)中因?yàn)榫W(wǎng)絡(luò)波動(dòng)或收發(fā)雙方的誤差,誤碼情況不可避免,因此提出了很多保證密文序列的方法。然而在區(qū)塊鏈網(wǎng)絡(luò)上實(shí)現(xiàn)隱蔽通信的方法中,使用的時(shí)間都指系統(tǒng)生成的區(qū)塊時(shí)間戳。隱蔽通信的雙方都可以讀取時(shí)間戳信息,只需統(tǒng)計(jì)交易是否出現(xiàn)在區(qū)塊中即可得到時(shí)間戳間隔信息,故傳統(tǒng)意義上時(shí)間波動(dòng)對(duì)區(qū)塊鏈網(wǎng)絡(luò)下的隱蔽通信影響很小,不存在因網(wǎng)絡(luò)波動(dòng)而導(dǎo)致密文誤碼的情況。
對(duì)于時(shí)間型區(qū)塊鏈隱蔽通信而言,出現(xiàn)誤碼的情況為交易沒有及時(shí)上鏈,導(dǎo)致表示密文的時(shí)間戳間隔改變,本文在第2 節(jié)的描述中已經(jīng)提到這種情況并且通過特殊地址暫停隱蔽通信等待重新開始的方法解決誤碼事件。
2) 獲密時(shí)間。接收方從完成共識(shí)后的區(qū)塊中獲取密文的時(shí)間,由于區(qū)塊的時(shí)間戳無須獲取,接收方只需要遍歷每個(gè)區(qū)塊中地址是否存在,因此遍歷的復(fù)雜度為O(nTnA),其中,nT為一個(gè)區(qū)塊包含的交易數(shù)量,nA為參與隱蔽通信的地址數(shù)量。地址LSB 嵌入型利用特殊地址的標(biāo)簽機(jī)制[22]加速遍歷的收斂,得到的復(fù)雜度為O(nTnL),nL為標(biāo)簽地址的數(shù)量,然而地址嵌入型獲密過程還包含了地址的解析,因此需要更多的計(jì)算資源,故時(shí)間型區(qū)塊鏈隱蔽通信方法在獲密時(shí)間上存在一定的優(yōu)勢(shì)。
3) 通信成本。在區(qū)塊鏈系統(tǒng)中實(shí)現(xiàn)隱蔽通信具有更高的安全性但是也需要更多的通信成本,主要體現(xiàn)在交易費(fèi)中,本文在性能測(cè)試中已經(jīng)提出此問題,即使提高了時(shí)間型區(qū)塊鏈隱蔽通信方法的傳輸速率,但是通信所產(chǎn)生的總交易費(fèi)沒有改變,若要減少通信成本只能采用更高效的編碼方式,從而使一次交易可以承載更多的信息量。
針對(duì)時(shí)間型區(qū)塊鏈隱蔽通信傳輸速率低的問題,本文提出了多地址時(shí)間型區(qū)塊鏈隱蔽通信方法,由多個(gè)地址發(fā)起交易,這些交易可以指向任意地址,接收方由共識(shí)廣播獲取所有參與隱蔽通信地址的區(qū)塊時(shí)間戳間隔,將間隔對(duì)照密文表轉(zhuǎn)換為密文片段,組合后得到完整密文。
本文系統(tǒng)的傳輸速率隨著參與隱蔽通信地址數(shù)量增加而提升,并且從交易接收地址、發(fā)起地址的出現(xiàn)次數(shù)和發(fā)起時(shí)間間隔3 個(gè)方面降低了地址的特殊性。經(jīng)統(tǒng)計(jì)得出比特幣中同一個(gè)地址交易發(fā)起時(shí)間間隔近似為指數(shù)分布的規(guī)律,根據(jù)這個(gè)規(guī)律提出了一種調(diào)整地址發(fā)起交易間隔擬合為指數(shù)分布的方法,將密文序列對(duì)應(yīng)的交易間隔加入正常交易序列中和正常序列對(duì)比,擬合后的序列具有更低的K-L 散度,說明本文方法具有更好的抗檢測(cè)性。
在未來工作中,筆者將結(jié)合時(shí)間型抗檢測(cè)性強(qiáng)和空間型單次交易傳輸信息量大的優(yōu)點(diǎn)實(shí)現(xiàn)混合型區(qū)塊鏈隱蔽通信方法,在此基礎(chǔ)上還可以探索時(shí)間和空間雙通道的區(qū)塊鏈隱蔽通信方法。