楊 亮
(陜西工業(yè)職業(yè)技術(shù)學(xué)院 航空工程學(xué)院,陜西 咸陽 712000)
機(jī)器人是由計(jì)算機(jī)控制的可編程自動(dòng)化機(jī)器,根據(jù)環(huán)境和操作的需要,它具有某些環(huán)境感知能力(如視覺、力感、觸覺、接觸感等)、語言功能、邏輯思考、判斷和決策功能等,以代替人在環(huán)境中操作[1]。由于有些機(jī)器人涉及現(xiàn)場(chǎng)監(jiān)測(cè)的敏感數(shù)據(jù),采集的傳感器數(shù)據(jù)容易被人為篡改和破壞,因此在實(shí)際工作中需要保密[2]。隨著機(jī)器人技術(shù)的發(fā)展,單靠傳感器提供信息已不能滿足現(xiàn)代移動(dòng)機(jī)器人的需要,為此,相關(guān)學(xué)者對(duì)機(jī)器人數(shù)據(jù)加密傳輸控制系統(tǒng)作出了研究。有學(xué)者將多傳感器融合技術(shù)引入了機(jī)器人應(yīng)用領(lǐng)域。該方法中只有數(shù)字水印等傳統(tǒng)數(shù)據(jù)保護(hù)技術(shù)通過中央數(shù)據(jù)庫(kù)進(jìn)行存儲(chǔ),數(shù)據(jù)和交易過程主要由第三方實(shí)施,存在很大安全風(fēng)險(xiǎn),交易信息容易被篡改;采用微加密算法對(duì)采樣報(bào)文的密鑰內(nèi)容進(jìn)行加密,循環(huán)冗余校對(duì)驗(yàn)證碼以保證解密報(bào)文的完整性。但是該系統(tǒng)的網(wǎng)絡(luò)負(fù)載率很高,難以保證現(xiàn)場(chǎng)采樣數(shù)據(jù)的真實(shí)性。
基于上述考慮,本文研究了基于區(qū)塊鏈技術(shù)的機(jī)器人數(shù)據(jù)加密傳輸控制方法。利用區(qū)塊鏈來保護(hù)機(jī)器人的整個(gè)生命周期以及采集到的敏感數(shù)據(jù),從而達(dá)到機(jī)器人數(shù)據(jù)加密傳輸。
機(jī)器人控制系統(tǒng)通過識(shí)別數(shù)據(jù)特征發(fā)出指令后,驅(qū)動(dòng)機(jī)構(gòu)根據(jù)指令信號(hào)做出相應(yīng)的動(dòng)作,具有實(shí)時(shí)監(jiān)控、檢測(cè)等功能,能將監(jiān)控信息反饋給控制系統(tǒng)。通過與設(shè)置信息對(duì)比,可以調(diào)整執(zhí)行器,以保證機(jī)器人動(dòng)作符合預(yù)定要求[3]。通過遠(yuǎn)程視頻服務(wù),擴(kuò)大了視頻監(jiān)控應(yīng)用范圍,能夠準(zhǔn)確地獲取外部條件變化,及時(shí)調(diào)整機(jī)器動(dòng)作,以適應(yīng)外部環(huán)境變化,提高機(jī)器人移動(dòng)準(zhǔn)確性[4]。上位機(jī)通過局域網(wǎng)直接連接到服務(wù)器端,進(jìn)行遠(yuǎn)程控制和播放,提高了信息反饋效率。機(jī)器人的每個(gè)模塊都有一個(gè)或多個(gè)線程,可根據(jù)需要啟動(dòng)有用線程或阻塞無用線程,能夠有效提高機(jī)器人系統(tǒng)執(zhí)行效率[5]。除了遠(yuǎn)程控制、自動(dòng)采樣等業(yè)務(wù)功能外,傳感器數(shù)據(jù)也被定期封裝,通過非對(duì)稱加密通信技術(shù)簽名后發(fā)送給可信存儲(chǔ)服務(wù)模塊,以完成數(shù)據(jù)安全功能?;趨^(qū)塊鏈技術(shù)的機(jī)器人加密總體結(jié)構(gòu)如圖1所示。
圖1 機(jī)器人加密總體結(jié)構(gòu)示意圖
可信存儲(chǔ)主要模塊是機(jī)器人數(shù)據(jù)加密傳輸控制系統(tǒng)硬件的重要組成部分,它的功能是存儲(chǔ)指令和數(shù)據(jù),可以被中央處理機(jī)直接隨機(jī)存取[6]。存儲(chǔ)模塊面板包括各種狀態(tài)指示器和USB接口,因?yàn)榇鎯?chǔ)芯片容量有限,主存通常是由一定量芯片構(gòu)成的比特?cái)U(kuò)充[7]。比特?cái)U(kuò)充指的是只在單位數(shù)(增加字長(zhǎng))上擴(kuò)充,某些擴(kuò)展接線方式鏈接地址線,每個(gè)芯片選擇行和并行讀寫存儲(chǔ)器芯片,而每個(gè)芯片的數(shù)據(jù)線都單獨(dú)列在單詞擴(kuò)展表中[8]。單詞擴(kuò)展是指僅有的單詞數(shù)量擴(kuò)展,而比特?cái)?shù)沒有變化。字元擴(kuò)展與芯片的地址線、數(shù)據(jù)線和讀寫控制線平行,而芯片選擇信號(hào)以區(qū)別芯片字元擴(kuò)展和字元擴(kuò)展[9]。當(dāng)形成大容量容器的時(shí)候,通常需要在字?jǐn)?shù)和比特方向同時(shí)展開。
將機(jī)器人收到的傳感器數(shù)據(jù)拆分并校驗(yàn),檢查數(shù)據(jù)源可靠性;將傳感器數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中,通過 Hash算法計(jì)算其加密情況,并將其存儲(chǔ)在加密的數(shù)字貨幣區(qū)塊鏈中以防止篡改[10]。
本文采用NoSQL數(shù)據(jù)庫(kù)作為機(jī)器人加密數(shù)據(jù)存儲(chǔ)數(shù)據(jù)庫(kù),其中mysql、MS SQL server和 mongodb可用于機(jī)器人多傳感實(shí)際操作,在采集利用機(jī)器人加密數(shù)據(jù)后,將數(shù)據(jù)存儲(chǔ)在NoSQL數(shù)據(jù)庫(kù)中,能夠提升數(shù)據(jù)加密存儲(chǔ)的可靠性。
在X86服務(wù)器上,使用Intel或其他與X86指令集和 windows操作系統(tǒng)兼容的處理器芯片,即PC架構(gòu)。服務(wù)及應(yīng)用模塊利用PC架構(gòu)獲取數(shù)據(jù)庫(kù)數(shù)據(jù),能夠向用戶提供采樣數(shù)據(jù)分析服務(wù),并提供數(shù)據(jù)顯示等常用應(yīng)用[11]。
該技術(shù)具有數(shù)據(jù)分散、數(shù)據(jù)庫(kù)安全、可靠等特點(diǎn)。該技術(shù)的核心特征就是去中心化,去掉了第三方管理機(jī)構(gòu),數(shù)據(jù)存儲(chǔ)直接由網(wǎng)絡(luò)中的驗(yàn)證節(jié)點(diǎn)群集處理;一個(gè)可靠數(shù)據(jù)庫(kù)意味著每個(gè)驗(yàn)證節(jié)點(diǎn)都有其完整的數(shù)據(jù)記錄,所以,即使某些節(jié)點(diǎn)受到攻擊或者數(shù)據(jù)丟失,整個(gè)系統(tǒng)仍然可以在不崩潰的情況下工作;安全可靠是指區(qū)塊鏈技術(shù)利用加密技術(shù)對(duì)數(shù)據(jù)進(jìn)行簽名,使信息不會(huì)被篡改,從而使數(shù)據(jù)的存儲(chǔ)更加可靠[12]。
圖2中顯示了區(qū)塊鏈鏈接結(jié)構(gòu),鏈接主要取決于散列值。當(dāng)區(qū)塊內(nèi)的數(shù)據(jù)被惡意篡改時(shí),區(qū)塊計(jì)算的散列值將更改。對(duì)比下一區(qū)塊中存儲(chǔ)的原始散列值,可以發(fā)現(xiàn)異常,有效地防止了數(shù)據(jù)被惡意篡改。
圖2 區(qū)塊鏈鏈接結(jié)構(gòu)示意圖
在硬件模塊設(shè)計(jì)的基礎(chǔ)上,設(shè)計(jì)機(jī)器人數(shù)據(jù)加密傳輸控制系統(tǒng)軟件流程。通過區(qū)塊鏈信息交互實(shí)現(xiàn)數(shù)據(jù)的交互傳輸,對(duì)數(shù)據(jù)進(jìn)行編碼處理得到信息加密矩陣,通過信息簽名驗(yàn)證機(jī)制將得到加密數(shù)據(jù)存入?yún)^(qū)塊,實(shí)現(xiàn)機(jī)器人數(shù)據(jù)加密傳輸控制。
區(qū)塊鏈上數(shù)據(jù)交互是指進(jìn)入?yún)^(qū)塊鏈記錄的交互過程,其主要區(qū)別于區(qū)塊鏈下信息交互過程,所有鏈上交互都屬于去中心化和抗篡改的交互[13]。在機(jī)器人出廠部署前,硬件中包含公、私鑰地址。在機(jī)器人部署上線時(shí),機(jī)器人通過數(shù)據(jù)客戶端遠(yuǎn)程調(diào)用接口,實(shí)現(xiàn)交互信息傳輸。
將機(jī)器人數(shù)據(jù)客戶端傳輸?shù)男畔⒎纸獬蒻組信息,將這些信息全部發(fā)送到待傳輸節(jié)點(diǎn)中[14]。在發(fā)送前,信息源點(diǎn)會(huì)產(chǎn)生r個(gè)m維向量,每個(gè)向量都含有m個(gè)分量,可表示為w1,w2,…,wr。
經(jīng)過信息編碼處理后的r個(gè)m維向量,可得到r個(gè)數(shù)據(jù)包,可表示為b1,b2,…,br,計(jì)算公式為:
br=wr(a1a2…am)t,i=1,2,…,r
(1)
信息源點(diǎn)全部完成編碼處理后,統(tǒng)一打包r個(gè)m維向量,由此得到的r個(gè)數(shù)據(jù)包全部傳輸?shù)侥繕?biāo)節(jié)點(diǎn)之中[15]。該節(jié)點(diǎn)能夠接收到較多信息,編碼處理的向量是具有無線性的,由此完成的信息加密矩陣可表示為:
(2)
以公式(2)原始信息矩陣為依據(jù),選擇加密信息初始密鑰,該密鑰是由512個(gè)字節(jié)組成的,對(duì)于信息存儲(chǔ)來說是非常安全的。在該加密情況下,使用區(qū)塊鏈技術(shù)設(shè)計(jì)加密流程:
Step1:機(jī)器人自主選擇文件,獲取相關(guān)文件信息;
Step2:數(shù)據(jù)分類與識(shí)別;
Step3:分類后的數(shù)據(jù),在機(jī)器人中是否顯示是第一次識(shí)別?如果是,則將機(jī)器人作為第一個(gè)識(shí)別模板;如果不是,則說明該信息異常,無法加密,需重新選擇數(shù)據(jù);
Step4:根據(jù)公式(2)得到信息加密矩陣;
Step5:判斷是否刪除異常文件,如果是,則機(jī)器人直接刪除異常文件,由此完成加密處理。
3.3.1 引入信息簽名驗(yàn)證機(jī)制
在區(qū)塊鏈技術(shù)中,各記賬節(jié)點(diǎn)必須維護(hù)同一賬本,因此,有必要引入信息簽名驗(yàn)證機(jī)制[16],以實(shí)現(xiàn)信息間的一致性處理。針對(duì)節(jié)點(diǎn)可能存在惡意操作,引入信息簽名驗(yàn)證機(jī)制,如圖3所示。
圖3 信息簽名驗(yàn)證機(jī)制
由圖3可知,確認(rèn)發(fā)送節(jié)點(diǎn)是否正常,確認(rèn)后發(fā)送給領(lǐng)導(dǎo)節(jié)點(diǎn),領(lǐng)導(dǎo)節(jié)點(diǎn)經(jīng)過復(fù)制與確認(rèn)后,發(fā)送給跟隨節(jié)點(diǎn),待簽名確認(rèn)完成后,可將結(jié)果發(fā)送給候選節(jié)點(diǎn)。
3.3.2 控制流程
在信息簽名驗(yàn)證機(jī)制支持下,設(shè)計(jì)控制流程,首先提取機(jī)器人上傳加密信息,通過SHA-256 哈希算法,得到定長(zhǎng)短字符串[17];然后發(fā)起區(qū)塊鏈上數(shù)據(jù)交互,記錄信息加密到區(qū)塊鏈上。該控制過程如下所示:
Step1:設(shè)定信息發(fā)送方機(jī)器人為主公鑰地址,接收方機(jī)器人為原始信息來源公鑰地址;
Step2:檢索公鑰地址尚未完成的交互輸出信息;
Step3:選擇一個(gè)合適的交互信息輸出項(xiàng),將加密信息存入OP_RETURN腳本中,OP_RETURN腳本存入?yún)^(qū)塊鏈過程為:需先創(chuàng)建一個(gè)交互信息,完善OP_RETURN腳本內(nèi)容,實(shí)現(xiàn)交互數(shù)據(jù)封裝簽名。
為了說明該步驟,將以下機(jī)器人多傳感數(shù)據(jù)作為例子:
2019-04-20 08:00:00 0001 62 83 74;
2019-04-20 08:00:30 0001 55 75 70;
2019-04-20 08:01:00 0001 50 80 82;
2019-04-20 08:01:30 0001 48 85 72;
2019-04-20 08:02:00 0001 60 91 73;
使用SHA-256 哈希算法計(jì)算上述多傳感數(shù)據(jù)的加密信息,得到定長(zhǎng)加密結(jié)果。將該結(jié)果附加上前綴標(biāo)識(shí)“robot-”,由此得到最終存入?yún)^(qū)塊的加密數(shù)據(jù)[18]。使用該算法安全性高,將上述結(jié)果存入OP_RETURN腳本中,并構(gòu)造信息交互傳輸,得到其在區(qū)塊鏈上的索引ID,機(jī)器人隨時(shí)查詢驗(yàn)證,實(shí)現(xiàn)機(jī)器人數(shù)據(jù)加密傳輸控制。
為了驗(yàn)證基于區(qū)塊鏈技術(shù)的機(jī)器人數(shù)據(jù)加密傳輸控制系統(tǒng)的合理性,在機(jī)器人坐標(biāo)系統(tǒng)模型下進(jìn)行實(shí)驗(yàn)驗(yàn)證分析。實(shí)驗(yàn)仿真平臺(tái)選用Matlab軟件,在仿真軟件中設(shè)計(jì)機(jī)器人坐標(biāo)系統(tǒng)模型如圖4所示。
圖4 機(jī)器人坐標(biāo)系統(tǒng)模型
由圖4可知,該坐標(biāo)系是一個(gè)直角坐標(biāo)系,機(jī)器人位姿可用該坐標(biāo)系表示。使用6個(gè)傳感器采集機(jī)器人運(yùn)動(dòng)數(shù)據(jù),分別為W1、W2、W3、W4、W5、W6,測(cè)試數(shù)據(jù)傳輸過程中的置亂情況,在此基礎(chǔ)上測(cè)試機(jī)器人吞吐量,測(cè)試其信息加密情況。
將6個(gè)傳感器采集到的信息進(jìn)行置亂處理,理想情況下得到的數(shù)據(jù)位置依次為:W1=W6、W2=W3、W3=W2、W4=W5、W5=W4、W6=W1。在置亂情況下,分別使用數(shù)字水印、微加密算法和所提基于區(qū)塊鏈技術(shù)的機(jī)器人數(shù)據(jù)加密傳輸控制系統(tǒng)對(duì)數(shù)據(jù)加密傳輸情況進(jìn)行對(duì)比分析,結(jié)果如圖5所示。
圖5 信息置亂情況下不同方法加密傳輸控制效果對(duì)比分析
由圖5可知:信息置亂情況下不同方法加效果不同,詳細(xì)分析內(nèi)容為:
1)使用數(shù)字水印加密算法信息全部置亂,不會(huì)出現(xiàn)信息丟失現(xiàn)象,但置亂結(jié)果與理想結(jié)果不一致,數(shù)據(jù)位置依次為:W1=W3、W2=W1、W3=W5、W4=W2、W5=W6、W6=W4。說明使用該算法雖然對(duì)每個(gè)信息進(jìn)行水印處理,但容易受到多個(gè)傳感器信息采集混亂影響,導(dǎo)致加密效果較差。
2)使用微加密算法,信息無法全部置亂,會(huì)出現(xiàn)信息丟失現(xiàn)象,置亂結(jié)果與理想結(jié)果不一致,數(shù)據(jù)位置依次為:W1=W3、W2=W2、W3=W5、W4=W1、W6=W6。說明使用該算法,加密力度不夠,容易受到多個(gè)傳感器信息采集混亂影響,導(dǎo)致加密效果較差。
3)使用基于區(qū)塊鏈加密傳輸控制方法,信息全部置亂,不會(huì)出現(xiàn)信息丟失現(xiàn)象,置亂結(jié)果與理想結(jié)果一致,數(shù)據(jù)位置依次為:W1=W6、W2=W3、W3=W2、W4=W5、W5=W4、W6=W1。
當(dāng)數(shù)據(jù)在沒有被外界黑客攻擊情況下,機(jī)器人所能接收到的信息即為吞吐量,改變信息接收量來驗(yàn)證吞吐量對(duì)信息加密情況。
分別使用數(shù)字水印、微加密算法和基于區(qū)塊鏈技術(shù)的機(jī)器人數(shù)據(jù)加密傳輸控制系統(tǒng)對(duì)信息吞吐量進(jìn)行對(duì)比分析,設(shè)置數(shù)據(jù)接收量為0~105 bit,測(cè)試不同方法的吞吐量,吞吐量越高則表明數(shù)據(jù)加密的壓縮解壓性能越好,數(shù)據(jù)加密效率越好。實(shí)驗(yàn)結(jié)果如圖6所示。
圖6 不同信息吞吐量情況下不同方法加密效果對(duì)比分析
由圖6可知:使用數(shù)字水印加密算法,數(shù)據(jù)吞吐量平均值為0.6 Gbps;使用微加密算法,數(shù)據(jù)吞吐量平均值為0.6 Gbps;使用基于區(qū)塊鏈技術(shù)的機(jī)器人數(shù)據(jù)加密傳輸控制系統(tǒng),數(shù)據(jù)吞吐量平均值為0.95 Gbps。通過上述分析結(jié)果可知,使用基于區(qū)塊鏈技術(shù)的機(jī)器人數(shù)據(jù)加密傳輸控制系統(tǒng)的加密效率更好。
利用區(qū)塊鏈技術(shù)對(duì)機(jī)器人數(shù)據(jù)進(jìn)行加密傳輸控制,采用區(qū)塊存儲(chǔ)數(shù)據(jù),通過區(qū)塊鏈加密技術(shù)和協(xié)商機(jī)制實(shí)現(xiàn)數(shù)據(jù)加密傳輸,具有較好的安全性。此方案具有安全性高、實(shí)用性強(qiáng)、成本低的特點(diǎn)。該研究技術(shù)也可廣泛應(yīng)用于物聯(lián)網(wǎng)設(shè)備數(shù)據(jù)交互、大數(shù)據(jù)隱私保護(hù)、電子證據(jù)保存與識(shí)別等技術(shù)領(lǐng)域。