專利名稱:一種數(shù)據(jù)文件的安全保護(hù)方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)文件安全保護(hù)技術(shù)領(lǐng)域,特別涉及一種數(shù)據(jù)文件的安全保護(hù)方法及裝置。
背景技術(shù):
在呼叫中心應(yīng)用中,互動式語音應(yīng)答(IVRJnteractive Voice Response)是最貼近用戶的部分,可以稱之為整個呼叫中心系統(tǒng)的門戶。因此,IVR業(yè)務(wù)語音內(nèi)容的安全性保證十分重要,不僅需要從系統(tǒng)環(huán)境上作限制,以屏蔽外來非法鏈接接觸IVR業(yè)務(wù)語音文件, 還要采取有效措施對門戶語音的內(nèi)容安全進(jìn)行保護(hù),以杜絕被非法篡改、替換的語音文件內(nèi)容被播放,同時也需杜絕重要的語音內(nèi)容被刪除?,F(xiàn)有在呼叫中心領(lǐng)域中,用于保障IVR業(yè)務(wù)語音安全的技術(shù)方案尚屬空白。現(xiàn)有技術(shù)中對于文件進(jìn)行安全保護(hù)的常規(guī)技術(shù)手段主要包括在文件中追加文件頭信息;對文件屬性信息進(jìn)行加密;MD5驗證法或者數(shù)字水印加密方法。文件中追加文件頭信息、文件屬性信息加密,這兩種方法類似于為生產(chǎn)系統(tǒng)中的待執(zhí)行文件打上一個標(biāo)簽,通過對標(biāo)簽的驗證來判別文件是否被替換過。但是文件頭或加密信息其本質(zhì)還是屬于文件內(nèi)容的一部分,惡意者可以輕松利用原文件,并對原文件進(jìn)行編輯(對文件頭信息以外部分或文件屬性加密部分,文件中離散式存放加密信息屬于數(shù)字水印范疇),而輕松篡改文件內(nèi)容,從而影響播音安全。以上保障措施雖可以對文件的安全起到一定的保護(hù)作用,但仍然存在風(fēng)險。數(shù)字水印和MD5驗證法(或兩者聯(lián)合使用),雖然可以達(dá)到文件唯一性驗證,但主文件本身卻無法實現(xiàn)自我保護(hù),即文件必須以原始形態(tài)保存,惡意者雖然不能刪除替換或修改文件,但是可以進(jìn)行目標(biāo)明確的刪除文件的破壞活動。
發(fā)明內(nèi)容
本發(fā)明提供了一種數(shù)據(jù)文件的安全保護(hù)方法及裝置,可以有效地保護(hù)數(shù)據(jù)文件, 可以防止其被惡意篡改、替換或刪除。本發(fā)明實施例提出了一種數(shù)據(jù)文件的安全保護(hù)方法,包括如下步驟A、將原始數(shù)據(jù)文件轉(zhuǎn)換為長度為N的第一 2進(jìn)制字符串,將所述第一 2進(jìn)制字符串轉(zhuǎn)換為X/Y雙軸數(shù)列;B、以所述X/Y雙軸數(shù)列中的X軸數(shù)列作為NXN矩陣的第一行元素,以Y軸數(shù)列作為NXN矩陣的第一列元素,根據(jù)X/Y雙軸數(shù)列中的數(shù)計算出該NXN矩陣中剩余各個元素的值,將該X/Y雙軸數(shù)列填充為NXN矩陣;C、將所述NXN矩陣劃分為M個子矩陣,M為大于或等于2的自然數(shù);D、對這M子矩陣進(jìn)行排序,并按照排序后的順序提取每個子矩陣的對角線數(shù)列或反對角線數(shù)列;E、將這些對角線數(shù)列或反對角線數(shù)列排成中間過程數(shù)列,將所述中間過程數(shù)列轉(zhuǎn)換為第二2進(jìn)制字符串;F、將該第二 2進(jìn)制字符串保存為存檔文件。較佳地,所述X/Y雙軸數(shù)列的X軸上的(i,0)和Y軸上的(0,i)中填入的均為所述第一 2進(jìn)制字符串的第i個字符。較佳地,步驟F所述將該字符串保存為存檔文件之前,進(jìn)一步包括在所述第二 2 進(jìn)制字符串中對應(yīng)于每個對角線數(shù)列起始或結(jié)束之處設(shè)置分割標(biāo)識。較佳地,所述根據(jù)X/Y雙軸數(shù)列中的數(shù)計算出該NXN矩陣中剩余各個元素的值為將該NXN矩陣中的第i行第j列的元素的取值設(shè)為X軸數(shù)列的第j位(j,0)與 Y軸數(shù)列的第i位(0,i)的字符之和;或者,將該NXN矩陣中的第i行第j列的元素的取值設(shè)為X軸數(shù)列的第j位(j,0)與 Y軸數(shù)列的第i位(0,i)的字符之乘積。較佳地,所述原始數(shù)據(jù)文件為互動式語音應(yīng)答系統(tǒng)的業(yè)務(wù)語音文件。本發(fā)明實施例提出了一種數(shù)據(jù)文件的安全保護(hù)裝置,包括雙軸數(shù)列生成模塊,用于將原始數(shù)據(jù)文件轉(zhuǎn)換為長度為N的第一 2進(jìn)制字符串,將所述第一 2進(jìn)制字符串轉(zhuǎn)換為X/Y雙軸數(shù)列;矩陣生成模塊,用于以所述X/Y雙軸數(shù)列中的X軸數(shù)列作為NXN矩陣的第一行元素,以Y軸數(shù)列作為NXN矩陣的第一列元素,根據(jù)X/Y雙軸數(shù)列中的數(shù)計算出該NXN矩陣中剩余各個元素的值,將該X/Y雙軸數(shù)列填充為NXN矩陣;子矩陣劃分模塊,用于將所述矩陣生成模塊所生成的NXN矩陣劃分為M個子矩陣,M為大于或等于2的自然數(shù);數(shù)列提取模塊,用于將子矩陣劃分模塊所劃分的M個子矩陣進(jìn)行排序,并按照排序后的順序提取每個子矩陣的對角線數(shù)列或反對角線數(shù)列;轉(zhuǎn)換模塊,用于將將數(shù)列提取模塊所提取的對角線數(shù)列或反對角線數(shù)列排成中間過程數(shù)列,將所述中間過程數(shù)列轉(zhuǎn)換為第二 2進(jìn)制字符串;存檔模塊,用于將該第二 2進(jìn)制字符串保存為存檔文件。較佳地,所述雙軸數(shù)列生成模塊所生成的X/Y雙軸數(shù)列的X軸上的(i,0)和Y軸上的(0,i)中填入的均為所述第一 2進(jìn)制字符串的第i個字符。較佳地,所述存檔模塊在將該字符串保存為存檔文件之前,進(jìn)一步用于在所述第二 2進(jìn)制字符串中對應(yīng)于每個對角線數(shù)列起始或結(jié)束之處設(shè)置分割標(biāo)識。較佳地,所述矩陣生成模塊將該NXN矩陣中的第i行第j列的元素的取值設(shè)為X 軸數(shù)列的第j位(j,0)與Y軸數(shù)列的第i位(0,i)的字符之和;或者,將該NXN矩陣中的第i行第j列的元素的取值設(shè)為X軸數(shù)列的第j位(j,0)與Y軸數(shù)列的第i位(0,i)的字符之乘積。較佳地,所述原始數(shù)據(jù)文件為互動式語音應(yīng)答系統(tǒng)的業(yè)務(wù)語音文件。從以上技術(shù)方案可以看出,該安全保護(hù)方案通過對文件的“破壞性”操作,原始文件內(nèi)容已不可被外界因素獲知,全面保護(hù)了文件內(nèi)容的安全保密性。但該處理方法又保證根據(jù)存檔文件可以恢復(fù)出原始文件。因采用此方法沒有比對的原始基準(zhǔn),只存在一次性“破壞”操作就可以完全杜絕外界對原始文件內(nèi)容的刺探途徑及替換價值,操作簡單,便于對文件進(jìn)行全面安全保護(hù)。
圖1為本發(fā)明實施例提出的數(shù)據(jù)文件的安全保護(hù)方法的處理流程示意圖;圖2為圖1所示步驟102所生成的X/Y雙軸數(shù)列的示意圖;圖3為圖1所示步驟103生成的NXN矩陣的示意圖;圖4為圖1所示步驟104的一種劃分子矩陣方式的示意圖;圖5為圖1所示步驟105的取子矩陣對角線數(shù)列的示意圖。
具體實施例方式本發(fā)明實施例方案針對呼叫中心應(yīng)用領(lǐng)域中IVR業(yè)務(wù)語音文件如何進(jìn)行安全性保障做闡述,直接針對錄制的IVR業(yè)務(wù)語音文件進(jìn)行操作,通過一系列的處理過程后,使外界因素?zé)o法對已生產(chǎn)的IVR業(yè)務(wù)語音文件進(jìn)行篡改,在系統(tǒng)最終進(jìn)行讀取文件播放時可保證其內(nèi)容的合法性、正確性。本發(fā)明實施例的處理流程如圖1所示,包括如下步驟步驟101 將錄制的語音文件內(nèi)容轉(zhuǎn)換為第一 2進(jìn)制字符串。該步驟可以采用多種現(xiàn)有技術(shù)實現(xiàn),在此不再贅述。步驟102 將所述第一 2進(jìn)制字符串轉(zhuǎn)換為X/Y雙軸數(shù)列。以所述第一 2進(jìn)制字符串中的第1個字符為原點,將該第一 2進(jìn)制字符串轉(zhuǎn)換成 X、Y雙軸數(shù)列。設(shè)第一 2進(jìn)制字符串共有N個字符,對于X軸上的每一位(1,0)、(2,0)、(3,
0)…(Ν,0),依次填入所述2進(jìn)制字符串的各個字符;對于Y軸上的每一位(0,1)、(0,2), (0,3)…(0,Ν),同樣依次填入所述2進(jìn)制字符串的各個字符。其中,X軸上的(i,0)和Y軸上的(0,i)中填入的均為第一 2進(jìn)制字符串的第i個字符(i = 1,2,3……N),如圖2所示。 X軸數(shù)列還可以采用反向排列的方式即X軸上的第1位(1,0)填入第一 2進(jìn)制字符串的第N個字符,第2位(2,0)填入第一 2進(jìn)制字符串的第N-I個字符……第N位(N,0)填入第一 2進(jìn)制字符串的第1個字符。同理Y軸數(shù)列也可以采用反向排列的方式。并且,X軸數(shù)列和Y軸數(shù)列可以一個是正向排列,一個是反向排列。步驟103 將該X/Y雙軸數(shù)列填充為NXN矩陣。具體地說,以所述X/Y雙軸數(shù)列中的X軸數(shù)列作為NXN矩陣的第一行元素,以Y 軸數(shù)列作為NXN矩陣的第一列元素,根據(jù)X/Y雙軸數(shù)列中的數(shù)計算出該NXN矩陣中剩余各個元素的值,將該X/Y雙軸數(shù)列填充為NXN矩陣。本實施例中采用X+Y的計算方法加以說明。圖3所示為填充后生成的矩陣的示意圖。該矩陣中的第i行第j列的元素的取值就是X軸數(shù)列上的第j位(j,0)與Y軸數(shù)列的第i位(0,i)填入的字符之和。填充NXN的矩陣也可以采用XXY的計算方法,即矩陣中的第i行第j列的元素的取值就是X軸數(shù)列上的第j位(j,0)與Y軸數(shù)列上的第i位(0,
1)填入的字符之乘積。步驟104 將該NXN矩陣劃分為M個子矩陣,M為自然數(shù),且M彡2。圖4示出了一種劃分子矩陣方式的示意圖,即將NXN矩陣劃分為四個大小相等的子矩陣。圖4所示情況只是一種舉例,并不用以對本發(fā)明方案進(jìn)行限制。在其他實施例中,所劃分成的子矩陣數(shù)目可以大于或小于4,并且子矩陣的大小也可以互不相等。步驟105 對這M子矩陣進(jìn)行排序,并按照排序后的順序提取每個子矩陣的對角線數(shù)列。圖5所示是按照圖4方式劃分子矩陣后,對子矩陣進(jìn)行排列即取對角線數(shù)列的示意圖。這四個子矩陣分別標(biāo)記為子矩陣A、子矩陣B、子矩陣C和子矩陣D。圖5中所示斜線表示出對角線數(shù)列。如果提取每個子矩陣的反對角線數(shù)列(即從右上到左下的對角線)也可以達(dá)到本發(fā)明目的。步驟106 將這些對角線數(shù)列排成中間過程數(shù)列,將所述中間過程數(shù)列按照一定的算法轉(zhuǎn)換為第二2進(jìn)制字符串。具體算法可以現(xiàn)有技術(shù)中的任一種可逆的二進(jìn)制轉(zhuǎn)換算法。步驟107 在所述第二 2進(jìn)制字符串中對應(yīng)于每個對角線數(shù)列起始或結(jié)束之處設(shè)置分割標(biāo)識后,將該字符串保存為存檔文件。例如,上述第二 2進(jìn)制字符串設(shè)置分割標(biāo)識后為"10100010001000110100A1010111100010111010B0001010001010110000110000—
”,其中的“A”和“B”即分別為子矩陣A的對角線數(shù)列與子矩陣B的對角線數(shù)列的分割標(biāo)識。因每個對角線數(shù)列轉(zhuǎn)換為2進(jìn)制編碼后位長可能不一致,所以需要在設(shè)置分割標(biāo)識,有助于在逆向恢復(fù)時做反向運算。分段標(biāo)示位的方法除了是逆向運算的依據(jù)以外,同時可以保障外界因素對該文件的隨意性替換,因這些標(biāo)示位內(nèi)容不合法則逆向運算會無法完成計算操作,系統(tǒng)將認(rèn)為該語音文件為非法,不對用戶播放。本發(fā)明實施例還提出一種數(shù)據(jù)文件的安全保護(hù)裝置,包括雙軸數(shù)列生成模塊,用于將原始數(shù)據(jù)文件轉(zhuǎn)換為長度為N的第一 2進(jìn)制字符串,將所述第一 2進(jìn)制字符串轉(zhuǎn)換為X/Y雙軸數(shù)列;矩陣生成模塊,用于以所述X/Y雙軸數(shù)列中的X軸數(shù)列作為NXN矩陣的第一行元素,以Y軸數(shù)列作為NXN矩陣的第一列元素,根據(jù)X/Y雙軸數(shù)列中的數(shù)計算出該NXN矩陣中剩余各個元素的值,將該X/Y雙軸數(shù)列填充為NXN矩陣;子矩陣劃分模塊,用于將所述矩陣生成模塊所生成的NXN矩陣劃分為M個子矩陣,M為大于或等于2的自然數(shù);數(shù)列提取模塊,用于將子矩陣劃分模塊所劃分的M個子矩陣進(jìn)行排序,并按照排序后的順序提取每個子矩陣的對角線數(shù)列或反對角線數(shù)列;轉(zhuǎn)換模塊,用于將將數(shù)列提取模塊所提取的對角線數(shù)列或反對角線數(shù)列排成中間過程數(shù)列,將所述中間過程數(shù)列轉(zhuǎn)換為第二 2進(jìn)制字符串;存檔模塊,用于將該第二 2進(jìn)制字符串保存為存檔文件。較佳地,所述雙軸數(shù)列生成模塊所生成的X/Y雙軸數(shù)列的X軸上的(i,0)和Y軸上的(0,i)中填入的均為所述第一 2進(jìn)制字符串的第i個字符。較佳地,所述存檔模塊在將該字符串保存為存檔文件之前,進(jìn)一步用于在所述第二 2進(jìn)制字符串中對應(yīng)于每個對角線數(shù)列起始或結(jié)束之處設(shè)置分割標(biāo)識。較佳地,所述矩陣生成模塊將該NXN矩陣中的第i行第j列的元素的取值設(shè)為X 軸數(shù)列的第j位(j,0)與Y軸數(shù)列的第i位(0,i)的字符之和;或者,將該NXN矩陣中的第i行第j列的元素的取值設(shè)為X軸數(shù)列的第j位(j,0)與Y軸數(shù)列的第i位(0,i)的字符之乘積。較佳地,所述原始數(shù)據(jù)文件為互動式語音應(yīng)答系統(tǒng)的業(yè)務(wù)語音文件。所述存檔文件是將原始文件完全“破壞”后所形成的新文件,其容量將大于原始文件,其內(nèi)容無法被操作系統(tǒng)識別,屬于純計算機(jī)底層應(yīng)用文件,即使采用反編譯手段讀取出該存檔文件中的2進(jìn)制代碼,也無法判斷該文件的真實內(nèi)容,不存在比對基準(zhǔn),不存在原始對照,對于外界來說,該文件完全不可知,同時無其他途徑獲得文件內(nèi)容。在IVR系統(tǒng)需要加載該存檔文件進(jìn)行播放時,首先根據(jù)分割標(biāo)識,將該文件內(nèi)容分割成各個子矩陣對角線數(shù)列對應(yīng)的2進(jìn)制字符串,通過逆向算法恢復(fù)為子矩陣對角線數(shù)列以及恢復(fù)為第一 2進(jìn)制字符串,最終形成可被識別的語音文件,播放給用戶收聽。本發(fā)明方案可以對呼叫中心IVR系統(tǒng)中的語音文件進(jìn)行了有效的安全保障。本發(fā)明提出的數(shù)據(jù)文件的安全保護(hù)方案,不僅可以用于對IVR業(yè)務(wù)語音文件進(jìn)行保護(hù),也可以用于對其他類型的數(shù)據(jù)文件進(jìn)行保護(hù)。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
權(quán)利要求
1.一種數(shù)據(jù)文件的安全保護(hù)方法,其特征在于,包括如下步驟A、將原始數(shù)據(jù)文件轉(zhuǎn)換為長度為N的第一2進(jìn)制字符串,將所述第一 2進(jìn)制字符串轉(zhuǎn)換為X/Y雙軸數(shù)列;B、以所述X/Y雙軸數(shù)列中的X軸數(shù)列作為NXN矩陣的第一行元素,以Y軸數(shù)列作為 NXN矩陣的第一列元素,根據(jù)X/Y雙軸數(shù)列中的數(shù)計算出該NXN矩陣中剩余各個元素的值,將該X/Y雙軸數(shù)列填充為NXN矩陣;C、將所述NXN矩陣劃分為M個子矩陣,M為大于或等于2的自然數(shù);D、對這M子矩陣進(jìn)行排序,并按照排序后的順序提取每個子矩陣的對角線數(shù)列或反對角線數(shù)列;E、將這些對角線數(shù)列或反對角線數(shù)列排成中間過程數(shù)列,將所述中間過程數(shù)列轉(zhuǎn)換為第二2進(jìn)制字符串;F、將該第二2進(jìn)制字符串保存為存檔文件。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述X/Y雙軸數(shù)列的X軸上的(i,0)和Y 軸上的(0,i)中填入的均為所述第一 2進(jìn)制字符串的第i個字符。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟F所述將該字符串保存為存檔文件之前,進(jìn)一步包括在所述第二 2進(jìn)制字符串中對應(yīng)于每個對角線數(shù)列起始或結(jié)束之處設(shè)置分割標(biāo)識。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)X/Y雙軸數(shù)列中的數(shù)計算出該 NXN矩陣中剩余各個元素的值為將該NXN矩陣中的第i行第j列的元素的取值設(shè)為X軸數(shù)列的第j位(j,0)與Y軸數(shù)列的第i位(0,i)的字符之和;或者,將該NXN矩陣中的第i行第j列的元素的取值設(shè)為X軸數(shù)列的第j位(j,0)與Y軸數(shù)列的第i位(0,i)的字符之乘積。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述原始數(shù)據(jù)文件為互動式語音應(yīng)答系統(tǒng)的業(yè)務(wù)語音文件。
6.一種數(shù)據(jù)文件的安全保護(hù)裝置,其特征在于,包括雙軸數(shù)列生成模塊,用于將原始數(shù)據(jù)文件轉(zhuǎn)換為長度為N的第一 2進(jìn)制字符串,將所述第一 2進(jìn)制字符串轉(zhuǎn)換為X/Y雙軸數(shù)列;矩陣生成模塊,用于以所述X/Y雙軸數(shù)列中的X軸數(shù)列作為NXN矩陣的第一行元素, 以Y軸數(shù)列作為NXN矩陣的第一列元素,根據(jù)X/Y雙軸數(shù)列中的數(shù)計算出該NXN矩陣中剩余各個元素的值,將該X/Y雙軸數(shù)列填充為NXN矩陣;子矩陣劃分模塊,用于將所述矩陣生成模塊所生成的NXN矩陣劃分為M個子矩陣,M為大于或等于2的自然數(shù);數(shù)列提取模塊,用于將子矩陣劃分模塊所劃分的M個子矩陣進(jìn)行排序,并按照排序后的順序提取每個子矩陣的對角線數(shù)列或反對角線數(shù)列;轉(zhuǎn)換模塊,用于將將數(shù)列提取模塊所提取的對角線數(shù)列或反對角線數(shù)列排成中間過程數(shù)列,將所述中間過程數(shù)列轉(zhuǎn)換為第二 2進(jìn)制字符串;存檔模塊,用于將該第二 2進(jìn)制字符串保存為存檔文件。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述雙軸數(shù)列生成模塊所生成的X/Y雙軸數(shù)列的X軸上的(i,0)和Y軸上的(0,i)中填入的均為所述第一 2進(jìn)制字符串的第i個字符。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述存檔模塊在將該字符串保存為存檔文件之前,進(jìn)一步用于在所述第二2進(jìn)制字符串中對應(yīng)于每個對角線數(shù)列起始或結(jié)束之處設(shè)置分割標(biāo)識。
9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述矩陣生成模塊將該NXN矩陣中的第 i行第j列的元素的取值設(shè)為X軸數(shù)列的第j位(j,0)與Y軸數(shù)列的第i位(0,i)的字符之和;或者,將該NXN矩陣中的第i行第j列的元素的取值設(shè)為X軸數(shù)列的第j位(j,0) 與Y軸數(shù)列的第i位(0,i)的字符之乘積。
10.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述原始數(shù)據(jù)文件為互動式語音應(yīng)答系統(tǒng)的業(yè)務(wù)語音文件。
全文摘要
本發(fā)明提供了一種數(shù)據(jù)文件的安全保護(hù)方法,將原始數(shù)據(jù)文件轉(zhuǎn)換為二進(jìn)制的X/Y雙軸數(shù)列,并進(jìn)一步填充為N×N矩陣;將所述N×N矩陣劃分為M個子矩陣,對這M子矩陣進(jìn)行排序,并按照排序后的順序提取每個子矩陣的對角線數(shù)列或反對角線數(shù)列;將這些對角線數(shù)列或反對角線數(shù)列排成中間過程數(shù)列,將所述中間過程數(shù)列轉(zhuǎn)換為第二2進(jìn)制字符串;將該第二2進(jìn)制字符串保存為存檔文件。本發(fā)明還提供了數(shù)據(jù)文件的安全保護(hù)裝置。
文檔編號G06F21/24GK102402668SQ20101028182
公開日2012年4月4日 申請日期2010年9月14日 優(yōu)先權(quán)日2010年9月14日
發(fā)明者涂天祿, 溫健軍 申請人:中國移動通信集團(tuán)四川有限公司