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