王爱兵
(南京慧智灵杰信息技术有限公司,江苏南京 210012)
近年来,我国社区矫正工作获得迅猛发展,信息化建设工作也在逐步推进。但是,由于我国社区矫正工作实施较晚,信息化技术较为薄弱,造成系统中存储的数据不规范且标准不统一,不利于后续的数据共享与整合,所以我国社区矫正工作当前的燃眉之急就是如何高效、安全地存储监狱、司法等单位的数据。针对数据安全存储问题,我国众多学者进行了相关研究。吴万青等[1]设计了一种基于噪声前缀树结构的轨迹数据发布方法,解决了位置服务软件存在的用户隐私泄密风险;康海燕等[2]基于数字加密技术实现了跨医院信息共享过程中存在的病人隐私信息泄露问题。参考以上资料,本文针对社区矫正系统数据分布式安全存储方法展开研究。
社区矫正系统数据主要指系统待存储的由监狱、司法等机关单位收集而来的矫正人员相关信息数据,这类数据不仅数据量较大,而且具有多维异构性,在本文设计的数据分布式安全存储方法中,首先需要对待存储数据进行采集与处理[3]。为实现社区矫正系统数据的采集,本文采用多个OPC服务器在社区矫正系统与待采集点之间建立一个连接,然后以一定的采集频率,从各单位服务器上进行数据的实时采集。一般来说,这种方法采集的社区矫正系统待存储数据为时间序列数据,也就是按时间先后顺序采集的数据序列,受采集服务器自身及外界因素的影响,采集的原始数据可能会存在缺失、离群等异常现象,所以在进行社区矫正系统数据存储之前,需要对原始数据进行预处理。针对社区矫正系统待存储数据中部分无意义的离群数据,本文通过中值修复法进行数据处理,其计算公式如下所示:
式中,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%,这主要是因为在本文设计的方法中,社区矫正系统数据均以分布式形式被封装存储至区块链的各个区块中,而区块链中数据不会被篡改,所以即使社区矫正系统受到网络攻击,系统中存储的数据被篡改的可能性也较小。由此可以说明,本文设计方法优于传统的数据存储方法,该方法可以显著提升社区矫正系统存储数据的安全性。
随着社区矫正系统存储数据规模的不断递增,数据安全愈发难以保证,所以本文提出一种基于区块链的社区矫正系统数据分布式安全存储方法。文中首先采集并处理了系统待存储数据,然后对待存储数据进行分组,得到若干数据块,结合区块链技术实现了数据块的分布式安全存储,最后本文通过仿真实验对设计存储方法的性能进行验证,实验结果显示本文设计方法可以保证社区矫正系统存储数据的安全性与可靠性,对提升我国社区矫正工作的信息化水平具有重要的现实意义。