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

圖1 社區矯正系統仿真模型
在圖1 所示的社區矯正系統仿真模型中,待存儲的數據主要為社區矯正人員的基本檔案信息,如表1所示。

表1 社區矯正系統存儲數據詳情
如表1所示,在本次仿真實驗中,社區矯正系統待存儲數據總量為1 000組,為避免實驗結果的偶然性,本次實驗控制每一種存儲方法下待存儲的數據從100組依次遞增到1 000 組?;谝陨蟽热荩疚囊源鎯祿陌踩詾榇鎯Ψ椒ǖ男阅苤笜?,分析不同存儲方法在存儲不同數據量數據時的性能表現。
在本次仿真實驗中,為了更加直觀地呈現不同存儲方法下的社區矯正系統數據安全性,模擬網絡攻擊者分別向社區矯正系統發起網絡攻擊,模擬攻擊者發出的網絡攻擊有以下兩種數據篡改的方法:一是入侵系統存儲節點篡改數據;二是入侵傳輸信道,偽造數據包。在模擬網絡攻擊結束后,分別統計并整理各方法下社區矯正系統中被成功篡改的數據量,從而評估存儲數據的安全性,具體實驗結果如表2所示。

表2 不同數據存儲方法的實驗結果對比
從表2 數據可以看出,隨著社區矯正系統存儲數據的數據量的不斷增加,兩種傳統方法下存儲數據被網絡攻擊成功篡改的概率也呈遞增狀態。其中,基于云計算的數據存儲方法下攻擊成功概率平均為7.98%,基于邊緣計算的數據存儲方法下攻擊成功概率平均為4.65%。但在本文設計方法下,社區矯正系統存儲的數據被網絡攻擊成功篡改的概率不會隨著存儲數據量的增加而提升,其攻擊成功概率平均為0.48%,不僅遠遠小于傳統方法,而且未超過1%,這主要是因為在本文設計的方法中,社區矯正系統數據均以分布式形式被封裝存儲至區塊鏈的各個區塊中,而區塊鏈中數據不會被篡改,所以即使社區矯正系統受到網絡攻擊,系統中存儲的數據被篡改的可能性也較小。由此可以說明,本文設計方法優于傳統的數據存儲方法,該方法可以顯著提升社區矯正系統存儲數據的安全性。
隨著社區矯正系統存儲數據規模的不斷遞增,數據安全愈發難以保證,所以本文提出一種基于區塊鏈的社區矯正系統數據分布式安全存儲方法。文中首先采集并處理了系統待存儲數據,然后對待存儲數據進行分組,得到若干數據塊,結合區塊鏈技術實現了數據塊的分布式安全存儲,最后本文通過仿真實驗對設計存儲方法的性能進行驗證,實驗結果顯示本文設計方法可以保證社區矯正系統存儲數據的安全性與可靠性,對提升我國社區矯正工作的信息化水平具有重要的現實意義。