戴千一,徐開勇,郭松,蔡國明,周致成,2
?
分布式網(wǎng)絡(luò)環(huán)境下基于區(qū)塊鏈的密鑰管理方案
戴千一1,徐開勇1,郭松1,蔡國明1,周致成1,2
(1. 戰(zhàn)略支援部隊信息工程大學(xué)密碼工程學(xué)院,河南 鄭州 450001; 2. 61660部隊,北京 100089)
為解決在分布式網(wǎng)絡(luò)實施密鑰管理困難和通信開銷過大等問題,提出一種基于區(qū)塊鏈技術(shù)的密鑰管理方案(KMSBoB,key management schemes based on Blockchain)。KMSBoB中設(shè)計了分布式群組網(wǎng)絡(luò)下基于區(qū)塊鏈的密鑰管理和傳輸過程,并將區(qū)塊鏈全體成員挖礦過程和MTI/CO協(xié)議過程相結(jié)合形成動態(tài)生成會話密鑰生成協(xié)議,簡化了跨異構(gòu)自治域下的密鑰管理策略。通過仿真測試和結(jié)果分析表明KMSBoB的安全性和有效性,并且相比傳統(tǒng)密鑰管理方案通信開銷更少和擴展性更高。
區(qū)塊鏈;密鑰管理;分布式網(wǎng)絡(luò)
隨著移動互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,移動終端設(shè)備數(shù)量激增。移動互聯(lián)網(wǎng)設(shè)備所采用的分布式自組織網(wǎng)絡(luò)模式具有拓?fù)鋭討B(tài)性、無中心分布性、節(jié)點成員身份狀態(tài)高度的動態(tài)性等特點,使分布式網(wǎng)絡(luò)環(huán)境下密鑰管理較為復(fù)雜,成為相應(yīng)領(lǐng)域主要研究熱點。
密鑰管理主要為群組全體合法成員提供密鑰生成、密鑰分發(fā)以及密鑰更新等服務(wù)。目前,分布式網(wǎng)絡(luò)中進行密鑰管理方案有集中式和分布式兩類。集中式密鑰管理方案[1-2]由于其結(jié)構(gòu)高度依賴中心化(KMC, key management center),導(dǎo)致其存在易發(fā)生單點故障、跨域密鑰傳輸時延較大、使用效率不高和密鑰管理較為復(fù)雜等問題,難以適應(yīng)動態(tài)變化的分布式網(wǎng)絡(luò)環(huán)境。針對分布式的密鑰管理協(xié)議,近年來已有許多相關(guān)研究,其中,常見的分布式密鑰協(xié)商協(xié)議有BD(burmester-desmedt)協(xié)議[2]、STR(steer,et a1)協(xié)議、TGDH(tree-based group diffie-Hellman)協(xié)議[3]等。BD協(xié)議通信開銷較大,但計算開銷較少。TGDH協(xié)議的擴展計算量和通信量都比較小,但密鑰存儲開銷大。文獻[4]提出了成員匿名的無線網(wǎng)絡(luò)組播建立協(xié)議,在不泄露接收者屬性信息的情況下完成密鑰傳輸,但文獻[4]協(xié)議缺乏身份驗證和密鑰確認(rèn)機制,無法提供前向保密性和后向保密性。文獻[5-6]設(shè)計了移動環(huán)境下高效的密鑰交換握手協(xié)議,但其管理機制較為復(fù)雜,不適合動態(tài)群組網(wǎng)絡(luò)。上述協(xié)議方案在群組成員動態(tài)變化的動態(tài)群組通信中的應(yīng)用效果不佳,因此需要設(shè)計一種在動態(tài)分布式網(wǎng)絡(luò)環(huán)境下的無中心的密鑰管理方案,適應(yīng)動態(tài)群組通信系統(tǒng)。
區(qū)塊鏈最早是由中本聰提出比特幣的基礎(chǔ)支撐技術(shù)[7],實現(xiàn)在開放的對等網(wǎng)絡(luò)環(huán)境下,通過透明可信的智能合約,構(gòu)建不可篡改和可追溯的塊鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu),在多個站點或機構(gòu)組成的網(wǎng)絡(luò)中實現(xiàn)全體成員對數(shù)據(jù)共享、審計、管理和集體維護。待傳輸數(shù)據(jù)被封裝入?yún)^(qū)塊并廣播到網(wǎng)絡(luò)中以供全體成員進行集體挖礦過程,實現(xiàn)區(qū)塊數(shù)據(jù)全網(wǎng)同步。如果消息通過認(rèn)證,則在本地賬本中附加新區(qū)塊。通過多方備份維護區(qū)塊數(shù)據(jù)可實現(xiàn)將待傳遞數(shù)據(jù)直接發(fā)送到目的地成員,而不是通過中央管理器傳遞數(shù)據(jù),可以加快跨域信息傳播,并且可以保證傳輸數(shù)據(jù)的完整性和可靠性。基于區(qū)塊鏈網(wǎng)絡(luò)的分布式結(jié)構(gòu)在應(yīng)對單點故障方面具有更好的頑健性,因此,本文采取區(qū)塊鏈作為解決密鑰管理的技術(shù)方案。
為了實現(xiàn)分布式網(wǎng)絡(luò)的可靠密鑰傳輸,提高群組密鑰生成和更新的效率,簡化密鑰管理策略,降低計算和通信開銷,本文提出了KMSBoB,實現(xiàn)密鑰動態(tài)安全管理,滿足動態(tài)群組網(wǎng)絡(luò)下密鑰管理需求,主要貢獻在以下兩方面。
1) 設(shè)計了分布式網(wǎng)絡(luò)環(huán)境下基于區(qū)塊鏈的密鑰管理和管理策略。
2) 將MTI/CO協(xié)議與區(qū)塊鏈多節(jié)點挖礦相結(jié)合,形成一種分布式環(huán)境下多節(jié)點會話密鑰生成協(xié)議。
本文設(shè)計的算法中,采用了MTI/CO協(xié)議,協(xié)議過程如下。
1) 成員A和成員B生成各自公開密鑰pk=g,pk=g,并全網(wǎng)公開。
2) 成員A生成隨機數(shù),計算k=g,發(fā)送給成員B。
3) 成員B生成隨機數(shù),計算k=g,發(fā)送給成員A。
4) 成員A計算會話密鑰1=k?1=g?1 =g,成員B計算會話密鑰2=k?1=g?1=g。
5) 通過計算12=g,實現(xiàn)會話密鑰安全共享。
1、2和T為3階且是素數(shù)的乘法循環(huán)群,1、2、3為3個循環(huán)群的生成元。令:1×2→T,映射具有以下性質(zhì)。
1) 雙線性。對于所有1∈1,2∈2。,∈,有(1,2)=(1,2)。
2) 非退化性。存在1∈1,2∈2,滿足(1,2)≠1。即對1,2中的任何元素,通過這個映射都不會得到T中的單位元。
3) 可計算性。對于任意1∈1,2∈2,存在有效的算法計算(1,2)。
因為密鑰管理協(xié)議是在公開的網(wǎng)絡(luò)中由所有合法成員基于共識協(xié)商的密鑰管理協(xié)議共同生成的,所以一個安全的密鑰管理方案需要滿足如下基本安全屬性。
1) 已知密鑰安全性。由于每次生成的會話密鑰中都含有每個組員根據(jù)相應(yīng)算法產(chǎn)生的分量,共同合成為會話密鑰。所以每次生成的會話密鑰都是唯一的,即使以前使用過的會話密鑰發(fā)生了泄露,敵手也不可能知道當(dāng)前全體成員使用的會話密鑰,并且新加入成員無法使用舊的會話密鑰。
2) 前向保密性。即使部分成員的私鑰泄露,也不會影響舊會話密鑰的安全。
3) 密鑰不可控制性。由于會話密鑰是全體組員共同協(xié)商產(chǎn)生的,其中包含隨機生成的值,因此群組中任何成員都不能預(yù)先生成和控制會話密鑰生成其選定的值。
4) 抗泄露攻擊。假設(shè)某個成員NodeA的私鑰泄露,敵手能夠假扮該節(jié)點欺騙其他成員,但是敵手不能扮演其他成員參與者欺騙NodeA。
5) 密鑰共享可知性。協(xié)議必須在所有被網(wǎng)絡(luò)中確認(rèn)合法的成員參與的情況下進行密鑰協(xié)商協(xié)議,任意合法成員未參與協(xié)議過程的情況下都無法進行密鑰協(xié)商協(xié)議,并且全體合法成員可以驗證會話密鑰的正確性和合法性。
為了更加清晰地說明算法過程,特做以下算法說明,如表1所示。特別地,、()、()和()這4個算法選取ECDSA的secp256k1橢圓曲線。

表1 相關(guān)符號說明
為了實現(xiàn)方案設(shè)計目標(biāo),本文分析并改進傳統(tǒng)密鑰管理模型缺陷,提出基于區(qū)塊鏈的密鑰管理模型,使網(wǎng)絡(luò)群組成員之間可以高效簡單地進行密鑰管理和傳輸。
傳統(tǒng)密鑰管理模型嚴(yán)格遵循層次結(jié)構(gòu)[1-2],為典型的分級管理網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),其中服務(wù)層共有3層,用戶節(jié)點(user node)則占一層,共同構(gòu)成網(wǎng)絡(luò)自治域(AD,autonomous domain)。服務(wù)提供方各層包括中央管理節(jié)點(CMN,central manager node)、安全管理節(jié)點(SMN)和網(wǎng)絡(luò)接入點(AP,access point)。CMN的邏輯覆蓋區(qū)域為AD,CMN負(fù)責(zé)AD內(nèi)的節(jié)點身份注冊、生成證書和驗證身份,并負(fù)責(zé)多個AD內(nèi)的SMN密鑰管理和授權(quán),其通常是PKI的一級KMC[8];SMN在AD的密碼資料的第二層,SMN的邏輯覆蓋區(qū)域為安全域(SD,secure domain),其通常是PKI的二級KMC;AP提供了一個網(wǎng)絡(luò)接口將UN的消息路由到SMN。全體UN構(gòu)成了一個由純對等非結(jié)構(gòu)化模型組織的邏輯層,彼此間地位對等。
這種網(wǎng)絡(luò)結(jié)構(gòu)在頂層使用CMN管理AD內(nèi)相關(guān)密鑰數(shù)據(jù),這樣的網(wǎng)絡(luò)結(jié)構(gòu)高度依賴CMN的安全性,容易產(chǎn)生單點故障,并且如果密鑰信息從一個AD轉(zhuǎn)移到另一個AD,則需要額外的握手協(xié)議進行密鑰交換,不僅增加了通信開銷,同時增加了密鑰泄露的風(fēng)險。
因此,為應(yīng)對傳統(tǒng)密鑰管理模型帶來的單點故障、跨域密鑰傳輸時延較大、使用效率不高和密鑰管理較為復(fù)雜等問題,本文考慮基于區(qū)塊鏈的運行模式下,將驗證密鑰分量合法性,密鑰分量傳輸和密鑰分量共享的3個過程統(tǒng)一于全體SMN節(jié)點挖礦過程,通過全體SMN成員驗證區(qū)塊數(shù)據(jù)合法性的過程,實現(xiàn)密鑰數(shù)據(jù)的動態(tài)安全管理,降低了傳統(tǒng)自治域之間因密鑰傳輸?shù)耐ㄐ砰_銷和密鑰泄露的安全風(fēng)險。如圖1所示,與傳統(tǒng)結(jié)構(gòu)最大的不同在于,頂層CMN的職能以基于區(qū)塊鏈的結(jié)構(gòu)合并到全體SMN成員組成的網(wǎng)絡(luò)群組中。為了應(yīng)對隱私安全,CMN可以在以下3種情況下為區(qū)塊鏈網(wǎng)絡(luò)提供安全服務(wù)。① 初始注冊。新成員首次加入新的AD時需要KMC為其注冊身份信息和密鑰。② 更改身份相關(guān)信息。SMN必須定期更改身份信息以及與身份相關(guān)的所有密鑰資料,因此需要CMN為其生成新的身份和密鑰。③ 惡意節(jié)點身份撤銷。在基于區(qū)塊鏈的密鑰管理結(jié)構(gòu)中,KMC可以作為獨立審計方,通過檢索區(qū)塊鏈識別成員惡意行為,一旦惡意行為得到確認(rèn),惡意節(jié)點的身份將被公布并撤銷身份及其所屬密鑰。
區(qū)塊鏈可以在無中心節(jié)點參與維護的情況下,通過全體成員的共識機制完成共享信息。SMN群組之間可以動態(tài)互聯(lián),也可以與其他有實體認(rèn)證的自治域相鏈接,通過屏蔽結(jié)構(gòu)差異形成類似動態(tài)的SMN云結(jié)構(gòu)。如果有多域之間的密鑰生成或密鑰更新的事務(wù)請求,SMN則會將事務(wù)請求及相關(guān)信息封裝到區(qū)塊中,并在網(wǎng)絡(luò)信標(biāo)中標(biāo)明是否為跨域密鑰傳輸。SMN既是事務(wù)代理處理方,同時也是礦工。本文的設(shè)計思路是通過全體節(jié)點挖礦來存儲區(qū)塊并驗證區(qū)塊的合法性,實現(xiàn)多方維護區(qū)塊數(shù)據(jù)和密鑰分量安全完整地傳輸。最終實現(xiàn)在多個SMN域內(nèi),通過全體SMN節(jié)點維護區(qū)塊鏈數(shù)據(jù)實現(xiàn)在異構(gòu)網(wǎng)絡(luò)環(huán)境中達成密鑰管理目的。基于以上過程,無論新成員加入網(wǎng)絡(luò)還是密鑰動態(tài)更新的過程,全體SMN都可以通過從區(qū)塊鏈中檢索相應(yīng)信息并解密恢復(fù)區(qū)塊內(nèi)容來實現(xiàn)密鑰傳輸和生成。特別說明的是,本文所指交易是相關(guān)密鑰管理或傳輸事務(wù)信息。

圖1 傳統(tǒng)密鑰管理結(jié)構(gòu)和KMSBoB結(jié)構(gòu)
本節(jié)介紹分布式網(wǎng)絡(luò)環(huán)境下基于區(qū)塊鏈密鑰管理策略,旨在簡化大型異構(gòu)動態(tài)群組網(wǎng)絡(luò)中各安全域的分布式密鑰管理步驟,實現(xiàn)輕量級和可擴展的密鑰傳輸方案。
3.2.1 密鑰傳輸握手過程
傳統(tǒng)網(wǎng)絡(luò)[5-6]中的跨域握手過程如圖2所示。SMN之間的握手信息由KMC強制進行交易檢查,SMN-A在交易收集期(CP,transaction collection period)內(nèi)從網(wǎng)絡(luò)信標(biāo)中獲取所有跨域傳輸密鑰節(jié)點交易,這些跨域行為形成了特定格式的交易信息。SMN-A將這些交易逐一發(fā)送給KMC-A,交易信息使用KMC-A加密,使用SMN-A簽名。為確保包含傳輸密鑰分量的交易信息安全,KMC-A在交易收集期(PP,transaction processing period)內(nèi)驗證交易的簽名信息完整性,使用KMC-A解密交易信息內(nèi)密文,并將所有交易密文封裝成交易數(shù)據(jù)分組,使用KMC-B進行二次加密。KMC-B在收到事務(wù)數(shù)據(jù)分組時用SMN-B解密,重復(fù)交易驗證步驟并將它們轉(zhuǎn)換為SMN-B可讀交易版本,解封交易數(shù)據(jù)分組成交易。上述步驟如圖2所示,握手消息信息流過程如下。

圖2 傳統(tǒng)結(jié)構(gòu)下跨自治域密鑰傳輸過程

圖3 傳統(tǒng)結(jié)構(gòu)下同自治域內(nèi)密鑰傳輸管理過程
步驟1 SMN-A sendstransactionstoKMC-A:
{}KMC-A+SMN+{SMN}SMN-A
步驟2 KMC-A forwards the transactions packet to KMC-B:
{}PKKMC-B+SMN+{SMN}KMC-A
步驟3 KMC-B forwards the transaction packet to SMN-B:
{}SMN-B+SMN+{SMN}KMC-B
如果SMN位于相同的自治域內(nèi),2個SMN由同一KMC負(fù)責(zé)密鑰管理,握手步驟會減少。SMN-A-1將交易轉(zhuǎn)發(fā)給KMC-A以進行完整性證明,無需交易內(nèi)容版本切換,直接將所有交易封裝成交易數(shù)據(jù)分組并使用SMN-A-2加密發(fā)送至SMN-A-2,SMN-A-2解密交易數(shù)據(jù)分組并拆封,獲得所有密鑰傳輸交易。上述步驟如圖3所示,傳輸密鑰信息流如下。
步驟1 SMN-A-1 sendstransactions to KMC-A:
{}KMC-A+SMN+{SMN}SMN-A
步驟2 KMC-A forwards the transaction packet to SMN-A-2:
{}SMN-A-2+SMN+{SMN}KMC-A
結(jié)合區(qū)塊鏈的多節(jié)點挖礦過程,可以簡化密鑰傳輸?shù)奈帐诌^程,無論是跨自治域密鑰傳輸密鑰過程還是同自治域內(nèi)密鑰傳輸過程,都將其視為在類似由全體SMN成員構(gòu)成的分布式異構(gòu)的云結(jié)構(gòu)環(huán)境下全體節(jié)點挖掘封裝著密鑰分量的區(qū)塊并廣播挖掘結(jié)果的過程。將封裝著待傳輸密鑰數(shù)據(jù)的區(qū)塊交由全體SMN成員組成的區(qū)塊鏈網(wǎng)絡(luò)對區(qū)塊及其內(nèi)容的合法性和完整性進行多方驗證,基于此過程從功能角度考慮可以移除中心化的KMC,并且避免了KMC偽造密鑰數(shù)據(jù)。其簡化的握手如圖4所示,在CP內(nèi)網(wǎng)絡(luò)允許多個交易廣播到SMN上,并由該SMN負(fù)責(zé)代理接收交易并將交易組數(shù)據(jù)封裝成區(qū)塊。為了確保交易信息安全可信,代理SMN使用SMN-Src對區(qū)塊中交易數(shù)據(jù)進行簽名,待區(qū)塊發(fā)布到網(wǎng)絡(luò)后,交由全體SMN節(jié)點進行驗證。由于區(qū)塊中待傳輸數(shù)據(jù)密文使用SMN的公鑰加密,可以保證封裝著密鑰分量的區(qū)塊在傳輸?shù)絊MN前敵手無法截獲密鑰數(shù)據(jù)。根據(jù)節(jié)點挖掘區(qū)塊相關(guān)性質(zhì),本文認(rèn)為應(yīng)將各項交易以隨機順序插入封裝區(qū)塊中,封裝后區(qū)塊將采用區(qū)塊挖掘算法交由全體SMN成員進行挖掘,并將挖掘區(qū)塊結(jié)果廣播回網(wǎng)絡(luò)。密鑰傳輸信息流過程如下。
步驟1 SMN-A sendstransactions to SMN- Cloud:
{}SMN-DestSMN{SMN}SMN-A
步驟2 SMN-Cloud returnsthe mined block to SMN-A
3.2.2 交易信息格式及區(qū)塊格式
交易信息格式旨在安全封裝從SMN-到SMN-的密鑰傳輸信息,盡可能安全地保持分量密鑰數(shù)據(jù)以密態(tài)傳輸。本文模型的事務(wù)標(biāo)題參考傳統(tǒng)比特幣的區(qū)塊體交易內(nèi)容,其中包含7個字段,如表2所示。

圖4 KMSBoB密鑰管理過程
交易格式中的交易信息包含合法成員的密鑰分量及相關(guān)信息,使用SMN-的SMN-Dest將加密得到={}SMN-Dest。在基于區(qū)塊鏈傳輸過程中除了SMN-和SMN-外,其他SMN是無法獲取的,惡意節(jié)點在沒有SMN-Dest的情況下無法從解密讀取加密的任何信息,保證了交易信息的機密性和安全性。使用SMN-的私鑰SMN-Scr對密文和目的SMN-進行簽名計算,保證交易完整性不可否認(rèn)性。敵手在沒有SMN-Dest的情況下無法偽造簽名,無法冒充正常的SMN成員竊聽和篡改跨域密鑰傳輸和密鑰生成過程。

表2 交易信息格式
本文借鑒傳統(tǒng)比特幣格式[9],設(shè)計了適應(yīng)于本文方案的區(qū)塊結(jié)構(gòu)。區(qū)塊中prev將本區(qū)塊鏈與父區(qū)塊相鏈接,是區(qū)塊鏈的鏈?zhǔn)浇Y(jié)構(gòu)根源。區(qū)塊中的所有事務(wù)都以雜湊值的形式合并到Merkle根中[10],任何交易值的變動都會導(dǎo)致Merkle根的值產(chǎn)生巨大差異,保證了交易的完整性和不可篡改性。時間戳now用來防止時間篡改。的作用是在區(qū)塊挖掘過程中,不斷調(diào)整值直到區(qū)塊頭的雜湊值[11]小于以zeros個數(shù)字零開始的。SMN在CP內(nèi)收集交易,以隨機順序?qū)⑦@些交易進行排序并封裝形成區(qū)塊,通過這種方式區(qū)塊可以聚合跨自治域或同自治域密鑰傳輸交易請求。封裝后的區(qū)塊統(tǒng)一交由網(wǎng)絡(luò)中礦工成員進行挖礦操作,驗證區(qū)塊及其交易內(nèi)容的合法性及正確性。
3.2.3 挖礦和工作量證明算法
在區(qū)塊鏈中,工作量證明機制是一種數(shù)字收據(jù),其偽造區(qū)塊是困難的,但易于網(wǎng)絡(luò)中節(jié)點驗證區(qū)塊合法性。挖礦過程是全體節(jié)點執(zhí)行工作量證明機制的過程,區(qū)塊鏈網(wǎng)絡(luò)中全體SMN成員對區(qū)塊頭進行()窮舉雜湊運算,通過枚舉重復(fù)運算(BlockHead)值,直到結(jié)果小于。基于此交易隨機排序方法可以迫使SMN對不同的區(qū)塊頭進行窮舉雜湊運算,以不同的時間長度挖掘相同的事務(wù)集合,使整個系統(tǒng)預(yù)先阻止區(qū)塊間競爭記賬權(quán)沖突。算法1描述了本文設(shè)計的改進的工作量證明過程,算法2描述了全體SMN驗證區(qū)塊合法性過程。

表3 本文設(shè)計的區(qū)塊格式
算法1 基于改進的工作量證明過程(IPoW, improved proof of work)
輸入 待驗證區(qū)塊頭相關(guān)元素:BlockHead{BLC_Version,prev,now,,,=[] }
待寫區(qū)塊體相關(guān)數(shù)據(jù)集=[,,…,]
待寫入?yún)^(qū)塊的隱私數(shù)據(jù)負(fù)載No1,No2, …,Non
輸出 Nonce值:;區(qū)塊高度
1) Start
2) 轉(zhuǎn)換secretdata為相應(yīng)數(shù)據(jù)負(fù)載
for[1,]
={PayloadSecretData}SMN-Dest;
Noi={SMN}SMN-Src{SMN-Dest+SMN-Dest}{SMN-Src+SMN-Src};
Noi寫入?yún)^(qū)塊體數(shù)據(jù)集,=[No1,No2,…,Non] ;
3) 初始化布爾變量值False;
4) while( NOR) do
5) 轉(zhuǎn)換交易編號[1,],生成交易順序a=() ;
6) 依據(jù)交易順序a計算Merkle根值Root;
7)計算區(qū)塊頭臨時雜湊值Hash= BLC_ Version||||||||||;
8) 封裝新產(chǎn)生區(qū)塊Blocknew={BlockHead,};
9) 初始化窮舉數(shù)=0,初始化雜湊輸出值0;
10) while(NOR&沒有從其他節(jié)點獲得算法1的值)do;
11)(Hash||);
12);
13) if (&沒有從其他節(jié)點獲得算法1的值)
14) 將?1寫入Nonce值域;
15)True;
16) return (?1,);
17) else if (如果從其他節(jié)點獲得算法1的值)
18)True;
19) return (Null, Null);
20) end if
21) end while
22) end while
23) End
算法2 驗證區(qū)塊合法性(PLOF, proof the legality of block)
輸入 已挖掘區(qū)塊頭BlockHeadmined;區(qū)塊負(fù)載
輸出 布爾值;更新區(qū)塊鏈Blockchainupdate
默認(rèn)共識值:Blockchainprevious(Height?1)
1) Start
2) 提取隨機數(shù)值(BlockHeadmined);
3) 基于計算歷次值的雜湊值累加和形成Merkle;
4) 創(chuàng)建驗證區(qū)塊頭very= BLC_Version||prev||Merkle||now||||;
5) 產(chǎn)生待驗證字符串:verify= Hash|| nonce;
6) 形成待計算字符串雜湊值:(verify);
7) if();
8)TRUE;
9) 構(gòu)成區(qū)塊Block (BlockHeadmined,);
Blockchainupdate(Height) = Blockchainprevious(Height?1)+Block(BlockHeadmined,);
10) else
11)FALSE;
12) end if
13) return (, Blockchainupdate(Height));
14) End
基于算法2使全體節(jié)點在網(wǎng)絡(luò)可以得到相同的區(qū)塊鏈記錄結(jié)合,多方驗證和維護數(shù)據(jù)的合法性。全體節(jié)點對區(qū)塊數(shù)據(jù)完整性和合法性負(fù)責(zé),全體SMN成員共同承擔(dān)生成會話密鑰安全風(fēng)險。
3.2.4 會話密鑰生成協(xié)議
本文結(jié)合文獻[5,6]的會話密鑰生成方案,將協(xié)議過程引入?yún)^(qū)塊鏈中,提出基于SMN群組的區(qū)塊鏈網(wǎng)絡(luò)環(huán)境下的密鑰協(xié)商算法。基于區(qū)塊鏈的算法1和算法2,本文方案屏蔽密鑰生成和密鑰管理策略上的差異,統(tǒng)一視為動態(tài)的新會話密鑰生成過程。將全體異構(gòu)網(wǎng)絡(luò)環(huán)境下的SMN成員視為統(tǒng)一密鑰管理域內(nèi),在全局范圍內(nèi)對SMN進行統(tǒng)一的域內(nèi)編號。默認(rèn)網(wǎng)絡(luò)中有個SMN成員,SMN成員間通過區(qū)塊鏈進行隱私數(shù)據(jù)轉(zhuǎn)發(fā),并由全體SMN基于算法2驗證區(qū)塊內(nèi)數(shù)據(jù)的合法性,同時同步區(qū)塊鏈數(shù)據(jù)。基于本文設(shè)計的協(xié)議四輪密鑰協(xié)商過程中,全體SMN成員同步協(xié)商密鑰數(shù)據(jù),SMN成員既是生成方也是驗證方,全體SMN節(jié)點可以得到完全一樣的會話密鑰。會話密鑰生成協(xié)議具體過程如下。
Initialize
Step1: 全體SMN成員生成1和2為二階為素數(shù)的乘法循環(huán)群,令:1×1→2,是1的生成元;
Step2: 全體SMN成員安全生成各自公私鑰對。
Round 1st
Step1: 成員SMN生成()→s;
Step2: 生成g;
Step3: 計算m=(g)SMNj;
Step4:SMNi=Hash(m)SMNi= Sig (SMNi)SMNi;
Step5: 封裝數(shù)據(jù)負(fù)載SMN{SMN、SMN和m}中;
Step6: 一段時間內(nèi)SMN統(tǒng)一封裝區(qū)塊頭和包括SMN在內(nèi)的所有負(fù)載,并執(zhí)行算法1將該區(qū)塊發(fā)布至網(wǎng)絡(luò)中,設(shè)置,;
Step7: 全網(wǎng)SMN成員根據(jù)接收到的區(qū)塊,共同執(zhí)行算法2,集體驗證區(qū)塊內(nèi)容和結(jié)果的合法性,集體備份區(qū)塊鏈數(shù)據(jù);
Step8: SMN計算SMN=()SMNj,發(fā)送(, SMN,Round 1)至SMN。
Round 2nd
當(dāng)SMN接收到Round1st的(, SMN)后執(zhí)行:
Step1: 成員SMN執(zhí)行(SMN)SMNi→,通過檢索相應(yīng)區(qū)塊;
Step2: for[1,];
提取區(qū)塊數(shù)據(jù)負(fù)載
if( (Ver(SMNj)SMNj==SMNj)
Dec()SMNj→g’,由此得到全網(wǎng)SMN成員的密鑰分量g
end for
Step3: 成員SMN生成()→r,P=g1,Q=g1;
Step4: 計算’=(P)SMNi?1=(Q)SMNi?2;
Step5: 計算SMN=Hash()SMN= Hash(),SMN=(SMN)SMNiSMN=(SMN)SMNi;
Step6: 封裝數(shù)據(jù)負(fù)載SMN{SMN,SMN,},SMN{SMN,SMN,};
Step7: 一段時間內(nèi)SMN統(tǒng)一封裝區(qū)塊頭和包括SMN和SMN在內(nèi)的所有數(shù)據(jù)負(fù)載,并執(zhí)行算法1將該區(qū)塊發(fā)布至網(wǎng)絡(luò)中。設(shè)置?1,?2,;
Step8: 全網(wǎng)SMN成員根據(jù)接收到的區(qū)塊,共同執(zhí)行算法2,集體驗證區(qū)塊內(nèi)容和結(jié)果的合法性,集體備份區(qū)塊鏈數(shù)據(jù);
Step9: SMN計算’SMN=()SMNj,發(fā)送(, SMN', SMN'', Round 2nd)至SMN'和SMN''。
Round 3rd
當(dāng)SMN接收到Round 2nd的(, SMN’,SMN’’, Round 2nd)后執(zhí)行:
Step1:成員SMN執(zhí)行Dec(’SMN)SMNi→’,通過’檢索相應(yīng)區(qū)塊;
Step2: 提取區(qū)塊數(shù)據(jù)負(fù)載
if( (Ver(SMN)SMNj==SMN&& ((SMN)SMNj==SMN)
()SMNi=g1()SMNi=g1
Step3:計算k=(g1sisi?1, g2sisi?1)=(,)1ri+2;
Step4: 計算=(k)SMNj;
Step5: 計算′′′SMN=Hash(′′′),
′′′ SMN=(′′′ SMN)SMNi;
Step6: 封裝數(shù)據(jù)負(fù)載′′′ SMN{′′′ SMN,′′′SMN,′′′};
Step7: 一段時間內(nèi)SMN統(tǒng)一封裝區(qū)塊頭和包括′′′ SMN在內(nèi)的所有數(shù)據(jù)負(fù)載,并執(zhí)行算法1將該區(qū)塊發(fā)布至網(wǎng)絡(luò)中,設(shè)置′′′,;
Step8: 全網(wǎng)SMN成員根據(jù)接收到的區(qū)塊,共同執(zhí)行算法2,集體驗證區(qū)塊內(nèi)容和結(jié)果的合法性,集體備份區(qū)塊鏈數(shù)據(jù);
Step9: SMN計算′′′SMN=(′′′)SMNj,發(fā)送(, SMN′′′, Round 3rd)至SMN″′。
Round 4th
當(dāng)SMN接收到Round3rd的(, SMN′′′,Round 3rd)后執(zhí)行:
Step1:for[1,]
(′′′SMN)SMNi→′′′,通過’檢索相應(yīng)區(qū)塊
提取區(qū)塊數(shù)據(jù)負(fù)載
if( ((′′′ SMN)SMNj==′′′SMN)
(′′′)SMNi=k
end for
Step2:生成會話密鑰
基于區(qū)塊鏈多方認(rèn)證的過程,可以將密鑰更新過程,視為全體SMN成員再次生成新的密鑰,協(xié)議過程不變,簡化了密鑰管理過程。
本文設(shè)計的基于區(qū)塊鏈密鑰管理策略的會話密鑰生成過程中,每次生成的會話密鑰的密鑰分量是由每個SMN成員隨機數(shù)生成的,所以每次基于協(xié)議過程所生成會話密鑰都是唯一的。且當(dāng)SMN成員組重新執(zhí)行協(xié)議,各個SMN成員的的密鑰分量都會不一樣,所以本文設(shè)計協(xié)議滿足已知密鑰安全性、前向保密性和密鑰不可控制性。此外,本文設(shè)計的協(xié)議策略中的區(qū)塊封裝過程設(shè)計了簽名認(rèn)證和驗簽過程,故能抵抗密鑰泄露攻擊。基于區(qū)塊鏈多方競爭記賬權(quán)過程,全體SMN成員都會備份區(qū)塊鏈所記錄的密鑰數(shù)據(jù)分量,滿足密鑰共享可知性。
由于區(qū)塊鏈數(shù)據(jù)是面向所有成員公開的,如果存在敵手通過冒充SMN備份區(qū)塊鏈從Round 2nd中獲得P和Q,那么進行如下分析。在獲得P和Q的情況下,由于敵手在不知道Round 1st中隨機數(shù)產(chǎn)生的密鑰分量的情況下,敵手所能計算的密鑰分量僅為k=(g1si,g2si)=(,)1ri+2si2,而全體SMN節(jié)點所產(chǎn)生的密鑰分量為k=(g1sisi?1, g2sisi?1)=(,)1ri+2,故敵手無法得到最終的會話密鑰,保證了會話密鑰在公開網(wǎng)絡(luò)環(huán)境下安全性。
分析全體SMN進行單次密鑰協(xié)商協(xié)議過程:Round 1st中,全體SMN成員各計算一次,共發(fā)起?1次交易;Round 2nd全體SMN成員計算P和Q,發(fā)送了2次交易;Round 3rd中全體SMN計算一次自己的密鑰分量,發(fā)送了–1次交易;Round 4th中,全體SMN成員在解密出全體SMN成員的分量后,計算合成最終會話密鑰。因此單個SMN節(jié)點在一次密鑰協(xié)商過程中通信輪數(shù)為3輪,產(chǎn)生交易量為2,計算次數(shù)為4次。
本文對KMSBoB性能進行測試,并對所得結(jié)果進行分析。性能測試分為3個部分。第1部分對KMSBoB處理相關(guān)密碼學(xué)運算時間進行測試;第2部分對比測試KMSBoB與集中式密鑰管理方案和分布式密鑰管理方案通信開銷;第3部分測試了KMSBoB處理交易數(shù)量的性能。
4.3.1 仿真環(huán)境
本文采用OMNeT ++ 4.5[12]與專用網(wǎng)絡(luò)仿真數(shù)據(jù)分組[13]仿真。仿真實驗部署在5臺物理服務(wù)器上和1臺式計算機上。每臺服務(wù)器配備2張獨立網(wǎng)卡,每張獨立網(wǎng)卡都設(shè)置有50個虛擬IP地址。將這些虛擬IP地址設(shè)置為相應(yīng)節(jié)點的ID(共計5 000個節(jié)點),并進行初始化操作。服務(wù)器的配置如下:處理器采用Intel Xeon Processor E5-2670(20 M Cache, 2.60 GHz, 8.00 GT/s Intel QPI),雙CPU;內(nèi)存為8 GB;內(nèi)存顯卡GeForce M150(2G);操作系統(tǒng)采用Ubuntu 16.04.4 LTS server,內(nèi)核版本號為4.4.0-31-generic,5臺服務(wù)器分別命名node1,node2,…,node5。服務(wù)器設(shè)備可以完成每秒250×104次的雜湊計算。網(wǎng)絡(luò)通信中,區(qū)塊設(shè)計中Cipher默認(rèn)長度為64 byte,其中,48 byte用于存儲info。選取OpenZeppelin開源架構(gòu)作為底層智能合約框架,網(wǎng)絡(luò)通信采用IEEE 802.11 a/c協(xié)議。基于默認(rèn)SMN成員是可信實體的事實,本文認(rèn)為這個安全級別足以保證網(wǎng)絡(luò)的安全。
兩部分模擬的表現(xiàn)集中在區(qū)塊交易處理時間上,結(jié)果僅取決于交易的總數(shù)。因此,本文進行以下模擬假設(shè):① 在每個CP結(jié)束時,網(wǎng)絡(luò)中會涌入一定數(shù)量的密鑰更新事務(wù);② 每個SMN密碼運算的處理時間結(jié)果,是測試來自SMN的數(shù)據(jù)平均結(jié)果;③ 為測試KMSBoB處理交易數(shù)量的性能,將獲得結(jié)果的放大視圖,從0到100的交易編號。設(shè)置在區(qū)塊封裝最多包含500個事務(wù),并設(shè)置模擬交易5 000筆。
4.3.2 密碼運算的處理時間測試
由于密鑰傳輸時間需要考慮方案相關(guān)密碼學(xué)運算時間,本文模擬了KMSBoB的密碼學(xué)運算的時間成本,包括加密、解密、簽名、驗證、挖礦和區(qū)塊封裝等密碼學(xué)運算時間。圖5顯示了在密鑰傳輸過程中密碼運算的性能,除去全部節(jié)點挖礦操作外,其余運算時間均是隨交易次數(shù)的增加而線性增加。由于挖礦算法對象是挖掘區(qū)塊頭,采礦處理時間是多次模擬的平均值。網(wǎng)絡(luò)體系中只接受最快SMN成員挖掘的區(qū)塊,因此測試的時間低于平均值。加密和解密方案花費相近的處理時間,簽名和驗證算法花費計劃間最長的計算時間,這4組運算隨交易數(shù)量呈比例線性增長。表4記錄每個密碼方案的平均處理時間。

圖5 基于不同交易數(shù)量的密碼學(xué)運算平均時間

表4 平均密碼學(xué)運算時間
圖6給出不同區(qū)塊交易數(shù)量下區(qū)塊封裝時間。由結(jié)果可知,隨著待認(rèn)證交易項數(shù)量的增長,區(qū)塊封裝時間呈指數(shù)增長。單個區(qū)塊包含300個交易項內(nèi)處理時間緩慢增加,交易項大于400個處理時間超過0.1 s。當(dāng)超過1 000個交易項,區(qū)塊封裝時間達到近1 s。

圖6 不同區(qū)塊交易數(shù)量下區(qū)塊封裝時間
4.3.3 方案開銷對比
為了評估KMSBoB性能,將KMSBoB與文獻[1, 6]中的傳統(tǒng)方案進行比較,將文獻[1]中的方案的數(shù)據(jù)結(jié)果被用作仿真實驗對比基準(zhǔn),其中文獻[1]提出了經(jīng)典密鑰管理方案,文獻[6]提出了典型分布式密鑰管理方案,本文以文獻[1]的方案為基準(zhǔn)對比。針對2種情況下進行對比實驗。
1) 平均密鑰生成時間計算開銷。
2) 在同一KMC管理域內(nèi)的2個SMN成員間的密鑰傳輸通信開銷。
3) 2個KMC管理域下,2個獨立的安全域之間密鑰傳輸通信開銷。
實驗1)的結(jié)果如圖7所示,KMSBoB方案的密鑰生成時間平均為1.18 s,小于文獻文獻[6]和文獻[1]平均密鑰生成時間,說明KMSBoB方案在密鑰生成速度上具有一定的優(yōu)勢,其可以滿足分布式網(wǎng)絡(luò)環(huán)境下的密鑰生成時間開銷。基于密鑰協(xié)商過程,認(rèn)為密鑰生成時間開銷節(jié)約主要是在密鑰傳輸過程中產(chǎn)生的,本文方案只有一次密鑰協(xié)商過程,較大地減少了數(shù)據(jù)傳輸?shù)拈_銷。

圖7 平均密鑰生成時間開銷
圖8和圖9描述了KMSBoB在傳輸密鑰數(shù)量方面的性能。如圖8所示,實驗2)中的同域密鑰傳輸開銷對比。完成傳輸500次交易,本文方案時間成本大約為1.1 s,文獻[6]結(jié)構(gòu)中處理同樣數(shù)量的交易量需要花費近兩倍的時間,文獻[1]成本是本文方案密鑰傳輸時間的3倍。但是本文方案傳輸時間呈亞指數(shù)式增長,在交易數(shù)量為1 500時本文方案和文獻[1]兩條曲線相交,在交易量大于1 500時較文獻[1]處理時間增加。但是在交易數(shù)量少于1 500時,本文方案相對于集中式密鑰管理方案和分布式密鑰管理方案提供了更好的可擴展性。另外,基于區(qū)塊鏈的方案節(jié)省了近一半的處理時間,交易數(shù)量1 500到2 000時,本文方案低于文獻[1]的基準(zhǔn)量。

圖8 同域密鑰管理環(huán)境下密鑰傳輸時間對比
圖9中顯示了實驗3)跨域密鑰管理的傳輸時間開銷對比。KMC在傳統(tǒng)方案中將密鑰分量從一個安全域轉(zhuǎn)換為另一個安全域,2個KMC需要相互通信以完成密鑰傳輸。因此,KMC之間的額外握手過程會導(dǎo)致繁瑣的密鑰傳輸時間。當(dāng)文獻[1]和文獻[6]交易數(shù)量分別超過800和1 800時,密鑰傳輸時間成本均超過10 s。而本文設(shè)計的基本區(qū)塊鏈密鑰管理方案的時間成本要少很多。因此,由于較少的處理時間成本,區(qū)塊鏈結(jié)構(gòu)在實驗2)中相對于傳統(tǒng)結(jié)構(gòu)具有較好的可擴展性和較少的時間代價。

圖9 跨域密鑰管理環(huán)境下密鑰傳輸時間對比
4.3.4 方案性能評估
方案性能評估主要是評估節(jié)點在交易收集期CP內(nèi),SMN允許的最大密鑰傳輸交易事務(wù)收集量。CP時間長度決定了涌入SMN網(wǎng)絡(luò)的交易量。圖10顯示了基于不同CP內(nèi)的密鑰傳輸?shù)慕Y(jié)果。觀察曲線可知,基于不同CP曲線的密鑰傳輸時間,當(dāng)CP超過0.8 s時,曲線有明顯上升趨勢。CP的增加使SMN負(fù)載更多的交易量,但同時也會增加密鑰傳輸所需時間。可觀察到交易數(shù)量與網(wǎng)絡(luò)節(jié)點數(shù)量呈正比,CP越長,SMN捕獲的交易越多。密鑰傳送時間全都小于0.8 s,密鑰數(shù)據(jù)傳輸代價是可以接受的。
本文提出了KMSBoB密鑰管理的方案,將MTI-CO協(xié)議引入基于區(qū)塊鏈的密鑰管理算法中,簡化了密鑰管理策略。通過實驗測試,所提方案在批量密鑰方面相比傳統(tǒng)密鑰管理方案具有更少的通信開銷、更高的密鑰傳輸效率和更好的動態(tài)適應(yīng)性。下一步工作將研究基于區(qū)塊鏈模式下高效地存儲密鑰數(shù)據(jù)方案以及區(qū)塊鏈快速檢索技術(shù)。

圖10 基于不同交易收集期的密鑰傳輸時間
[1] SUN Y, TRAPPE W, LIU K J R. A sKMClablemultiKMCst key management scheme for heterogeneous wireless networks[M]. IEEE Press, 2004.
[2] ZHOU W, XU Y, WANG G.Decentralized group key management for hierarchiKMCl access control using multilinear forms[J]. Concurrency & Computation Practice&Experience, 2016, 28(3): 631-645.
[3] 張志軍, 郭淵博, 劉偉, 等. 基于m叉樹與DH協(xié)議的組密鑰協(xié)商協(xié)議[J]. 計算機工程, 2010, 36(1): 161-163. ZHANG Z J, GUO Y B, LI W, et al. Group key agreement protocol based on m-tree and DH protocol[J]. Computer Engineering, 2010, 36(1): 161-163.
[4] YU S C, REN K, LOU W J. Attribute-based on-demand multicast group setup with membership anonymity[J]. Computer Networks, 2010, 54(3): 377-386.
[5] HE D, CHEN C, CHAN S, et al. Secure and efficient handover authentication based on bilinear pairing functions[J]. IEEE Transactions on Wireless Communications, 2012, 11(1):48-53..
[6] HE D, CHANS, GUIZANI M, Handover authentication for mobile networks: security and efficiency aspects[J]. IEEE Network, 2015, 29(3): 96-103.
[7] NAKAMOTO S. Bitcoin: A peer-to-peer electronic cash system[J]. Consulted, 2008
[8] 荊繼武, 林璟鏘, 馮登國. PKI 技術(shù)[M]. 北京: 科學(xué)出版社, 2008:6.
JING J W, LIN J Q, FENG D G. PKI technology[M]. Beijing: Science Press, 2008:6.
[9] Bitcoin blockchain size[EB/OL] http://blockchain.info/charts/ blocks-size.
[10] MERKLE R. C, A digital signature based on a conventional en-cryption function[C]//Advances in CryptologyCRYPTO87. Springer, 1987, 369-378
[11] AITZHAN N. Z, SVETINOVIC D., Security and privacy in de-centralized energy trading through multi-signatures, blockchain and anonymous messaging streams,[J]IEEE Transactions on De-pendable and Secure Computing, 2016,99:1-1.
[12] VARGA et al. The Omnet++ discrete event simulation system[C]// Proceedings of the European simulation multiconference (ESM2001), 2001.
[13] SOMMER C, GERMAN R, DRESSLER F. Bidirectionally coupled network and road traffic simulation for improved ivc analysis[J]. Mobile Computing, IEEE Transactions on, 2011, 10(1): 3-15.
Blockchain-based key management scheme for distributed networks
DAI Qianyi1, XU Kaiyong1, GUO Song1, CAI Guoming1, ZHOU Zhicheng1,2
1. School of Cryptographic Engineering, Strategic Support Force Information Engineering University, Zhengzhou 450001, China 2. 61660 Troops, Beijing 100089, China
Regarding the difficult key management and excessive communication overhead in the distributed group networks, KMSBoB-Key management schemes based on blockchain was proposed, featuring key management and transmitting procedure based on blockchain in distributed group networks. Meanwhile, the all-member mining process of blockchain and the MTI/CO protocol process were combined to establish a protocol of dynamically generated session key, so as to streamline key management strategies in cross-heterogeneous autonomous domains. According to simulation testing and result analysis, KMSBoB is safe and effective, with less communication overhead and higher expansibility than traditional key management schemes.
Blockchain, key management, distributed networks
TP399
A
10.11959/j.issn.2096-109x.2018077
戴千一(1994-),男,陜西西安人,戰(zhàn)略支援部隊信息工程大學(xué)碩士生,主要研究方向為區(qū)塊鏈安全、區(qū)塊鏈分布式應(yīng)用。

徐開勇(1963-),男,河南信陽人,戰(zhàn)略支援部隊信息工程大學(xué)研究員,主要研究方向為信息安全與可信計算。
郭松(1985-),男,河北保定人,博士,戰(zhàn)略支援部隊信息工程大學(xué)講師,主要研究方向為信息安全。
蔡國明(1976-),男,湖北云夢人,博士,戰(zhàn)略支援部隊信息工程大學(xué)副研究員,主要研究方向為密碼學(xué)與信息安全。
周致成(1992-)男,河南鄭州人,碩士,61660部隊助理工程師,主要研究方向為區(qū)塊鏈網(wǎng)絡(luò)安全。
2018-08-10;
2018-09-05
戴千一,qianyi.dai@outlook.com
國家重點研發(fā)計劃基金資助項目(No.2017YFB080210)
The National Key Research and Development Program of China (No.2017YFB080210)