发明内容
为了解决上述问题,本发明提供一种基于检测系统文件变化的防篡改系统,所述系统包括:
文件获取模块,获取系统文件;
文件加密模块,对系统文件进行编码获得编码序列,对编码序列进行扩充划分获得数值序列,对数值序列进行多项式拟合获得数值序列的拟合多项式和残差序列,将数值序列的拟合多项式的系数作为密钥,将数值序列的残差序列作为密文序列;
数据修正模块,获得数值序列的残差序列的一阶差序列,获得一阶差序列的均值和一阶差序列中每个一阶差值的分散性,根据一阶差序列的均值和一阶差序列中每个一阶差值的分散性,计算残差序列中每个残差值的一阶差值反应的改正数;获得残差序列的多阶差序列,获得多阶差序列的均值以及多阶差序列中每个多阶差值的分散性和方差,根据多阶差序列的均值以及多阶差序列中每个多阶差值的分散性和方差,计算残差序列中每个残差值的多阶差值反应的改正数,根据一阶差值反应的改正数和多阶差值反应的改正数,获得残差序列中残差值的最终改正数;
特征获取模块,将残差序列中的残差值与残差值的最终改正数的和作为改正残差值,将所有改正残差值组成的序列记为改正残差序列,对改正残差序列进行多项式拟合获得改正残差序列的拟合多项式,将改正残差序列的拟合多项式的系数作为残差序列的特征值;将密文序列存储在计算机系统中,将密钥和残差序列的特征值存储在离线设备上;
防篡改检测模块,根据数据修正模块和特征获取模块获得密文的特征值,如果密文与残差序列的特征值不一致,计算机系统中存储的密文已被篡改,及时发出警报或者恢复。
进一步地,所述获得数值序列的残差序列的一阶差序列,包括的步骤为:
将残差序列中任意相邻两个残差值的差的绝对值记为相邻两个残差值的一阶差值,将残差序列中所有相邻两个残差值的一阶差值组成的序列记为一阶差序列。
进一步地,所述获得一阶差序列的均值和一阶差序列中每个一阶差值的分散性,包括的步骤为:
将一阶差序列中所有一阶差值的均值记为一阶差序列的均值,将一阶差序列中每个一阶差值与一阶差序列的均值的差的绝对值记为每个一阶差值的分散性。
进一步地,所述计算残差序列中每个残差值的一阶差值反应的改正数,包括的步骤为:
式中,表示残差序列中第i个残差值的一阶差值反应的改正数,表示一阶差序列中第i个一阶差值左侧相邻的三个一阶差值的方差,表示一阶差序列中第i个一阶差值右侧相邻的三个一阶差值的方差,、分别表示一阶差序列中第i-1个、第i个一阶差值的分散性。
进一步地,所述获得残差序列的多阶差序列,包括的步骤为:
将残差序列的一阶差序列中任意相邻两个一阶差值的差的绝对值记为相邻两个一阶差值的二阶差值,将残差序列的一阶差序列中所有相邻两个一阶差值的二阶差值组成的序列记为残差序列的二阶差序列;同理,将残差序列的j阶差序列中任意相邻两个j阶差值的差的绝对值记为相邻两个j阶差值的j+1阶差值,将残差序列的j阶差序列中所有相邻两个j阶差值的j+1阶差值组成的序列记为残差序列的j+1阶差序列。
进一步地,所述获得多阶差序列的均值以及多阶差序列中每个多阶差值的分散性和方差,包括的步骤为:
将j阶差序列中所有j阶差值的均值记为j阶差序列的均值,将j阶差序列中每个j阶差值与j阶差序列的均值的差的绝对值记为每个j阶差值的分散性,将j阶差序列中任意一个j阶差值与相邻的两个j阶差值的方差记为该j阶差值的方差。
进一步地,所述计算残差序列中每个残差值的多阶差值反应的改正数,包括的步骤为:
式中,表示残差序列中第i个残差值的j阶差值反应的改正数,表示j阶差序列中第i-k个j阶差值的分散性,表示j阶差序列中第i-k个j阶差值的方差,表示j阶差序列中相邻的j+1个j阶差值的方差的和,j表示多阶差值的阶数,表示取绝对值。
进一步地,所述获得残差序列中残差值的最终改正数,包括的步骤为:
式中,表示残差序列中第i个残差值的最终改正数,表示残差序列中第i个残差值的j阶差值反应的改正数,表示残差序列中第i个残差值的符号,j表示j阶差值的阶数,N表示多阶差值的阶数。
本发明实施例至少具有如下有益效果:本发明通过对系统文件的数值序列进行多项式拟合,将数值序列的拟合多项式的系数作为密钥,将数值序列的残差序列作为密文序列,通过对残差序列进行改正,提高残差序列的拟合效果,从而增加残差序列与残差序列的拟合多项式的参数的相关性,将残差序列(密文序列)的拟合多项式的系数作为密文序列的特征值,提高拟合多项式的系数对残差序列的变化的响应速度以及响应程度,通过提高密文序列与密文序列的特征值之间的敏感性,提高系统文件的防篡改检测效果,实现对系统文件的高效防篡改检测。
具体实施方式
为了更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的一种基于检测系统文件变化的防篡改系统,其具体实施方式、结构、特征及其功效,详细说明如下。在下述说明中,不同的“一个实施例”或“另一个实施例”指的不一定是同一实施例。此外,一或多个实施例中的特定特征、结构、或特点可由任何合适形式组合。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。
下面结合附图具体的说明本发明所提供的一种基于检测系统文件变化的防篡改系统的具体方案。
请参阅图1,其示出了本发明一个实施例提供的一种基于检测系统文件变化的防篡改系统,该系统包括以下模块:
文件获取模块S001,用于获取系统文件。
计算机系统中的文件,主要来源于无线网络传输与外部硬件直接传输,防篡改系统将接收到的网络传输文件或外部硬件文件记为系统文件,然后基于系统文件进行防篡改操作。
文件加密模块S002,对系统文件进行编码获得数值序列,对数值序列进行多项式拟合,获得密钥和密文序列。
需要说明的是,数据的防篡改方法主要包括:对数据进行加密防止数据信息的泄漏,然后根据数据的特征值进行防篡改检测,当识别到数据篡改时,及时报警或者恢复数据。因此,数据的特征值对数据的改变越敏感,即当数据发生改变时,改变后数据的特征值与改变前数据的特征值的差异越大,数据的防篡改检测效果越好。本实施例通过对系统文件的数值序列进行多项式拟合,将数值序列的拟合多项式的系数作为密钥,将数值序列的残差序列作为密文序列,将密文序列的拟合多项式的系数作为特征值,通过对密文序列进行改正,提高密文序列与特征值之间的敏感性,提高系统文件的防篡改检测效果,实现对系统文件的高效防篡改检测。
1.对系统文件进行编码获得数值序列。
需要说明的是,待检测的系统文件具有数据形式多样化和数据关系不明确的特点,因此,对系统文件进行防篡改操作,首先需要统一系统文件的数据形式。单纯的对系统文件进行编码后,系统文件的编码序列的数据量大、数据形式单一,且编码序列中数据之间的关系简单,不利于对编码序列进行加密操作以及防篡改检测,需要提高编码序列中数据之间的关系。
在本实施例中,通过文本编码方式对系统文件的数据进行编码,获得系统文件的编码序列,系统文件的编码序列为二值序列,即由0和1两种数码组成的序列。本实施例中的文本编码方式包括但不限于ASCII、Unicode、GBK、UTF-8、UTF-16、GB2312。
在系统文件的编码序列的最后补充多个0,将系统文件的编码序列扩充为长度为的编码序列,将编码序列划分为若干个长度等于第一预设长度的子序列,将每个子序列作为位数等于第一预设长度的二进制数,将所有二进制数对应的十进制数组成的序列记为数值序列,则数值序列的长度为,L表示编码序列的长度,表示第一预设长度,表示向上取整。
在本实施例中,设定第一预设长度=5,在其他实施例中,实施人员可根据需要设置第一预设长度。
2.对数值序列进行多项式拟合,获得密钥和密文序列。
需要说明的是,虽然将系统文件转换为了数值序列,但是数值序列中的数值能够直接通过转换和解码获得系统文件,无法防止系统文件的数据泄露,因此,需要对数值序列进行加密防止系统文件的数据泄露,并且在加密过程中突出系统文件的数据的特征,便于对系统文件的数据进行防篡改检测。
在本实施例中,利用多项式拟合方法,对数值序列进行多项式拟合,获得数值序列的拟合多项式,拟合多项式由若干个变量和每个变量的系数组成,根据拟合多项式获得数值序列中每个数值的拟合值,将数值序列中每个数值与每个数值的拟合值的差作为每个数值的残差值,将数值序列中所有数值的残差值组成的序列记为数值序列的残差序列,残差序列由个残差值组成;将数值序列的拟合多项式的系数作为密钥,将数值序列的残差序列作为密文序列。
数值序列的拟合多项式的系数和残差序列对数值序列的变化敏感,即当数值序列发生改变时,会直接改变拟合多项式的系数,从而导致残差序列发生改变,所有数值序列的拟合多项式的系数和残差序列可以作为数值序列的特征,用于对数值序列进行防篡改检测。
数据修正模块S003,获得残差序列的多阶差序列,计算残差序列中每个残差值的多阶差值反应的改正数,根据多阶差值反应的改正数,获得残差序列中残差值的最终改正数。
需要说明的是,通过数据加密模块,将数值序列转换为密钥和密文序列,其中密文序列为数值序列的残差序列,如果密文序列被篡改,即数值序列的残差序列中残差值被篡改时,无法直接检测出来;因此,本实施例对残差序列进行多项式拟合,将残差序列的拟合多项式的系数作为残差序列的特征值,即密文序列的特征值,进而根据密文序列的特征值实现对系统文件的进行防篡改检测。已知数值序列的残差序列由数值序列和数值序列的拟合多项式决定,因为数值序列没有明确的规律性,所以残差序列分布较混乱,直接对残差序列进行多项式拟合的拟合效果不佳;又因为只有残差序列的多项式拟合的拟合效果越好,残差序列发生改变时,残差序列的拟合多项式变化才越明显,即只有残差序列的多项式拟合的拟合效果越好,残差序列的拟合多项式对残差序列的改变越敏感,残差序列(密文序列)的防篡改检测效果越好。所以为了提高残差序列的拟合多项式的拟合效果,在对残差序列进行多项式拟合之前,先对残差序列进行改正。
进一步需要说明的是,残差序列的规律性主要表现为残差序列中相邻残差值的差值的分布,相邻残差值的差值的差异越小,残差序列规律性越强,同时已知残差值在不同阶差中具有不同的规律表现,所以需要根据残差序列的多个阶差反应残差序列的规律特性,进而确定残差序列的改正数。
1.获得残差序列的一阶差序列,计算残差序列中每个残差值的一阶差值反应的改正数。
将残差序列中任意相邻两个残差值的差的绝对值记为相邻两个残差值的一阶差值,将残差序列中所有相邻两个残差值的一阶差值组成的序列记为一阶差序列,一阶差序列的长度为,L表示编码序列,表示第一预设长度。
需要说明的是,残差序列的一阶差序列分布越平稳,则差值序列的规律性越强,因此,本实施例根据一阶差序列中一阶差值的分布对差值序列中的残差值进行改正。一阶差序值与所有一阶差值的均值的差异越小,阶差值的分散性越小,一阶差值的分布越稳定(稳定于所有一阶差值的均值附近),反之,一阶差序值与所有一阶差值的均值的差异越大,阶差值的分散性越大,一阶差值的分布越不稳定(偏离所有一阶差值的均值);一阶差值的分布越稳定,则残差序列的规律性越强,越有利于残差序列的拟合,即残差序列的多项式拟合的拟合效果越好。
将一阶差序列中所有一阶差值的均值记为一阶差序列的均值,将一阶差序列中每个一阶差值与一阶差序列的均值的差的绝对值记为每个一阶差值的分散性。
一阶差序列中一阶差值的分散性越大,该一阶差值在残差序列中对应的残差值,对残差序列的分布规律性的破坏程度越高,越需要对该一阶差值对应的残差值进行改正,该一阶差值对应的残差值的改正数越大。
因为一阶差序列中的任意一个一阶差值反应了残差序列中的两个残差值的差异,所以一个残差值的平稳性表现在相邻两个一阶差值的分散性中,此时需要根据相邻两个一阶差值的分散性确定一个残差值的改正数。
残差序列中残差值的一阶差值反应的改正数的计算公式为:
式中,表示残差序列中第i个残差值的一阶差值反应的改正数,表示一阶差序列中第i个一阶差值左侧相邻的三个一阶差值的方差,表示一阶差序列中第i个一阶差值右侧相邻的三个一阶差值的方差,、分别表示一阶差序列中第i-1个、第i个一阶差值的分散性;
表示的相对大小,越大,一阶差序列中第i个一阶差值与周围邻域内其他一阶差值的差异性越大,残差序列中第i个残差值的一阶差值反应的改正数越小;第i-1个、第i个一阶差值的分散性、越大,则残差序列中第i个残差值对残差序列中所有残差值的分布规律性的破坏程度越大,残差序列中第i个残差值的一阶差值反应的改正数越大。
需要说明的是,本实施例中存在一些特征的分析和计算时,需要对序列中的元素进行操作时,可能会超出序列的边界,并且需要使用序列边界之外的元素进行特征计算的情况,此种情况下本实施例为了保证可以实施,不进行相应的特征计算。例如,本实施例中,在计算残差序列中前3个残差值和后3个残差值时,会超出一阶差序列的边界,因此,不对残差序列中前面3个残差值和最后3个残差值的一阶差值反应的改正数进行计算。
2.获得残差序列的多阶差序列,计算残差序列中每个残差值的多阶差值反应的改正数。
需要说明的是,残差值的一阶差值虽然能够在一定程度上反映残差值的改正数的大小,但是对于残差序列的规律性无法直接利用一阶差序列确定,而数据的多阶差能够体现不同尺度、不同数据颗粒度下的数据规律性,所以需要根据残差序列的多阶差序列综合获得残差序列中残差值的改正数。
将残差序列的一阶差序列中任意相邻两个一阶差值的差的绝对值记为相邻两个一阶差值的二阶差值,将残差序列的一阶差序列中所有相邻两个一阶差值的二阶差值组成的序列记为残差序列的二阶差序列,残差序列的二阶差序列的长度为;同理,将残差序列的j阶差序列中任意相邻两个j阶差值的差的绝对值记为相邻两个j阶差值的j+1阶差值,将残差序列的j阶差序列中所有相邻两个j阶差值的j+1阶差值组成的序列记为残差序列的j+1阶差序列,残差序列的j+1阶差序列的长度为,L表示编码序列,表示第一预设长度,j表示多阶差序列的阶数。
将j阶差序列中所有j阶差值的均值记为j阶差序列的均值,将j阶差序列中每个j阶差值与j阶差序列的均值的差的绝对值记为每个j阶差值的分散性,将j阶差序列中任意一个j阶差值与相邻的两个j阶差值的方差记为该j阶差值的方差。
需要说明的是,本实施例中存在一些特征的分析和计算时,需要对序列中的元素进行操作时,可能会超出序列的边界,并且需要使用序列边界之外的元素进行特征计算的情况,此种情况下本实施例为了保证可以实施,不进行相应的特征计算。例如,本实施例中,不对j阶差序列中前面1个j阶差值和最后1个j阶差值的方差进行计算。
残差序列中第i个残差值的j阶差值反应的改正数的计算公式为:
式中,表示残差序列中第i个残差值的j阶差值反应的改正数,表示j阶差序列中第i-k个j阶差值的分散性,表示j阶差序列中第i-k个j阶差值的方差,表示j阶差序列中相邻的j+1个j阶差值的方差的和,j表示j阶差值的阶数,表示取绝对值;
表示的相对大小,越大,j阶差序列中第i-k个j阶差值与周围邻域内其他j阶差值的差异性越大,残差序列中第i个残差值的j阶差值反应的改正数越小;表示第i个残差值对应的第j+1个j阶差值的中间位置,表示第i-k个j阶差值与第j+1个j阶差值的中间位置的距离,越大,第i-k个j阶差值对第i个残差值的表现程度越小,第i-k个j阶差值反映的改正数的可信程度越小。
需要说明的是,本实施例中存在一些特征的分析和计算时,需要对序列中的元素进行操作时,可能会超出序列的边界,并且需要使用序列边界之外的元素进行特征计算的情况,此种情况下本实施例为了保证可以实施,不进行相应的特征计算。
3.根据多阶差值反应的改正数,获得残差序列中残差值的最终改正数。
需要说明的是,综合残差序列中残差值的一阶差值反应的改正数,以及残差序列中残差值的多阶差值反应的改正数,获得综合残差序列中残差值的最终改正数。
残差序列中残差值的最终改正数的计算公式为:
式中,表示残差序列中第i个残差值的最终改正数,表示残差序列中第i个残差值的j阶差值反应的改正数,表示残差序列中第i个残差值的符号,j表示j阶差值的阶数,N表示多阶差值的阶数;
表示残差序列中第i个残差值的j阶差值反应的改正数,越大,则第i个残差值的最终改正数越大;j表示j阶差值的阶数,为j阶差值反应的改正数的权值,已知多阶差值的阶数越大,即j越大,j阶差值所反映的残差值的规律特征越不明显,j阶差值反应的改正数的权值越小,则j阶差值反应的改正数对第i个残差值的最终改正数的影响越小。
表示残差序列中第i个残差值的符号,第i个残差值的符号取决于第i个残差值的相对大小,具体为:对第i个残差值以及第i个残差值的相邻6个残差值进行拟合,获得第i个残差值的拟合回归值:如果第i个残差值的拟合回归值大于第i个残差值,第i个残差值的符号为正,即,否则,第i个残差值的符号为负,即。
由于多阶差值的阶数越大,多阶差值反映残差序列的规律特征越不明显,因此,在本实施例中,多阶差值的阶数N=4,在其他实施例中,实施人员可根据需要设置多阶差值的阶数。
特征获取模块S004,根据残差值的最终改正数获得改正残差序列,以及残差序列的特征值。
将残差序列中的残差值与残差值的最终改正数的和作为改正残差值,将所有改正残差值组成的序列记为改正残差序列;利用多项式拟合方法,对改正残差序列进行多项式拟合,获得改正残差序列的拟合多项式,拟合多项式由若干个变量和每个变量的系数组成,改正残差序列的拟合多项式的系数作为残差序列的特征值。
经过对残差序列的残差值进行改正后,改正残差序列拟合效果更好,提高改正残差序列的拟合多项式与改正残差序列的相关性,即改正残差序列中的改正残差值发生变化时,改正残差序列的拟合多项式具有更加明显的变化,提高了改正残差序列的拟合多项式对改正残差序列的敏感性,便于后续对残差序列(密文序列)进行防篡改检测。
将密文序列(数值序列的残差序列)存储在计算机系统的存储空间中,将密钥(数值序列的拟合多项式的系数)以及残差序列的特征值(改正残差序列的拟合多项式的系数)进行额外的保存,例如保存到U盘等离线设备上,保证只有具有权限的人员可以得到密钥及残差序列的特征值,以保证计算机系统中系统文件的安全,当需要获取系统文件时,将保存密钥及残差序列的特征值离线设备连接计算机系统,对密文进行解密即可。
防篡改检测模块S005,对密文进行防篡改检测。
当需要检测存储在计算机系统的存储空间中的密文是否被篡改时,根据数据修正模块获得密文的所有残差值的最终改正数,根据特征获取模块获得密文的特征值,将密文的特征值与离线设备中存储的残差序列的特征值进行比较,如果密文与残差序列的特征值一致,计算机系统中存储的密文未被篡改,否则,计算机系统中存储的密文已被篡改,及时发出警报或者恢复。
综上所述,本发明的系统包括文件获取模块、文件加密模块、数据修正模块、特征获取模块、防篡改检测模块,本发明通过对系统文件的数值序列进行多项式拟合,将数值序列的拟合多项式的系数作为密钥,将数值序列的残差序列作为密文序列,通过对残差序列进行改正,提高残差序列的拟合效果,从而增加残差序列与残差序列的拟合多项式的参数的相关性,将残差序列(密文序列)的拟合多项式的系数作为密文序列的特征值,提高拟合多项式的系数对残差序列的变化的响应速度以及响应程度,通过提高密文序列与密文序列的特征值之间的敏感性,提高系统文件的防篡改检测效果,实现对系统文件的高效防篡改检测。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。