杨荣霞
(南方电网大数据服务有限公司, 广东, 广州 510000)
系统数据库中存储了诸多智能变电站机密信息,如果没有做好数据库数据保护工作,极易出现数据被篡改、完整性和真实性不确定等问题[1-3]。然而,供电局运维工作人员在使用系统数据时,对其真实性要求极高,一旦使用了篡改、不完整的监测数据,会导致智能变电站出现故障维修不及时、维修难度增加、电力故障等问题,造成严重经济损失[4-5]。基于此,系统数据库防篡改已经成为数据安全保护重要手段。
如今相关学者得到了一些较好的研究成果。文献[6]将信息共享网络作为研究对象,通过分析信息共享网络数据共享过程,将RDTP协议应用在网络数据共享的数据处理和传输层中,防止共享数据被篡改。文献[7]面对安全监控系统数据存在的数据库安全问题,结合捕获机制和数据加密两种技术,识别、跟踪和记录数据篡改行为,防止数据库数据被篡改。但是,由于以上方法没有对数据库的嵌入式水印的加密进行深入分析,忽略了数据库加密相应函数的建立,导致已有方法存在变电站系统数据库访问平均响应时间较长问题。
为解决以上问题,本文提出智能变电站运维系统实时监测数据库防篡改方法。为优化数据库访问的效率,增强数据防篡改效果,将水印分割成多个水印信息,并建立数据库嵌入水印加密函数,优化数据库的加密结果。基于此,提取嵌入水印,恢复数据库篡改数据,最终完成智能变电站运维系统实时监测数据库防篡改。
1.1.1 预处理数字水印
为了增强水印的隐蔽性,通过数制转换的方式预处理水印,将水印分割成多个小的水印信息。假设此次研究选择的水印信息为U,则其预处理公式如下:
(1)
式(1)中,j表示最小指数,k表示U分解个数,2j表示k-1位进制数,ai表示U分解后第i个水印信息,ui表示U分解后第i个水印[8]。式(1)具有如下性质:u0=j;ui=ai-1;1
依据式(1)预处理得到的ui转化为j位二进制的形式。若ui转化的二进制数不满足j,则需要采用0在其转化的二进制数前面补齐位数。
1.1.2 嵌入数字水印
由于数字水印加密数据会改变数据库和MD5值,且不同大小数字水印所能加密的信息容量有限,为此,初始化数据库,计算预处理后的数字水印容量和MD5值,则有:
S′=f(S,q1)
(2)
O=∏ (|Ri|!)
(3)
M=g(S′)
(4)
式(2)~式(4)中,S′表示初始化后的智能变电站运维系统实时监测数据库,S表示智能变电站运维系统实时监测数据库,q1表示数字水印嵌入秘钥生成元,f表示网页属性重新排序映射函数,O表示数字水印容量,Ri表示第i个水印的标签中的属性个数,“!”表示阶乘符号,M表示MD5值,g表示Meijer-G函数。
根据O、q和M值,将数字水印嵌入系统实时监测数据库中,则有:
D′=h(M,O,q2)
(5)
式(5)中,D′表示嵌入水印后的数据库数据,h表示数字水印加密响应函数,q2表示数字水印嵌入密钥集。式(5)使用MD5值调整数字水印容量,以增强数字水印安全性。
1.1.3 加密系统实时监测数据库
按照式(5)所示的计算过程,将数字水印嵌入智能变电站运维系统实时监测数据库后,需要对系统实时监测数据库进行加密,计算加密公钥和私钥的秘钥对。假设,公钥秘钥对为a和b,私钥秘钥对为c和b,其计算公式如下:
(6)
式(6)中,K表示(p-1,q-1)的最小公倍数值,ψ表示最小公倍数求取符号,p和q表示两大质数,由伪随机数生成,ζ表示最大公约数,y表示求余函数。
如式(6)所示的加密秘钥对计算公式,求取公钥a和私钥c均需要满足两个条件,且私钥c由公钥a计算得到,则水印加密公钥和私钥具有如图1所示的关系。
图1 水印加密公钥和私钥关系图
根据图1所示的水印加密公钥和私钥关系,设计的系统实时监测数据库嵌入水印加密函数如下式所示:
E′=Eayb
(7)
式(7)中,E′表示系统实时监测数据库密文,E表示系统实时监测数据库明文。
在嵌入数字水印以及嵌入水印加密过程中的数据D′都是完好无误的,则数字水印十进制编码χ也是正确的。此时,数据库数据出现篡改问题,会改变嵌入水印十进制编码,若嵌入水印十进制编码χ中部分编码被更改,则被篡改后的嵌入水印十进制编码χ′可表示为
χ′=χ+Δχ
(8)
式(8)中,Δχ表示被篡改的嵌入水印十进制编码。基于此,假设嵌入水印生成矩阵为G,在理想情况下破译嵌入水印编码的译码矩阵为H,此时的H属于绝对可逆矩阵。由于H在理想状态下属于绝对可逆,因此先对H进行检测,判断H是否可逆,若H可逆,则系统实时监测数据库未发生数据篡改问题,若H不可逆,则系统实时监测数据库发生数据篡改。
在这一过程中,译码矩阵H未曾经过检测,难以判断其译码结果是否准确,为此将χ的编码信息记为校验元A,编码矩阵记为二次生成元B,根据B通过下式得到编码矩阵逆元C,则有:
QH-1=D1
(9)
D1B=C
(10)
式(9)、式(10)中,D1表示译码得到的原始信息。将式(10)得到的C与A进行比较,若A=C,则认为系统实时监测数据库嵌入水印后的数据未发生篡改;若A≠C,则认为系统实时监测数据库嵌入水印后的数据发生篡改。
1.3.1 提取嵌入水印
根据图1所示的水印加密公钥和私钥关系,将式(7)进行反运算,则有:
E=E′cyb
(11)
根据式(11)可完成嵌入水印解密过程,此时即可提取解密后的嵌入水印。为此,假设可能被篡改的数据库数据流为D″,针对式(5)进行逆变换,得到逆变换加密响应函数h-1,根据式(3)的计算结果,计算h-1与嵌入水印序列x的相关性r,则有:
(12)
1.3.2 恢复数据库篡改数据
假设系统实时监测数据库中嵌入水印失效比例为P1,提取到系统实时监测数据库中嵌入水印比例为P2,划分系统实时监测数据库,则有:
(13)
Dd=H(q1,H(vd,q1))ym
(14)
式(14)中,H(·)表示嘻哈函数,vd表示元组d的主键值。若Dd中包含嵌入水印,需要确定水印属性1和属性2的索引X和Y,则有:
X=H(q2,H(vd,q2))yn
(15)
Y=H(q2,H(vd/2,q2))yn
(16)
式(15)、式(16)中,n表示数据中的属性数。若式(15)、式(16)中的属性2索引Y=Y+1yn=X,则得到的属性2索引Y值加1。重复计算式(13)和式(14),不断更新水印属性1和属性2的索引X和Y属性值,得到恢复后的系统实时监测数据库数据D′,实现智能变电站运维系统实时监测数据库防篡改。数据库防篡改方法实现的流程图如图2所示。
图2 数据库防篡改方法流程图
选择文献[6]方法和文献[7]方法作为此次实验比较方法,将智能变电站运维系统实时监测数据库作为此次实验研究对象,在MALTAB 2019a软件上,验证此次研究的智能变电站运维系统实时监测数据库防篡改方法。实验过程中选择的计算机处理器为Intel(R)core(TM)i7-6600U@2.81 GHz型CPU,其内存为512 GB。
此次实验选择的智能变电站运维系统实时监测数据库被划分为监测、存储、运维诊断、数据配置4个区域,根据这四个区域,采用MALTAB 2019a软件仿真系统实时监测数据库,得到的智能变电站运维系统实时监测数据库仿真图,如图3所示。
图3 系统实时监测数据库数据仿真图
2.2.1 数据传输过程加解密测试
在数据库传输数据的过程中,数据库服务器端会检测数据库在传输文件过程中的文件是否被篡改。基于此,将数据库传输文件过程中的加解密时间作为数据传输过程加解密测试指标,其计算公式如式(17)所示:
T=T2-T1
(17)
式(17)中,T表示数据库传输文件过程加解密时间;T1表示数据库传输文件加解密预处理服务器收到数据时的时间;T2表示数据库传输文件加解密结束时的时间。根据式(17),改变数据库传输文件大小,比较3组防篡改方法数据库传输文件过程加解密性能。其加解密时间越短,防篡改方法性能越优。
2.2.2 数据库响应测试
使用http-load压力测试工具,在系统实时监测数据库上生成不同的用户并发数,将每位用户访问数据库持续时间设置为1 s。在测试过程中,http-load压力测试工具共生成900位用户,每间隔1 s增加一位用户,直至用户数达到900位用户停止访问数据库,输出数据库在不同并发数下响应访问时间。
2.3.1 数据传输过程加解密测试结果
根据式(17)所示的计算过程,得到的数据库传输文件过程加解密测试结果如图4所示。
图4 数据传输过程加解密测试结果
从图4中可以看出,本文方法相较文献方法,加解密数据库传输不同大小文件平均时间分别少380 ms、560 ms。
2.3.2 数据库响应时间测试结果
根据此次实验设计的数据库响应测试过程和评价标准,得到的数据库平均响应时间测试结果如图5所示。
图5 数据库平均响应时间测试结果
从图5中可以看出,3组防篡改方法分别放入如图2所示的系统实时监测数据库中,均在不同程度上增加了系统平均响应时间。其中,文献[6]方法和文献[7]方法,均在数据库原有平均响应时间基础上增加了550 ms;而研究系统仅在数据库原有平均响应时间基础上增加了350 ms,较基于信息共享的防篡改方法和基于RSA算法的防篡改方法减少了200 ms。
2.3.3 数据可用度测试结果
在本节中以数据可用度为指标,指标的计算公式为
(18)
式(18)中,N表示可信数据总数,M表示数据库中存在的数据总数。
将上述数据作为测试指标,对文献[6]方法、文献[7]方法以及本文方法进行测试,测试结果如图6所示。
图6 不同方法数据可用度
根据图6可知,在用户并发数逐渐增多过程中,文献[6]方法和文献[7]方法的数据可用度最高为85%,最低为72%;本文方法的数据可用度最高为100%,最低为92%。由此说明,本文方法应用过程的数据可用度更高。
为了改善变电站系统数据库访问的平均响应时间较长问题,本论文提出智能变电站运维系统实时监测数据库防篡改方法。计算预处理后的数字水印容量和MD5值,建立数据库嵌入水印加密函数;提取嵌入水印,恢复数据库篡改数据,完成智能变电站运维系统实时监测数据库防篡改。实验结果证明了所提方法提升了数据库加密速度,且数据可用度更高,具有更理想的应用效果。
但是此次研究并未考虑智能变电站运维系统被攻破的情况下,系统实时监测数据库数据被篡改情况。因此在今后研究中,还需要从智能变电站运维系统的安全性角度,研究系统实时监测数据库数据防篡改方法。