黃 捷 曾佳洲
群機器人作為近年來發(fā)展迅速的人工智能技術(shù)領(lǐng)域之一,廣泛應(yīng)用于倉儲物流[1-2]、工業(yè)技術(shù)[3-4]、勘探[5-6]等諸多場景.群機器人研究通常假設(shè)每個機器人都可以完全按照預(yù)設(shè)算法行動,但當(dāng)機器人受到惡意攻擊時可能成為惡意機器人,產(chǎn)生非預(yù)期的行為,進而干擾集群任務(wù)的執(zhí)行.由于惡意攻擊導(dǎo)致出現(xiàn)非預(yù)期行為的機器人稱為拜占庭機器人(Byzantine Robots),是來自群機器人內(nèi)部的安全威脅.Mokhtar等[7]針對群機器人執(zhí)行探索任務(wù)場景,提出一種基于區(qū)塊鏈的信息共享系統(tǒng).然而該系統(tǒng)未考慮安全問題,當(dāng)系統(tǒng)內(nèi)部存在拜占庭機器人惡意上傳錯誤信息時,會導(dǎo)致錯誤信息在群機器人內(nèi)傳播.因此,對群機器人系統(tǒng)而言,識別、管理拜占庭機器人是一個關(guān)鍵安全問題.
聲譽值是對系統(tǒng)中機器人連續(xù)行為的數(shù)值評價,聲譽管理系統(tǒng)(Reputation Management System, RMS)建立實體行為到數(shù)值的映射機理,定量評估系統(tǒng)中實體的可信度,管理系統(tǒng)中的實體.在群機器人領(lǐng)域,RMS可用于檢測拜占庭節(jié)點[8].傳統(tǒng)RMS實現(xiàn)方法是建立一個集中式的中央節(jié)點,對系統(tǒng)中節(jié)點的聲譽值評分,然而集中式的方案效率較低,并且RMS系統(tǒng)依賴中央節(jié)點運行,一旦中央節(jié)點故障,會導(dǎo)致系統(tǒng)癱瘓.分布式RMS可克服傳統(tǒng)集中式RMS的缺陷,Zikratov等[9]提出能有效減少拜占庭節(jié)點對系統(tǒng)影響的群機器人分布式信任模型.
近些年,區(qū)塊鏈技術(shù)逐漸成為構(gòu)建分布式RMS的主流方案.由于區(qū)塊鏈不依靠第三方信任,并附帶一個去中心化的架構(gòu)[8],為群機器人系統(tǒng)構(gòu)建可信RMS提供技術(shù)支撐.區(qū)塊鏈可在沒有第三方的情況下確保多個實體之間的信任,避免單點故障和集中式中央節(jié)點惡意篡改、泄露系統(tǒng)數(shù)據(jù)等問題,并確保交易的透明度和可追溯性[10-11].已有學(xué)者嘗試使用區(qū)塊鏈設(shè)計群機器人RMS.Strobel等[12-13]在群機器人共識場景下使用區(qū)塊鏈智能合約,設(shè)計一種群機器人RMS,實現(xiàn)群機器人的信息共享,并通過聲譽值識別和管理拜占庭機器人.Luo等[14]在文獻(xiàn)[12]和文獻(xiàn)[13]的基礎(chǔ)上,提出一種利用區(qū)塊鏈過濾群機器人集體決策中不一致故障的方法.Strobel等[15]進一步優(yōu)化文獻(xiàn)[13]中的RMS,將區(qū)塊鏈平臺以太坊(Ethereum)使用的虛擬貨幣,即以太幣應(yīng)用于RMS,通過以太幣的管理使拜占庭機器人因缺少以太幣無法發(fā)起交易,從而制約拜占庭機器人.
在上述工作中,研究者總體技術(shù)路線是設(shè)計RMS中計算機器人的聲譽值,從而識別和管理拜占庭機器人.此外,在群機器人系統(tǒng)中使用區(qū)塊鏈的另一個挑戰(zhàn)是延遲問題.Ferrer等[16]借助區(qū)塊鏈技術(shù),解決領(lǐng)航-跟隨者編隊場景下拜占庭領(lǐng)航機器人導(dǎo)致跟隨機器人無法正確前往目標(biāo)點的問題.文獻(xiàn)[16]引入?yún)^(qū)塊鏈,導(dǎo)致通信延遲,使系統(tǒng)成為異步系統(tǒng).通常群機器人系統(tǒng)對實時性要求較高,要在群機器人中應(yīng)用區(qū)塊鏈,需要解決區(qū)塊鏈帶來的通信延遲問題,以免影響群機器人的正常工作.
綜上所述,為了減少識別群機器人系統(tǒng)中拜占庭個體所需的時間,本文在文獻(xiàn)[12]~文獻(xiàn)[15]的基礎(chǔ)上,提出具有身份認(rèn)證和任務(wù)監(jiān)管的聲譽管理系統(tǒng)(RMS with Identity Authentication and Task Su- pervisor, RMS-IATS).同時,為了解決區(qū)塊鏈帶來的通信延遲問題,設(shè)計一種雙層通信網(wǎng)絡(luò),應(yīng)對群機器人執(zhí)行任務(wù)過程中的高實時性任務(wù)要求.首先,受行為控制[17]思想啟發(fā),設(shè)計一種群機器人聲譽管理系統(tǒng),將綜合的機器人任務(wù)分解成4類子任務(wù),根據(jù)機器人的子任務(wù)執(zhí)行情況,計算機器人任務(wù)執(zhí)行過程中的聲譽值.此外,在機器人聲譽值計算過程中引入懲罰因子,對長期存在拜占庭行為的機器人進行更嚴(yán)厲的聲譽值懲罰,減少識別拜占庭機器人所需時間.其次,設(shè)計一種身份認(rèn)證協(xié)議,部署于區(qū)塊鏈上,使用機器人的身份信息和在區(qū)塊鏈上的地址信息對機器人進行身份認(rèn)證,身份非法的機器人將被給予較低的初始聲譽值,從而減少系統(tǒng)識別拜占庭機器人所需的時間.最后,在基于區(qū)塊鏈的RMS-IATS內(nèi)設(shè)計雙層通信網(wǎng)絡(luò),用于機器人節(jié)點間的通信.在區(qū)塊鏈系統(tǒng)內(nèi)額外引入一條高速通信網(wǎng)絡(luò),解決群機器人系統(tǒng)中因引入?yún)^(qū)塊鏈帶來的通信延遲問題.
拜占庭機器人是指無論其根本原因如何,表現(xiàn)出與預(yù)設(shè)行為不一致行為的機器人.如果機器人偏離它的預(yù)設(shè)行為或出現(xiàn)隨意行動,則具有拜占庭行為[16].本文將拜占庭機器人分為兩類.1)惡意機器人.這類拜占庭機器人不會按照預(yù)設(shè)任務(wù)去行動.2)傳感器或執(zhí)行器故障的機器人,在機器人運行過程中,傳感器或執(zhí)行器的故障可能會導(dǎo)致機器人出現(xiàn)異常行為.當(dāng)群機器人執(zhí)行任務(wù)時,其內(nèi)部的拜占庭機器人將由于惡意或因故障而不執(zhí)行預(yù)設(shè)任務(wù).
區(qū)塊鏈技術(shù)是一種將數(shù)據(jù)塊按時間順序組合成鏈狀的技術(shù)[18].在區(qū)塊鏈上,數(shù)據(jù)按照特定的時間順序組織起來,并使用密碼學(xué)原理進行加密,從而使數(shù)據(jù)可追溯、不可篡改.區(qū)塊鏈不僅可為群機器人提供可靠的點對點通信渠道,還是一種克服潛在威脅、漏洞和攻擊的方法[19].
智能合約是存儲在區(qū)塊鏈上自動運行的獨立于節(jié)點的第三方腳本程序,并在部署后強制執(zhí)行,當(dāng)觸發(fā)編程預(yù)設(shè)條件時,智能合約執(zhí)行相應(yīng)的合約功能.通過設(shè)計不同的智能合約,可使區(qū)塊鏈系統(tǒng)實現(xiàn)不同的功能.
RMS目標(biāo)是保證系統(tǒng)中實體的聲譽值準(zhǔn)確反映其采取的行動[20].一般來說,為了評估系統(tǒng)中一個實體的聲譽值,需要通過交互或第三方提供的實體信息,通過預(yù)定義的映射函數(shù)和聚合函數(shù),將收集到的實體信息從證據(jù)空間(Evidence Space)映射到信任空間(Trust Space)[21].
身份認(rèn)證是網(wǎng)絡(luò)安全中的一項關(guān)鍵技術(shù),防止未經(jīng)授權(quán)的用戶訪問并占用網(wǎng)絡(luò)資源.在群機器人系統(tǒng)引入身份認(rèn)證可有效提高系統(tǒng)識別拜占庭機器人的能力.基于區(qū)塊鏈的身份認(rèn)證技術(shù)可為分布式環(huán)境下信任關(guān)系的構(gòu)建提供有效思路[18].
本文的設(shè)計目標(biāo)是為群機器人系統(tǒng)設(shè)計一種具有身份認(rèn)證和任務(wù)監(jiān)管功能的RMS,在滿足假設(shè)的條件下,使用機器人的身份認(rèn)證結(jié)果和任務(wù)執(zhí)行信息計算機器人的聲譽值,通過對比設(shè)定的聲譽值閾值,快速識別群機器人內(nèi)部的拜占庭機器人.此外,設(shè)計一種雙層通信網(wǎng)絡(luò),緩解將區(qū)塊鏈引入群機器人系統(tǒng)帶來的延遲問題.本文給出如下假設(shè).
假設(shè) 1機器人的算力相同,即n+1個機器人的算力總是強于n個機器人.
假設(shè) 2機器人節(jié)點在任一時刻都有足夠的虛擬貨幣進行交易,不會因為虛擬貨幣數(shù)量不足而無法發(fā)起交易.
假設(shè) 3拜占庭機器人的數(shù)量L小于群體中機器人數(shù)量N的一半,即L 注 1RMS-IATS的可靠性依賴于區(qū)塊鏈的安全性,一般假設(shè)攻擊者不能控制區(qū)塊鏈系統(tǒng)中超過一半的計算節(jié)點,只要這個條件成立,區(qū)塊鏈就是安全的. 基于區(qū)塊鏈技術(shù),本文設(shè)計具有身份認(rèn)證和任務(wù)監(jiān)管的聲譽管理系統(tǒng)(RMS-IATS),框圖如圖1所示. 圖1 基于區(qū)塊鏈的RMS-IATS框架圖 RMS-IATS由如下3部分組成. 1)身份管理中心(Identity Management Center, IMC).負(fù)責(zé)存儲和管理合法身份信息.在區(qū)塊鏈初始化階段,IMC將合法的身份信息發(fā)送給身份認(rèn)證模塊.系統(tǒng)管理員(System Administrator, SA)具有添加、修改、刪除身份信息的權(quán)限. 2)身份認(rèn)證模塊(Identity Authentication Modu- le).運行在智能合約(Smart Contract, SC)中,作用是接收機器人的認(rèn)證請求和認(rèn)證信息,判斷機器人的身份是否合法. 3)任務(wù)監(jiān)管模塊(Task Supervisor Module).運行在智能合約中,作用是對群機器人的任務(wù)執(zhí)行狀態(tài)進行監(jiān)督和評分,評分會影響機器人的聲譽值. 此外,群機器人中的機器人節(jié)點由控制模塊和通信模塊組成.通信模塊負(fù)責(zé)機器人與其它機器人的通信以及與區(qū)塊鏈進行交互.控制模塊負(fù)責(zé)控制機器人移動,并控制機器人使用執(zhí)行器、傳感器完成任務(wù).機器人節(jié)點之間是全連通的. 對于系統(tǒng)內(nèi)的機器人Ri(i=0,1,…,n-1),n為系統(tǒng)內(nèi)機器人的數(shù)量,其認(rèn)證過程分為如下3個階段. 1)系統(tǒng)初始化階段. step 1 SA生成全局密鑰Ks,并將Ks存儲在IMC中. step 2 IMC生成一組區(qū)塊鏈賬戶信息,每個賬戶信息包含區(qū)塊鏈地址A及密碼P,隨后,IMC將全局密鑰Ks寫入SC. 2)機器人注冊階段.機器人Ri注冊流程如下. step 3 IMC生成身份標(biāo)志IDi,通過安全信道將一個區(qū)塊鏈地址Ai和密碼Pi,以及IDi發(fā)送至Ri,Ri將(IDi,Ai,Pi)存儲在內(nèi)存中,其中,密碼Pi和身份標(biāo)志IDi為秘密參數(shù). step 4 IMC使用哈希函數(shù)h(·)計算 3)機器人認(rèn)證階段.機器人Ri身份認(rèn)證流程如下. step 5Ri生成時間戳t1和隨機數(shù)n1,計算 M1=IDi⊕h(Pi),M2=h(M1,t1,n1), 發(fā)送信息(M1,M2,t1,n1)給SC. step 6 SC收到(M1,M2,t1,n1)后,首先驗證 tnow-t1<Δt 驗證 是否成立,若成立,則SC成功認(rèn)證Ri,Γi=1,否則Γi=0. step 7 認(rèn)證成功后,SC計算 發(fā)送(M3,M4)給Ri,Ri收到M3后,計算 本文改進文獻(xiàn)[15]中的RMS框架,基于行為[17]將綜合的群機器人任務(wù)分解為4類子任務(wù),通過部署在智能合約內(nèi)的計機器人任務(wù)監(jiān)管模塊對機器人的子任務(wù)進行監(jiān)管.在身份認(rèn)證結(jié)束后,群機器人開始執(zhí)行預(yù)設(shè)任務(wù),間隔固定的時間ΔT,任務(wù)監(jiān)管模塊會對機器人的子任務(wù)執(zhí)行情況進行一輪評分,得到的評分將用于迭代機器人聲譽值,具體過程如下. 在每個機器人加入編隊執(zhí)行任務(wù)前,任務(wù)監(jiān)管模塊會根據(jù)身份認(rèn)證結(jié)果,為每個機器人設(shè)定一個初始聲譽值: 其中,i=1,2,…,n,Γi為機器人Ri的身份認(rèn)證結(jié)果,κ為系統(tǒng)管理員設(shè)定的通過身份認(rèn)證的機器人的初始聲譽值. 隨后,間隔固定時間ΔT,任務(wù)監(jiān)管模塊對機器人的任務(wù)執(zhí)行進行一輪評分.第k輪對機器人Ri的評分過程如下. 定義ρ∈Rm為任務(wù)變量,σ∈Rn為機器人配置[17].ρ與σ相關(guān),ρi(i=1,2,…,n)為機器人Ri的任務(wù)變量,機器人的任務(wù)函數(shù)如下: ρi=f(σi), 其中,f(·)為從σ到ρ的映射關(guān)系,表示不同配置的機器人的任務(wù)差異. 注 2RMS-IATS可推廣至一般群機器人多任務(wù)場景,若存在任務(wù)超出本文給出的4個子任務(wù)分類,則沿用本文子任務(wù)評價函數(shù)設(shè)計邏輯關(guān)系.首先分析對應(yīng)子任務(wù)的評價指標(biāo),如本文避障、避碰子任務(wù)ρi,o的評價指標(biāo)為機器人與障礙、其它機器人的距離di,o.然后根據(jù)對評價指標(biāo)的需求在聲譽管理系統(tǒng)中設(shè)計對應(yīng)的子任務(wù)評價函數(shù),如子任務(wù)ρi,o的評價指標(biāo)di,o,本文希望di,o大于設(shè)定的安全距離dsafe,當(dāng)di,o 在第k輪評分中,任務(wù)監(jiān)管模塊對子任務(wù)ρi,m的評分與當(dāng)前Ri的目標(biāo)點Pi,m的距離相關(guān),系統(tǒng)通過傳感器采集機器人的任務(wù)執(zhí)行信息infi的目標(biāo)點與機器人的任務(wù)執(zhí)行狀態(tài)函數(shù)相關(guān),即 Pi,m=λ(infi), 其中λ(·)為Pi,m和infi之間的映射關(guān)系. Ri當(dāng)前位置與目標(biāo)點的距離誤差如下: di,m=‖Pi,d-Pi,m‖, 其中,‖·‖為兩點間的距離,Pi,d為Ri當(dāng)前位置. 對于子任務(wù)ρi,m,評分 在第k輪評分及對子任務(wù)ρi,o評分的設(shè)計中,機器人需實時獲取與最近障礙物、其它機器人的距離信息且給定避障的安全范圍dsafe.機器人突破安全范圍時,越靠近障礙物的懲罰越大,距離為 0 時碰撞發(fā)生,懲罰接近-∞.Ri當(dāng)前位置與目標(biāo)點的距離誤差為: di,o=‖Pi,d-Pi,o‖ , 本文定義在系統(tǒng)中的非拜占庭機器人為良性機器人,對于任一機器人,即使其存在拜占庭行為,在被識別為拜占庭機器人前,也認(rèn)定為良性機器人,計算良性機器人聲譽值的平均值: (1) 其中N為良性機器人的數(shù)量. 注 3靜態(tài)閾值τ的具體數(shù)值設(shè)置應(yīng)大于未通過身份認(rèn)證機器人的初始聲譽值κ,從而使未通過認(rèn)證的機器人在實驗開始時即被識別為拜占庭機器人.動態(tài)閾值參數(shù)的具體數(shù)值設(shè)置應(yīng)大于對子任務(wù)ρi,a的獎勵β,以防止多數(shù)機器人抵達(dá)目標(biāo)位置并執(zhí)行子任務(wù)ρi,a,而部分良性機器人由于暫時未達(dá)到目標(biāo)點而未執(zhí)行子任務(wù)ρi,a,導(dǎo)致其聲譽值低于動態(tài)閾值,被誤識別為拜占庭機器人的情況發(fā)生. 當(dāng)Ri在時刻t被識別為拜占庭機器人后,根據(jù)式(1)計算群機器人平均聲譽值時,將已識別為拜占庭機器人的Ri排除在外,從而防止Ri對后續(xù)群機器人系統(tǒng)內(nèi)拜占庭機器人的識別造成影響. 由于區(qū)塊鏈的特性,在群機器人系統(tǒng)引入?yún)^(qū)塊鏈會導(dǎo)致節(jié)點間的通信延遲.在時刻t,區(qū)塊鏈上的節(jié)點進行交易,礦工節(jié)點進行挖礦并將交易打包進區(qū)塊鏈中,區(qū)塊鏈的狀態(tài)會發(fā)生變化,即 Yt+td=Ω(Yt,T), 其中,Ω為區(qū)塊鏈的狀態(tài)轉(zhuǎn)移函數(shù),Y為區(qū)塊鏈狀態(tài),T為交易信息.當(dāng)節(jié)點在時刻t發(fā)起一次交易,需要等待一個延遲時間td,節(jié)點挖礦成功、節(jié)點間形成共識、交易被打包上鏈后,交易才會生效,即從交易發(fā)起到交易生效需要等待一個延遲時間. 由于節(jié)點挖礦所需的時間以及形成共識的時間是隨機的,即一筆交易從發(fā)起到生效的所需時間是隨機的,系統(tǒng)中使用區(qū)塊鏈的部分變成一個異步系統(tǒng),故完全基于區(qū)塊鏈的通信網(wǎng)絡(luò)存在較大的通信延遲,無法滿足群機器人的通信延遲要求[22]. 為了解決引入?yún)^(qū)塊鏈帶來的通信延遲問題,本文設(shè)計一種雙層通信網(wǎng)絡(luò),框架如圖2所示.區(qū)塊鏈通信網(wǎng)絡(luò)(如圖中藍(lán)線所示)完成對實時性要求不高的通信任務(wù).高速通信網(wǎng)絡(luò)(如圖中紅線所示),使用無線網(wǎng)絡(luò)(如WiFi、蜂窩網(wǎng)絡(luò)等)進行通信. 圖2 雙層通信網(wǎng)絡(luò)框架圖 在高速通信網(wǎng)絡(luò)中,節(jié)點間借助在身份認(rèn)證step 7獲取的全局密鑰Ks,生成會話密鑰,用于加密信道中的信息.對于每個機器人節(jié)點而言,Ri與Rj均完成認(rèn)證后,在一次會話中,機器人Ri需要發(fā)送明文信息M給Rj,在會話過程中Ri和Rj會分別使用計數(shù)器cnti和cntj,當(dāng)一次信息傳輸完成后,計數(shù)器的值將會增加,傳輸M的具體過程如下. step 1 對于機器人Ri,計算 其中,enc(m,s)為加密函數(shù),m為待加密的明文信息,s為加密使用的密鑰.完成加密后Ri生成時間戳t2和隨機數(shù)n2,計算 M5=h(EM,t2,n2), 將(EM,M5,t2,n2)發(fā)送給Rj.發(fā)送后,計數(shù)器的值 cnti=cnti+1. step 2Rj收到信息后,首先驗證 tnow-t2<Δt 是否成立,若不成立,結(jié)束當(dāng)前會話.其次,計算 其中,dec(m,s)為解密函數(shù),m為待解密的密文,s為解密使用的密鑰.完成后,計數(shù)器的值 cntj=cntj+1. 本節(jié)使用ROR(Real-or-Random)模型[23]和自動安全驗證工具PV(ProVerif)[24]驗證本文的身份認(rèn)證協(xié)議的安全性. 敵手A能夠竊取和修改在非安全信道中的信息傳輸,可向非安全信道內(nèi)注入偽造的信息.敵手A可執(zhí)行如下請求(Query). 1)Execute(Λv,Λw):敵手A可獲取到在信道中的傳輸信息. 2)Reveal(Λv):敵手A可獲取到當(dāng)前會話中Λv生成的會話密鑰. 3)Send(Λv,m):敵手A向Λv發(fā)送一條消息,若消息正確,A將收到相應(yīng)的響應(yīng)信息. 4)Test(Λv):該請求是通信密鑰的安全模型,在實驗開始前將隨機生成一個比特c,敵手A發(fā)起請求后,當(dāng)c=1時,Λv將返回真實的會話密鑰,當(dāng)c=0時,Λv將返回一個和會話密鑰等長的隨機數(shù),隨后,A需要猜測c. 若敵手A在Test(Λv)請求中猜對c,則敵手贏得游戲(Succ).在ROR模型中,敵手獲得勝利的概率表示為 advp=|2Pr[Succ]-1|, 其中Pr[E]表示事件E發(fā)生的概率.若advp<,其中>0足夠小,則會話密鑰是安全的. 證明定義3個游戲(Game)分別為Gi(i=0,1,2),使用Succi表示在Gi中敵手成功猜對比特c. 1)G0.在G0中,A在ROR模型下,對協(xié)議進行原始攻擊.A在游戲開始前比特c就被選擇完畢.因此,在協(xié)議中可得 advp=|2Pr[Succ0]-1|. (2) 2)G1.G0被轉(zhuǎn)化為G1.在G1中,敵手A執(zhí)行Execute請求,然后執(zhí)行Test請求,最后,敵手A根據(jù)Execute和Test查詢的結(jié)果猜測比特c.敵手A猜對比特c的概率不會因執(zhí)行Execute和Test查詢而增加,則 Pr[Succ1]=Pr[Succ0]. (3) (4) 由于會話密鑰的生成過程中包含短期秘密cnti和cntj,敵手A無法通過多次執(zhí)行請求增加猜對比特c的概率,敵手A只能在執(zhí)行Test請求時猜測比特c以贏得游戲,因此 Pr[Succ2]=0.5. (5) 由式(3)~式(5)可得 (6) 最后,根據(jù)式(2)和式(6),可得 ProVerif是一種廣泛使用的安全驗證工具,可處理密碼學(xué)算法,包括對稱加密和簽名函數(shù)、哈希函數(shù)等[24].身份認(rèn)證協(xié)議的身份認(rèn)證及密鑰協(xié)商涉及3個參與者:智能合約SC、機器人Ri、機器人Rj.為了驗證協(xié)議的安全性與可靠性,需要驗證機器人Ri、Rj的秘密參數(shù)Pi、Pj、IDi、IDj,系統(tǒng)主密鑰Ks及所需傳輸?shù)拿魑男畔不被敵手獲取.同時驗證及認(rèn)證過程中的流程機器人注冊、機器人身份認(rèn)證、機器人獲取密鑰參數(shù)、機器人生成會話密鑰、機器人結(jié)束會話能按流程正常執(zhí)行. 在PV中定義如下7個事件: 1)RiRegistrationSucc,表示Ri注冊完成,對應(yīng)機器人身份認(rèn)證step 3與step 4. 2)RiAuthenticationSucc,表示SC成功認(rèn)證Ri,對應(yīng)機器人身份認(rèn)證step 6. 3)RiGetSessionKey,表示Ri成功獲取通信密鑰,對應(yīng)機器人身份認(rèn)證step 7. 4)RjRegistrationSucc,表示Rj注冊完成,對應(yīng)機器人身份認(rèn)證step 3與step 4. 5)RjAuthenticationSucc,表示SC成功認(rèn)證Rj,對應(yīng)機器人身份認(rèn)證step 6. 6)RjGetSessionKey,表示Rj成功獲取通信密鑰,對應(yīng)機器人身份認(rèn)證step 7. 7)End,表示Ri和Rj成功使用通信密鑰完成一次信息傳輸,對應(yīng)機器人密鑰協(xié)商step 1與step 2. 此外,定義如下6個參數(shù): 1)IDi,對應(yīng)機器人Ri秘密參數(shù)IDi; 2)IDj,對應(yīng)機器人Rj秘密參數(shù)IDj; 3)Pi,對應(yīng)機器人Ri秘密參數(shù)Pi; 4)Pj,對應(yīng)機器人Rj秘密參數(shù)Pj; 5)Ks,對應(yīng)系統(tǒng)主密鑰Ks; 6)M,對應(yīng)明文信息M. 根據(jù)對上述事件與參數(shù)的安全驗證需求,PV輸出如下12條安全驗證結(jié)果: 1)Query not attacker(IDi[]) is true,表示敵手無法獲取秘密參數(shù)IDi; 2)Query not attacker(IDj[]) is true,表示敵手無法獲取秘密參數(shù)IDj; 3)Query not attacker(Pi[]) is true,表示敵手無法獲取秘密參數(shù)Pi; 4)Query not attacker(Pj[]) is true,表示敵手無法獲取秘密參數(shù)Pj; 5)Query not attacker(Ks[]) is true,表示敵手無法獲取系統(tǒng)主密鑰Ks; 6)Query not attacker(M[]) is true,表示敵手無法獲取明文信息M; 7)Query inj-event(End)?inj-event(RiGetSessionKey) is true,表示事件End發(fā)生前一定會發(fā)生一次事件RiGetSessionKey; 8)Query inj-event(End)?inj-event(RjGetSessionKey) is true,表示事件End發(fā)生前一定會發(fā)生一次事件RjGetSessionKey; 9)Query inj-event(RiGetSessionKey)?inj-event(RiAuthenticationSucc) is true,表示事件RiGetSessionKey發(fā)生前一定會發(fā)生一次事件RiAuthenticationSucc; 10)Query inj-event(RjGetSessionKey)?inj-event(RjAuthenticationSucc) is true,表示事件RjGetSessionKey發(fā)生前一定會發(fā)生一次事件RjAuthenticationSucc; 11)Query event(RiAuthenticationSucc)?event(RiRegistrationSucc) is true,表示事件RiAuthenticationSucc發(fā)生前一定會發(fā)生一次事件RiRegistrationSucc; 12)Query event(RjAuthenticationSucc)?event(RjRegistrationSucc) is true,表示事件RjAuthenticationSucc發(fā)生前一定會發(fā)生一次事件RjRegistrationSucc. PV驗證結(jié)果意味著本文的身份認(rèn)證協(xié)議在經(jīng)過PV的分析后是安全可靠的,輸出結(jié)果1)~6)說明敵手無法獲取會話雙方的身份參數(shù)IDi、IDj、Pi、Pj、系統(tǒng)主密鑰Ks及所要傳輸?shù)拿魑男畔,輸出結(jié)果7)~12)說明對Rj、Rj的認(rèn)證能按照設(shè)定流程順序執(zhí)行. 注 4基于ROR模型和PV安全工具的安全驗證可推廣至多機器人的認(rèn)證與密鑰協(xié)商安全,對于多機器人的身份認(rèn)證及密鑰協(xié)商過程,可拆分群機器人為多組(兩個單位為一組)的形式,分別進行安全驗證. 為了驗證基于區(qū)塊鏈的RMS-IATS與雙層通信網(wǎng)絡(luò)的有效性,與經(jīng)典的群機器人RMS進行對比.仿真設(shè)置群機器人貨運任務(wù)場景,分別考慮3臺、5臺、7臺移動機器人在二維平面上執(zhí)行貨運任務(wù),機器人采用領(lǐng)航-跟隨者編隊法[25].群機器人系統(tǒng)的任務(wù)是編隊前往設(shè)定的取貨點取貨,并將貨物運送到設(shè)定的卸貨點,仿真場景如圖3(a)所示,良性機器人任務(wù)設(shè)置如圖3(b)所示、惡意機器人任務(wù)設(shè)置如圖3(c)所示. (a)仿真場景設(shè)置 在仿真中,對比分析使用一種經(jīng)典的基于區(qū)塊鏈的群機器人RMS[15](簡稱為經(jīng)典RMS)時和使用RMS-IATS時的仿真結(jié)果. 本節(jié)考慮5臺機器人時的仿真結(jié)果,當(dāng)機器人被識別為拜占庭機器人后停止運動.仿真參數(shù)如表1所示. 表1 仿真參數(shù) 使用的區(qū)塊鏈平臺為以太坊(Ethereum),哈希函數(shù)為SHA256.仿真使用群機器人仿真平臺ARGoS[26]和e_puck插件[27].在Docker容器中部署以太坊,機器人使用C++接口程序、shell腳本和JavaScript腳本連接以太坊,機器人擁有足夠數(shù)量的以太幣,如假設(shè)2,機器人總能與智能合約進行交互. 在仿真中,為機器人運動子任務(wù)ρi,m設(shè)置懲罰因子: 仿真中未注冊身份的機器人身份信息非法;否則,機器人身份信息合法.仿真考慮3類拜占庭機器人:故障機器人、身份信息合法的惡意機器人、身份信息非法的惡意機器人.故障機器人在執(zhí)行預(yù)設(shè)任務(wù)過程中將由于故障而停止運動;惡意機器人由于受到攻擊,被設(shè)定為將貨物送至非預(yù)設(shè)卸貨點P3.考慮3臺、5臺、7臺機器人時的9種仿真設(shè)置如表2所示. 表2 仿真設(shè)置 圖4、圖5、圖6、圖7分別表示無拜占庭機器人、機器人5設(shè)為故障機器人(對應(yīng)表2中case4)、機器人5設(shè)為身份合法的拜占庭機器人(對應(yīng)表2中case5)、機器人5設(shè)為身份非法的拜占庭機器人(對應(yīng)表2中case6)時的仿真結(jié)果. (a)群機器人軌跡 (a)群機器人聲譽值 (a1)群機器人軌跡 (a2)群機器人聲譽值 (a1)群機器人軌跡 (a2)群機器人聲譽值 (a1)群機器人軌跡 (a2)群機器人聲譽值 當(dāng)機器人5身份合法時,機器人通過身份認(rèn)證,此時,相比經(jīng)典RMS,由于引入懲罰因子,當(dāng)系統(tǒng)檢測到機器人存在拜占庭行為時,聲譽值很快降至閾值下;當(dāng)機器人5非法時,由于未通過認(rèn)證,被給予一個較低的初始聲譽值,聲譽值很快降至閾值以下.由于經(jīng)典RMS沒有使用身份認(rèn)證,僅根據(jù)任務(wù)執(zhí)行情況改變機器人5的聲譽值,僅在機器人5執(zhí)行拜占庭行為的情況下,聲譽值才會下降. 在考慮3臺、5臺、7臺機器人時的9種仿真設(shè)置下識別拜占庭機器人所需時間如圖8所示.計算識別拜占庭時間時,從設(shè)定的機器人異常時間開始算起,直到機器人被識別為拜占庭機器人. 圖8 識別拜占庭機器人所需時間 相比經(jīng)典RMS,RMS-IATS能減少識別拜占庭所需的時間,縮減量超過14.29%. 使用文獻(xiàn)[16]中的領(lǐng)航-跟隨者場景進行仿真實驗,驗證本文的雙層通信網(wǎng)絡(luò)的有效性.具體場景如圖9所示,設(shè)置1個領(lǐng)航者與2個跟隨者,領(lǐng)航者機器人采集環(huán)境信息后進行運動,并將控制指令發(fā)送給跟隨者,跟隨者執(zhí)行接收到的控制指令,從而實現(xiàn)編隊效果.當(dāng)領(lǐng)航者與跟隨者之間無通信延遲時,跟隨者能立刻收到來自領(lǐng)航者的控制指令,跟隨者與領(lǐng)航者的運動始終保持一致,跟隨者與期望位置的距離誤差總為0.領(lǐng)航者與跟隨者之間的通信延遲越大,跟隨者越遲收到領(lǐng)航者的控制指令,跟隨者與其期望位置之間的距離誤差隨通信延遲的增大而增大. 圖9 雙層通信網(wǎng)絡(luò)仿真場景 仿真對比使用區(qū)塊鏈作為通信網(wǎng)絡(luò)[16]和使用雙層通信網(wǎng)絡(luò)中的高速通信網(wǎng)絡(luò)作為通信網(wǎng)絡(luò)時跟隨者1與期望位置之間的距離誤差.設(shè)定系統(tǒng)通信延遲為0~200 ms,領(lǐng)航者運動20 s后停止運動.在高速通信網(wǎng)絡(luò)中,分別考慮不使用加密算法(即僅考慮系統(tǒng)的物理通信延遲)、使用本文的密鑰協(xié)商協(xié)議、使用RSA(Rivest-Shamir-Adleman)非對稱加密3種情況.進行20次仿真實驗,機器人運動速度為1 m/s,控制頻率為100 Hz,仿真結(jié)果如圖10所示,圖中使用的誤差棒上下分別為數(shù)據(jù)的最大值和最小值,表征數(shù)據(jù)的分布情況,編隊過程中跟隨者與期望位置的最大誤差由2.103 m減少至0.118 m(約94.38%). 圖10 仿真中跟隨者1與期望位置之間的距離誤差 本文探索區(qū)塊鏈在群機器人任務(wù)執(zhí)行場景下的應(yīng)用,解決群機器人在執(zhí)行任務(wù)過程中拜占庭機器人帶來的安全問題.改進一種經(jīng)典區(qū)塊鏈RMS[15],進一步提出具有身份認(rèn)證和任務(wù)監(jiān)管的RMS(RMS-IATS).一方面,對機器人進行任務(wù)監(jiān)管,對長期執(zhí)行拜占庭行為的機器人進行更嚴(yán)厲的聲譽值懲罰,另一方面,構(gòu)建一種身份認(rèn)證協(xié)議,在群機器人開始執(zhí)行任務(wù)前,根據(jù)身份認(rèn)證結(jié)果賦予每個機器人不同的初始聲譽值,實現(xiàn)機器人節(jié)點的身份認(rèn)證與任務(wù)監(jiān)管.此外,設(shè)計一種雙層通信網(wǎng)絡(luò),用于機器人節(jié)點間的通信,緩解區(qū)塊鏈帶來的通信延遲問題.最后,在一種貨運場景的仿真中驗證方案的有效性,相比經(jīng)典RMS,RMS-IATS識別不同類型拜占庭機器人所需的時間縮短14.29%以上.此外,在領(lǐng)航-跟隨者編隊仿真中驗證雙層通信網(wǎng)絡(luò)的有效性,與使用區(qū)塊鏈[16]時相比,系統(tǒng)的最大通信延遲減少94.38%,因此能有效減少系統(tǒng)通信延遲. 文中RMS-IATS采用單區(qū)塊鏈模型,所有機器人設(shè)備均處于同一區(qū)塊鏈下,當(dāng)機器人設(shè)備增多時,系統(tǒng)身份認(rèn)證與任務(wù)監(jiān)管效率降低,并伴隨所需存儲資源增多.今后將進一步研究多區(qū)塊鏈系統(tǒng),并嘗試設(shè)計多鏈模型下的群機器人身份認(rèn)證與任務(wù)監(jiān)管方案.2 基于區(qū)塊鏈的具有身份認(rèn)證和任務(wù)監(jiān)管的聲譽管理系統(tǒng)
2.1 框架設(shè)計
2.2 身份認(rèn)證
2.3 任務(wù)監(jiān)管
2.4 雙層通信網(wǎng)絡(luò)與密鑰協(xié)商
3 安全性分析
3.1 使用ROR模型進行形式化安全分析
3.2 基于PV工具的安全驗證
4 仿真實驗及結(jié)果分析
4.1 實驗設(shè)置
4.2 身份認(rèn)證與任務(wù)監(jiān)管
4.3 雙層通信網(wǎng)絡(luò)
5 結(jié) 束 語