一种数据文件的安全保护方法及装置的制作方法

文档序号:6332057阅读:185来源:国知局
专利名称:一种数据文件的安全保护方法及装置的制作方法
技术领域
本发明涉及数据文件安全保护技术领域,特别涉及一种数据文件的安全保护方法及装置。
背景技术
在呼叫中心应用中,互动式语音应答(IVRJnteractive Voice Response)是最贴近用户的部分,可以称之为整个呼叫中心系统的门户。因此,IVR业务语音内容的安全性保证十分重要,不仅需要从系统环境上作限制,以屏蔽外来非法链接接触IVR业务语音文件, 还要采取有效措施对门户语音的内容安全进行保护,以杜绝被非法篡改、替换的语音文件内容被播放,同时也需杜绝重要的语音内容被删除。现有在呼叫中心领域中,用于保障IVR业务语音安全的技术方案尚属空白。现有技术中对于文件进行安全保护的常规技术手段主要包括在文件中追加文件头信息;对文件属性信息进行加密;MD5验证法或者数字水印加密方法。文件中追加文件头信息、文件属性信息加密,这两种方法类似于为生产系统中的待执行文件打上一个标签,通过对标签的验证来判别文件是否被替换过。但是文件头或加密信息其本质还是属于文件内容的一部分,恶意者可以轻松利用原文件,并对原文件进行编辑(对文件头信息以外部分或文件属性加密部分,文件中离散式存放加密信息属于数字水印范畴),而轻松篡改文件内容,从而影响播音安全。以上保障措施虽可以对文件的安全起到一定的保护作用,但仍然存在风险。数字水印和MD5验证法(或两者联合使用),虽然可以达到文件唯一性验证,但主文件本身却无法实现自我保护,即文件必须以原始形态保存,恶意者虽然不能删除替换或修改文件,但是可以进行目标明确的删除文件的破坏活动。

发明内容
本发明提供了一种数据文件的安全保护方法及装置,可以有效地保护数据文件, 可以防止其被恶意篡改、替换或删除。本发明实施例提出了一种数据文件的安全保护方法,包括如下步骤A、将原始数据文件转换为长度为N的第一 2进制字符串,将所述第一 2进制字符串转换为X/Y双轴数列;B、以所述X/Y双轴数列中的X轴数列作为NXN矩阵的第一行元素,以Y轴数列作为NXN矩阵的第一列元素,根据X/Y双轴数列中的数计算出该NXN矩阵中剩余各个元素的值,将该X/Y双轴数列填充为NXN矩阵;C、将所述NXN矩阵划分为M个子矩阵,M为大于或等于2的自然数;D、对这M子矩阵进行排序,并按照排序后的顺序提取每个子矩阵的对角线数列或反对角线数列;E、将这些对角线数列或反对角线数列排成中间过程数列,将所述中间过程数列转换为第二2进制字符串;F、将该第二 2进制字符串保存为存档文件。较佳地,所述X/Y双轴数列的X轴上的(i,0)和Y轴上的(0,i)中填入的均为所述第一 2进制字符串的第i个字符。较佳地,步骤F所述将该字符串保存为存档文件之前,进一步包括在所述第二 2 进制字符串中对应于每个对角线数列起始或结束之处设置分割标识。较佳地,所述根据X/Y双轴数列中的数计算出该NXN矩阵中剩余各个元素的值为将该NXN矩阵中的第i行第j列的元素的取值设为X轴数列的第j位(j,0)与 Y轴数列的第i位(0,i)的字符之和;或者,将该NXN矩阵中的第i行第j列的元素的取值设为X轴数列的第j位(j,0)与 Y轴数列的第i位(0,i)的字符之乘积。较佳地,所述原始数据文件为互动式语音应答系统的业务语音文件。本发明实施例提出了一种数据文件的安全保护装置,包括双轴数列生成模块,用于将原始数据文件转换为长度为N的第一 2进制字符串,将所述第一 2进制字符串转换为X/Y双轴数列;矩阵生成模块,用于以所述X/Y双轴数列中的X轴数列作为NXN矩阵的第一行元素,以Y轴数列作为NXN矩阵的第一列元素,根据X/Y双轴数列中的数计算出该NXN矩阵中剩余各个元素的值,将该X/Y双轴数列填充为NXN矩阵;子矩阵划分模块,用于将所述矩阵生成模块所生成的NXN矩阵划分为M个子矩阵,M为大于或等于2的自然数;数列提取模块,用于将子矩阵划分模块所划分的M个子矩阵进行排序,并按照排序后的顺序提取每个子矩阵的对角线数列或反对角线数列;转换模块,用于将将数列提取模块所提取的对角线数列或反对角线数列排成中间过程数列,将所述中间过程数列转换为第二 2进制字符串;存档模块,用于将该第二 2进制字符串保存为存档文件。较佳地,所述双轴数列生成模块所生成的X/Y双轴数列的X轴上的(i,0)和Y轴上的(0,i)中填入的均为所述第一 2进制字符串的第i个字符。较佳地,所述存档模块在将该字符串保存为存档文件之前,进一步用于在所述第二 2进制字符串中对应于每个对角线数列起始或结束之处设置分割标识。较佳地,所述矩阵生成模块将该NXN矩阵中的第i行第j列的元素的取值设为X 轴数列的第j位(j,0)与Y轴数列的第i位(0,i)的字符之和;或者,将该NXN矩阵中的第i行第j列的元素的取值设为X轴数列的第j位(j,0)与Y轴数列的第i位(0,i)的字符之乘积。较佳地,所述原始数据文件为互动式语音应答系统的业务语音文件。从以上技术方案可以看出,该安全保护方案通过对文件的“破坏性”操作,原始文件内容已不可被外界因素获知,全面保护了文件内容的安全保密性。但该处理方法又保证根据存档文件可以恢复出原始文件。因采用此方法没有比对的原始基准,只存在一次性“破坏”操作就可以完全杜绝外界对原始文件内容的刺探途径及替换价值,操作简单,便于对文件进行全面安全保护。


图1为本发明实施例提出的数据文件的安全保护方法的处理流程示意图;图2为图1所示步骤102所生成的X/Y双轴数列的示意图;图3为图1所示步骤103生成的NXN矩阵的示意图;图4为图1所示步骤104的一种划分子矩阵方式的示意图;图5为图1所示步骤105的取子矩阵对角线数列的示意图。
具体实施例方式本发明实施例方案针对呼叫中心应用领域中IVR业务语音文件如何进行安全性保障做阐述,直接针对录制的IVR业务语音文件进行操作,通过一系列的处理过程后,使外界因素无法对已生产的IVR业务语音文件进行篡改,在系统最终进行读取文件播放时可保证其内容的合法性、正确性。本发明实施例的处理流程如图1所示,包括如下步骤步骤101 将录制的语音文件内容转换为第一 2进制字符串。该步骤可以采用多种现有技术实现,在此不再赘述。步骤102 将所述第一 2进制字符串转换为X/Y双轴数列。以所述第一 2进制字符串中的第1个字符为原点,将该第一 2进制字符串转换成 X、Y双轴数列。设第一 2进制字符串共有N个字符,对于X轴上的每一位(1,0)、(2,0)、(3,
0)…(Ν,0),依次填入所述2进制字符串的各个字符;对于Y轴上的每一位(0,1)、(0,2), (0,3)…(0,Ν),同样依次填入所述2进制字符串的各个字符。其中,X轴上的(i,0)和Y轴上的(0,i)中填入的均为第一 2进制字符串的第i个字符(i = 1,2,3……N),如图2所示。 X轴数列还可以采用反向排列的方式即X轴上的第1位(1,0)填入第一 2进制字符串的第N个字符,第2位(2,0)填入第一 2进制字符串的第N-I个字符……第N位(N,0)填入第一 2进制字符串的第1个字符。同理Y轴数列也可以采用反向排列的方式。并且,X轴数列和Y轴数列可以一个是正向排列,一个是反向排列。步骤103 将该X/Y双轴数列填充为NXN矩阵。具体地说,以所述X/Y双轴数列中的X轴数列作为NXN矩阵的第一行元素,以Y 轴数列作为NXN矩阵的第一列元素,根据X/Y双轴数列中的数计算出该NXN矩阵中剩余各个元素的值,将该X/Y双轴数列填充为NXN矩阵。本实施例中采用X+Y的计算方法加以说明。图3所示为填充后生成的矩阵的示意图。该矩阵中的第i行第j列的元素的取值就是X轴数列上的第j位(j,0)与Y轴数列的第i位(0,i)填入的字符之和。填充NXN的矩阵也可以采用XXY的计算方法,即矩阵中的第i行第j列的元素的取值就是X轴数列上的第j位(j,0)与Y轴数列上的第i位(0,
1)填入的字符之乘积。步骤104 将该NXN矩阵划分为M个子矩阵,M为自然数,且M彡2。图4示出了一种划分子矩阵方式的示意图,即将NXN矩阵划分为四个大小相等的子矩阵。图4所示情况只是一种举例,并不用以对本发明方案进行限制。在其他实施例中,所划分成的子矩阵数目可以大于或小于4,并且子矩阵的大小也可以互不相等。步骤105 对这M子矩阵进行排序,并按照排序后的顺序提取每个子矩阵的对角线数列。图5所示是按照图4方式划分子矩阵后,对子矩阵进行排列即取对角线数列的示意图。这四个子矩阵分别标记为子矩阵A、子矩阵B、子矩阵C和子矩阵D。图5中所示斜线表示出对角线数列。如果提取每个子矩阵的反对角线数列(即从右上到左下的对角线)也可以达到本发明目的。步骤106 将这些对角线数列排成中间过程数列,将所述中间过程数列按照一定的算法转换为第二2进制字符串。具体算法可以现有技术中的任一种可逆的二进制转换算法。步骤107 在所述第二 2进制字符串中对应于每个对角线数列起始或结束之处设置分割标识后,将该字符串保存为存档文件。例如,上述第二 2进制字符串设置分割标识后为"10100010001000110100A1010111100010111010B0001010001010110000110000—
”,其中的“A”和“B”即分别为子矩阵A的对角线数列与子矩阵B的对角线数列的分割标识。因每个对角线数列转换为2进制编码后位长可能不一致,所以需要在设置分割标识,有助于在逆向恢复时做反向运算。分段标示位的方法除了是逆向运算的依据以外,同时可以保障外界因素对该文件的随意性替换,因这些标示位内容不合法则逆向运算会无法完成计算操作,系统将认为该语音文件为非法,不对用户播放。本发明实施例还提出一种数据文件的安全保护装置,包括双轴数列生成模块,用于将原始数据文件转换为长度为N的第一 2进制字符串,将所述第一 2进制字符串转换为X/Y双轴数列;矩阵生成模块,用于以所述X/Y双轴数列中的X轴数列作为NXN矩阵的第一行元素,以Y轴数列作为NXN矩阵的第一列元素,根据X/Y双轴数列中的数计算出该NXN矩阵中剩余各个元素的值,将该X/Y双轴数列填充为NXN矩阵;子矩阵划分模块,用于将所述矩阵生成模块所生成的NXN矩阵划分为M个子矩阵,M为大于或等于2的自然数;数列提取模块,用于将子矩阵划分模块所划分的M个子矩阵进行排序,并按照排序后的顺序提取每个子矩阵的对角线数列或反对角线数列;转换模块,用于将将数列提取模块所提取的对角线数列或反对角线数列排成中间过程数列,将所述中间过程数列转换为第二 2进制字符串;存档模块,用于将该第二 2进制字符串保存为存档文件。较佳地,所述双轴数列生成模块所生成的X/Y双轴数列的X轴上的(i,0)和Y轴上的(0,i)中填入的均为所述第一 2进制字符串的第i个字符。较佳地,所述存档模块在将该字符串保存为存档文件之前,进一步用于在所述第二 2进制字符串中对应于每个对角线数列起始或结束之处设置分割标识。较佳地,所述矩阵生成模块将该NXN矩阵中的第i行第j列的元素的取值设为X 轴数列的第j位(j,0)与Y轴数列的第i位(0,i)的字符之和;或者,将该NXN矩阵中的第i行第j列的元素的取值设为X轴数列的第j位(j,0)与Y轴数列的第i位(0,i)的字符之乘积。较佳地,所述原始数据文件为互动式语音应答系统的业务语音文件。所述存档文件是将原始文件完全“破坏”后所形成的新文件,其容量将大于原始文件,其内容无法被操作系统识别,属于纯计算机底层应用文件,即使采用反编译手段读取出该存档文件中的2进制代码,也无法判断该文件的真实内容,不存在比对基准,不存在原始对照,对于外界来说,该文件完全不可知,同时无其他途径获得文件内容。在IVR系统需要加载该存档文件进行播放时,首先根据分割标识,将该文件内容分割成各个子矩阵对角线数列对应的2进制字符串,通过逆向算法恢复为子矩阵对角线数列以及恢复为第一 2进制字符串,最终形成可被识别的语音文件,播放给用户收听。本发明方案可以对呼叫中心IVR系统中的语音文件进行了有效的安全保障。本发明提出的数据文件的安全保护方案,不仅可以用于对IVR业务语音文件进行保护,也可以用于对其他类型的数据文件进行保护。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种数据文件的安全保护方法,其特征在于,包括如下步骤A、将原始数据文件转换为长度为N的第一2进制字符串,将所述第一 2进制字符串转换为X/Y双轴数列;B、以所述X/Y双轴数列中的X轴数列作为NXN矩阵的第一行元素,以Y轴数列作为 NXN矩阵的第一列元素,根据X/Y双轴数列中的数计算出该NXN矩阵中剩余各个元素的值,将该X/Y双轴数列填充为NXN矩阵;C、将所述NXN矩阵划分为M个子矩阵,M为大于或等于2的自然数;D、对这M子矩阵进行排序,并按照排序后的顺序提取每个子矩阵的对角线数列或反对角线数列;E、将这些对角线数列或反对角线数列排成中间过程数列,将所述中间过程数列转换为第二2进制字符串;F、将该第二2进制字符串保存为存档文件。
2.根据权利要求1所述的方法,其特征在于,所述X/Y双轴数列的X轴上的(i,0)和Y 轴上的(0,i)中填入的均为所述第一 2进制字符串的第i个字符。
3.根据权利要求1所述的方法,其特征在于,步骤F所述将该字符串保存为存档文件之前,进一步包括在所述第二 2进制字符串中对应于每个对角线数列起始或结束之处设置分割标识。
4.根据权利要求1所述的方法,其特征在于,所述根据X/Y双轴数列中的数计算出该 NXN矩阵中剩余各个元素的值为将该NXN矩阵中的第i行第j列的元素的取值设为X轴数列的第j位(j,0)与Y轴数列的第i位(0,i)的字符之和;或者,将该NXN矩阵中的第i行第j列的元素的取值设为X轴数列的第j位(j,0)与Y轴数列的第i位(0,i)的字符之乘积。
5.根据权利要求1所述的方法,其特征在于,所述原始数据文件为互动式语音应答系统的业务语音文件。
6.一种数据文件的安全保护装置,其特征在于,包括双轴数列生成模块,用于将原始数据文件转换为长度为N的第一 2进制字符串,将所述第一 2进制字符串转换为X/Y双轴数列;矩阵生成模块,用于以所述X/Y双轴数列中的X轴数列作为NXN矩阵的第一行元素, 以Y轴数列作为NXN矩阵的第一列元素,根据X/Y双轴数列中的数计算出该NXN矩阵中剩余各个元素的值,将该X/Y双轴数列填充为NXN矩阵;子矩阵划分模块,用于将所述矩阵生成模块所生成的NXN矩阵划分为M个子矩阵,M为大于或等于2的自然数;数列提取模块,用于将子矩阵划分模块所划分的M个子矩阵进行排序,并按照排序后的顺序提取每个子矩阵的对角线数列或反对角线数列;转换模块,用于将将数列提取模块所提取的对角线数列或反对角线数列排成中间过程数列,将所述中间过程数列转换为第二 2进制字符串;存档模块,用于将该第二 2进制字符串保存为存档文件。
7.根据权利要求6所述的装置,其特征在于,所述双轴数列生成模块所生成的X/Y双轴数列的X轴上的(i,0)和Y轴上的(0,i)中填入的均为所述第一 2进制字符串的第i个字符。
8.根据权利要求6所述的装置,其特征在于,所述存档模块在将该字符串保存为存档文件之前,进一步用于在所述第二2进制字符串中对应于每个对角线数列起始或结束之处设置分割标识。
9.根据权利要求6所述的装置,其特征在于,所述矩阵生成模块将该NXN矩阵中的第 i行第j列的元素的取值设为X轴数列的第j位(j,0)与Y轴数列的第i位(0,i)的字符之和;或者,将该NXN矩阵中的第i行第j列的元素的取值设为X轴数列的第j位(j,0) 与Y轴数列的第i位(0,i)的字符之乘积。
10.根据权利要求6所述的装置,其特征在于,所述原始数据文件为互动式语音应答系统的业务语音文件。
全文摘要
本发明提供了一种数据文件的安全保护方法,将原始数据文件转换为二进制的X/Y双轴数列,并进一步填充为N×N矩阵;将所述N×N矩阵划分为M个子矩阵,对这M子矩阵进行排序,并按照排序后的顺序提取每个子矩阵的对角线数列或反对角线数列;将这些对角线数列或反对角线数列排成中间过程数列,将所述中间过程数列转换为第二2进制字符串;将该第二2进制字符串保存为存档文件。本发明还提供了数据文件的安全保护装置。
文档编号G06F21/24GK102402668SQ20101028182
公开日2012年4月4日 申请日期2010年9月14日 优先权日2010年9月14日
发明者涂天禄, 温健军 申请人:中国移动通信集团四川有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1