王愛兵
(南京慧智靈杰信息技術(shù)有限公司,江蘇南京 210012)
近年來,我國社區(qū)矯正工作獲得迅猛發(fā)展,信息化建設(shè)工作也在逐步推進(jìn)。但是,由于我國社區(qū)矯正工作實施較晚,信息化技術(shù)較為薄弱,造成系統(tǒng)中存儲的數(shù)據(jù)不規(guī)范且標(biāo)準(zhǔn)不統(tǒng)一,不利于后續(xù)的數(shù)據(jù)共享與整合,所以我國社區(qū)矯正工作當(dāng)前的燃眉之急就是如何高效、安全地存儲監(jiān)獄、司法等單位的數(shù)據(jù)。針對數(shù)據(jù)安全存儲問題,我國眾多學(xué)者進(jìn)行了相關(guān)研究。吳萬青等[1]設(shè)計了一種基于噪聲前綴樹結(jié)構(gòu)的軌跡數(shù)據(jù)發(fā)布方法,解決了位置服務(wù)軟件存在的用戶隱私泄密風(fēng)險;康海燕等[2]基于數(shù)字加密技術(shù)實現(xiàn)了跨醫(yī)院信息共享過程中存在的病人隱私信息泄露問題。參考以上資料,本文針對社區(qū)矯正系統(tǒng)數(shù)據(jù)分布式安全存儲方法展開研究。
社區(qū)矯正系統(tǒng)數(shù)據(jù)主要指系統(tǒng)待存儲的由監(jiān)獄、司法等機(jī)關(guān)單位收集而來的矯正人員相關(guān)信息數(shù)據(jù),這類數(shù)據(jù)不僅數(shù)據(jù)量較大,而且具有多維異構(gòu)性,在本文設(shè)計的數(shù)據(jù)分布式安全存儲方法中,首先需要對待存儲數(shù)據(jù)進(jìn)行采集與處理[3]。為實現(xiàn)社區(qū)矯正系統(tǒng)數(shù)據(jù)的采集,本文采用多個OPC服務(wù)器在社區(qū)矯正系統(tǒng)與待采集點(diǎn)之間建立一個連接,然后以一定的采集頻率,從各單位服務(wù)器上進(jìn)行數(shù)據(jù)的實時采集。一般來說,這種方法采集的社區(qū)矯正系統(tǒng)待存儲數(shù)據(jù)為時間序列數(shù)據(jù),也就是按時間先后順序采集的數(shù)據(jù)序列,受采集服務(wù)器自身及外界因素的影響,采集的原始數(shù)據(jù)可能會存在缺失、離群等異?,F(xiàn)象,所以在進(jìn)行社區(qū)矯正系統(tǒng)數(shù)據(jù)存儲之前,需要對原始數(shù)據(jù)進(jìn)行預(yù)處理。針對社區(qū)矯正系統(tǒng)待存儲數(shù)據(jù)中部分無意義的離群數(shù)據(jù),本文通過中值修復(fù)法進(jìn)行數(shù)據(jù)處理,其計算公式如下所示:
式中,X(t)表示社區(qū)矯正系統(tǒng)數(shù)據(jù)的離群數(shù)據(jù)點(diǎn);X(t- 1)、X(t+ 1) 分別表示離群數(shù)據(jù)點(diǎn)前一時刻與后一時刻的鄰近值。如式(1)所示,本文在處理社區(qū)矯正系統(tǒng)數(shù)據(jù)中離群數(shù)據(jù)點(diǎn)時,主要通過該點(diǎn)前后兩個鄰近點(diǎn)的均值來取代離群點(diǎn)。針對社區(qū)矯正系統(tǒng)數(shù)據(jù)的缺失數(shù)據(jù),本文采用EM 插補(bǔ)算法進(jìn)行缺失數(shù)據(jù)修復(fù)。假設(shè)社區(qū)矯正系統(tǒng)數(shù)據(jù)的采樣頻率為P,滑動窗口寬度為W,那么利用EM 插補(bǔ)算法修復(fù)缺失數(shù)據(jù)的具體流程如下:如果滑動窗口內(nèi)相鄰兩個數(shù)據(jù)點(diǎn)的時間間隔Δt< 2 ×P,說明待存儲數(shù)據(jù)正常到達(dá)滑動窗口,不存在數(shù)據(jù)缺失現(xiàn)象,不用做任何處理;如果2 ×P≤Δt≤P×Y,其中,Y為數(shù)據(jù)缺失閾值,說明此時窗口內(nèi)相鄰兩個數(shù)據(jù)點(diǎn)之間存在缺失點(diǎn)。但因為在缺失閾值之下,采用式(1)所示的中值法進(jìn)行修復(fù)處理即可;如果Δt≥P×Y,此時需要利用EM 算法對缺失數(shù)據(jù)進(jìn)行修復(fù),其計算公式如下所示:
式中,Xi′(t)表示社區(qū)矯正系統(tǒng)數(shù)據(jù)缺失點(diǎn)的插補(bǔ)值;N表示滑動窗口中數(shù)據(jù)點(diǎn)的數(shù)量;G(Bi)表示滑動窗口中數(shù)據(jù)點(diǎn)可以進(jìn)行插補(bǔ)的后驗概率,其中,Bi為隱變量。通過以上步驟,本文可以得到高質(zhì)量的社區(qū)矯正系統(tǒng)待存儲數(shù)據(jù),為后續(xù)存儲奠定數(shù)據(jù)基礎(chǔ)。
對于具有規(guī)模大、跨越時空范圍廣的社區(qū)矯正系統(tǒng)數(shù)據(jù)而言,為實現(xiàn)數(shù)據(jù)的分布式存儲,需要將采集的數(shù)據(jù)劃分為獨(dú)立的多塊數(shù)據(jù)[4]。為最大程度上實現(xiàn)社區(qū)矯正系統(tǒng)數(shù)據(jù)的公平分組,首先需要獲取數(shù)據(jù)的初始分布。為描述社區(qū)矯正系統(tǒng)數(shù)據(jù)初始分布,本文設(shè)定一個m×m的數(shù)據(jù)初始分布矩陣Z,矩陣中各元素即代表社區(qū)矯正系統(tǒng)數(shù)據(jù),已知初始分布矩陣中包含了m批時段的社區(qū)矯正數(shù)據(jù),且利用Sm表示每一批的數(shù)據(jù)分布矩陣,那么為兼顧數(shù)據(jù)量比重的需求,實現(xiàn)均衡化分組,本文為數(shù)據(jù)量添加了式(3) 所示的權(quán)重ωm:
式(3)中,i、j表示每批數(shù)據(jù)分布矩陣Sm中的元素。在此基礎(chǔ)上,即可得到社區(qū)矯正系統(tǒng)數(shù)據(jù)初始分布矩陣,表達(dá)式如式(4)所示:
在獲取了社區(qū)矯正系統(tǒng)數(shù)據(jù)的初始分布之后,本文通過圖劃分算法對數(shù)據(jù)進(jìn)行分組:首先將數(shù)據(jù)的初始分布矩陣映射成圖數(shù)據(jù)結(jié)構(gòu);然后以圖結(jié)構(gòu)中節(jié)點(diǎn)之間的鄰近關(guān)系,將數(shù)據(jù)網(wǎng)絡(luò)劃分為若干個組;最后計算各組之間的數(shù)據(jù)量是否均衡,如果未均衡需要將劃分結(jié)果逐級回溯細(xì)化,恢復(fù)成原始圖數(shù)據(jù)結(jié)構(gòu),直至劃分結(jié)果可以保持?jǐn)?shù)據(jù)量均衡,以此作為最終的社區(qū)矯正系統(tǒng)數(shù)據(jù)分組結(jié)果。綜上,本文通過對采集社區(qū)矯正系統(tǒng)數(shù)據(jù)進(jìn)行分組,使其劃分成若干獨(dú)立數(shù)據(jù)塊,從而將劃分結(jié)果均勻分配到區(qū)塊鏈節(jié)點(diǎn)上,實現(xiàn)分布式存儲。
區(qū)塊鏈?zhǔn)且粋€去中心化的網(wǎng)絡(luò)結(jié)構(gòu),由于該結(jié)構(gòu)中的每個區(qū)塊上的交易都需要真實的數(shù)字簽名所證明,所以如果本文采用區(qū)塊鏈技術(shù)存儲社區(qū)矯正系統(tǒng)數(shù)據(jù)[5],不僅可以實現(xiàn)數(shù)據(jù)的公開透明存儲,而且不會受外界網(wǎng)絡(luò)攻擊,不會產(chǎn)生實際傷害。在利用區(qū)塊鏈技術(shù)存儲社區(qū)矯正系統(tǒng)數(shù)據(jù)時,首先需要將采集的社區(qū)矯正系統(tǒng)數(shù)據(jù)上傳至區(qū)塊鏈網(wǎng)絡(luò)結(jié)構(gòu)中。上傳數(shù)據(jù)時,社區(qū)矯正系統(tǒng)需要進(jìn)行身份注冊從而獲得簽名與證書,簽名與證書主要用于加密上傳數(shù)據(jù)。與此同時,在社區(qū)矯正系統(tǒng)數(shù)據(jù)上傳至區(qū)塊鏈的過程中,需要對上傳數(shù)據(jù)的重復(fù)性進(jìn)行檢查,在檢查上傳數(shù)據(jù)的重復(fù)性時,需要獲取文件指紋。假設(shè)數(shù)據(jù)加密后密文M的文件指紋為u( )M,其中密文M的計算公式為:
式中,E表示加密算法;Y表示社區(qū)矯正系統(tǒng)數(shù)據(jù)的原文;K表示加密的密鑰。根據(jù)數(shù)據(jù)的文件指紋即可執(zhí)行數(shù)據(jù)的重復(fù)性檢查,已知上傳數(shù)據(jù)的文件指紋為u(M),假設(shè)區(qū)塊鏈已存儲數(shù)據(jù)的文件指紋為u′(M),如果存在式(6)所示條件則說明區(qū)塊鏈上已經(jīng)存在數(shù)據(jù)密文M,將停止數(shù)據(jù)上傳:
如果不存在式(6) 所示條件,區(qū)塊鏈網(wǎng)絡(luò)結(jié)構(gòu)會選擇當(dāng)前區(qū)塊的區(qū)塊頭參數(shù)作為隨機(jī)參數(shù),實現(xiàn)社區(qū)矯正系統(tǒng)的數(shù)據(jù)上傳。按照上述流程,將社區(qū)矯正系統(tǒng)數(shù)據(jù)上傳至區(qū)塊鏈網(wǎng)絡(luò)結(jié)構(gòu)中的各個區(qū)塊上之后,需要進(jìn)行區(qū)塊節(jié)點(diǎn)的共識。具體流程如下:首先進(jìn)行組內(nèi)共識,將社區(qū)矯正系統(tǒng)提交的數(shù)據(jù)存儲請求進(jìn)行整合排序,為每一個數(shù)據(jù)區(qū)塊附上相應(yīng)的數(shù)字簽名與哈希值,并對組內(nèi)各數(shù)據(jù)區(qū)塊的哈希值進(jìn)行驗證,將驗證結(jié)果與數(shù)字全名一起反饋至主基站;然后進(jìn)入委員會共識階段,由于在主基站內(nèi)匯總了來自各個組內(nèi)基站的反饋結(jié)果,所以主基站可以根據(jù)反饋結(jié)果判斷是否執(zhí)行共識指令,如果超過半數(shù)的反饋結(jié)果對待上傳區(qū)塊的合法性進(jìn)行認(rèn)同,那么主基站就會控制社區(qū)矯正系統(tǒng)數(shù)據(jù)塊存儲至該區(qū)塊上,并將存儲信息廣播至委員會網(wǎng)絡(luò),對其他節(jié)點(diǎn)進(jìn)行廣播,當(dāng)其他節(jié)點(diǎn)確認(rèn)廣播消息后,區(qū)塊鏈節(jié)點(diǎn)共識成功,至此實現(xiàn)了社區(qū)矯正系統(tǒng)數(shù)據(jù)的分布式安全存儲。
本章針對社區(qū)矯正系統(tǒng)數(shù)據(jù)分布式安全存儲方法進(jìn)行仿真實驗,并與兩個傳統(tǒng)方法進(jìn)行對比:基于云計算的社區(qū)矯正系統(tǒng)數(shù)據(jù)存儲方法、基于邊緣計算的社區(qū)矯正系統(tǒng)數(shù)據(jù)存儲方法,以此驗證本文設(shè)計方法的性能。在本次仿真實驗中,首先在AMD Ryzen 3 PRO 1200 四核處理器、Ubuntu 20.04 操作系統(tǒng)的平臺上搭建社區(qū)矯正系統(tǒng)的仿真模型,示意圖如圖1所示。
圖1 社區(qū)矯正系統(tǒng)仿真模型
在圖1 所示的社區(qū)矯正系統(tǒng)仿真模型中,待存儲的數(shù)據(jù)主要為社區(qū)矯正人員的基本檔案信息,如表1所示。
表1 社區(qū)矯正系統(tǒng)存儲數(shù)據(jù)詳情
如表1所示,在本次仿真實驗中,社區(qū)矯正系統(tǒng)待存儲數(shù)據(jù)總量為1 000組,為避免實驗結(jié)果的偶然性,本次實驗控制每一種存儲方法下待存儲的數(shù)據(jù)從100組依次遞增到1 000 組?;谝陨蟽?nèi)容,本文以存儲數(shù)據(jù)的安全性為存儲方法的性能指標(biāo),分析不同存儲方法在存儲不同數(shù)據(jù)量數(shù)據(jù)時的性能表現(xiàn)。
在本次仿真實驗中,為了更加直觀地呈現(xiàn)不同存儲方法下的社區(qū)矯正系統(tǒng)數(shù)據(jù)安全性,模擬網(wǎng)絡(luò)攻擊者分別向社區(qū)矯正系統(tǒng)發(fā)起網(wǎng)絡(luò)攻擊,模擬攻擊者發(fā)出的網(wǎng)絡(luò)攻擊有以下兩種數(shù)據(jù)篡改的方法:一是入侵系統(tǒng)存儲節(jié)點(diǎn)篡改數(shù)據(jù);二是入侵傳輸信道,偽造數(shù)據(jù)包。在模擬網(wǎng)絡(luò)攻擊結(jié)束后,分別統(tǒng)計并整理各方法下社區(qū)矯正系統(tǒng)中被成功篡改的數(shù)據(jù)量,從而評估存儲數(shù)據(jù)的安全性,具體實驗結(jié)果如表2所示。
表2 不同數(shù)據(jù)存儲方法的實驗結(jié)果對比
從表2 數(shù)據(jù)可以看出,隨著社區(qū)矯正系統(tǒng)存儲數(shù)據(jù)的數(shù)據(jù)量的不斷增加,兩種傳統(tǒng)方法下存儲數(shù)據(jù)被網(wǎng)絡(luò)攻擊成功篡改的概率也呈遞增狀態(tài)。其中,基于云計算的數(shù)據(jù)存儲方法下攻擊成功概率平均為7.98%,基于邊緣計算的數(shù)據(jù)存儲方法下攻擊成功概率平均為4.65%。但在本文設(shè)計方法下,社區(qū)矯正系統(tǒng)存儲的數(shù)據(jù)被網(wǎng)絡(luò)攻擊成功篡改的概率不會隨著存儲數(shù)據(jù)量的增加而提升,其攻擊成功概率平均為0.48%,不僅遠(yuǎn)遠(yuǎn)小于傳統(tǒng)方法,而且未超過1%,這主要是因為在本文設(shè)計的方法中,社區(qū)矯正系統(tǒng)數(shù)據(jù)均以分布式形式被封裝存儲至區(qū)塊鏈的各個區(qū)塊中,而區(qū)塊鏈中數(shù)據(jù)不會被篡改,所以即使社區(qū)矯正系統(tǒng)受到網(wǎng)絡(luò)攻擊,系統(tǒng)中存儲的數(shù)據(jù)被篡改的可能性也較小。由此可以說明,本文設(shè)計方法優(yōu)于傳統(tǒng)的數(shù)據(jù)存儲方法,該方法可以顯著提升社區(qū)矯正系統(tǒng)存儲數(shù)據(jù)的安全性。
隨著社區(qū)矯正系統(tǒng)存儲數(shù)據(jù)規(guī)模的不斷遞增,數(shù)據(jù)安全愈發(fā)難以保證,所以本文提出一種基于區(qū)塊鏈的社區(qū)矯正系統(tǒng)數(shù)據(jù)分布式安全存儲方法。文中首先采集并處理了系統(tǒng)待存儲數(shù)據(jù),然后對待存儲數(shù)據(jù)進(jìn)行分組,得到若干數(shù)據(jù)塊,結(jié)合區(qū)塊鏈技術(shù)實現(xiàn)了數(shù)據(jù)塊的分布式安全存儲,最后本文通過仿真實驗對設(shè)計存儲方法的性能進(jìn)行驗證,實驗結(jié)果顯示本文設(shè)計方法可以保證社區(qū)矯正系統(tǒng)存儲數(shù)據(jù)的安全性與可靠性,對提升我國社區(qū)矯正工作的信息化水平具有重要的現(xiàn)實意義。