云存儲(chǔ)環(huán)境下文本文檔的篡改檢測方法
【專利摘要】本發(fā)明公開了云存儲(chǔ)環(huán)境下文本文檔的一種篡改檢測方法,以及該方法的兩種實(shí)施方案:云服務(wù)器端使用該方法和客戶端使用該方法。篡改檢測方法的執(zhí)行過程是:首先分別對(duì)上傳到云服務(wù)器端的文檔與下載到客戶端的文檔計(jì)算若干個(gè)稱為指紋的數(shù)字序列;然后,比對(duì)兩次計(jì)算的文檔指紋,如果二者相等,則表示文檔沒有被他人篡改過。否則,繼續(xù)比對(duì)段落指紋及句子指紋,定位被篡改的具體句子。云服務(wù)器端使用此方法的實(shí)施步驟是:當(dāng)文檔上傳到服務(wù)器端之后和下載到客戶端之前,在云服務(wù)器端分別計(jì)算指紋,再比對(duì)兩次計(jì)算的指紋。本發(fā)明能快速準(zhǔn)確的為文檔提供篡改檢測,還能精確定位篡改位置。同時(shí)該方法給服務(wù)器端、客戶端和網(wǎng)絡(luò)帶寬帶來的負(fù)擔(dān)較小。
【專利說明】云存儲(chǔ)環(huán)境下文本文檔的篡改檢測方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種文本文檔的篡改檢測方法,尤其涉及一種檢測存儲(chǔ)在云服務(wù)器端的文本文檔是否被他人篡改的方法。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)的飛速發(fā)展以及便攜式上網(wǎng)設(shè)備(如:手機(jī)、筆記本、平板電腦等)的普及,人們對(duì)互聯(lián)網(wǎng)在線服務(wù)的需求和依賴越來越強(qiáng)烈,而云存儲(chǔ)作為一種以互聯(lián)網(wǎng)為基礎(chǔ)向用戶提供在線存儲(chǔ)的服務(wù),受到了人們的廣泛使用。用戶無需了解云存儲(chǔ)背后繁瑣的技術(shù)細(xì)節(jié),完全按需即用、按需即取。目前,市場上的云存儲(chǔ)產(chǎn)品越來越豐富,如微軟網(wǎng)盤SkyDrive、華為網(wǎng)盤DBank、奇虎360云盤、酷云CoolCloud等。這些產(chǎn)品的提供商為了消除用戶對(duì)于存儲(chǔ)在云端的數(shù)據(jù)是否被非法訪問、是否被破壞等安全方面的顧慮,采取了大量的密碼技術(shù)和加固技術(shù)來向用戶提供可信任的安全云。但是,就用戶而言,他們不僅需要防止云存儲(chǔ)服務(wù)提供商(簡稱:提供商)外部網(wǎng)絡(luò)黑客的惡意訪問和破壞,更需要防止提供商內(nèi)部人員的肆意篡改。
[0003]現(xiàn)有的針對(duì)文本文檔內(nèi)容保護(hù)的方法主要有兩種:一種是利用密碼技術(shù)對(duì)明文實(shí)施各種變化,使它不為外人所理解;另一種是利用數(shù)字水印技術(shù),在文檔中潛入隱藏信息,使它不被外人所發(fā)現(xiàn)。
[0004]密碼技術(shù),要求用戶首先在客戶端對(duì)文檔內(nèi)容進(jìn)行加密,然后將加密的文檔存儲(chǔ)在云服務(wù)器端,自己保存密鑰。當(dāng)用戶需要再次訪問或編輯文檔時(shí),先將它下載到客戶端解密,再進(jìn)行相應(yīng)的操作。但是該方法耗費(fèi)客戶端的CPU、內(nèi)存等資源非常多,占用的網(wǎng)絡(luò)帶寬也非常大。更重要的是,加密技術(shù)很難判斷出用戶文檔是否被篡改,更不用說,精確定位到篡改的具體句子。
[0005]數(shù)字水印技術(shù),要求用戶在客戶端先利用該技術(shù)在文檔中潛入隱藏信息,然后將潛入了隱藏信息的文檔上傳到服務(wù)器端。用戶在下載文檔時(shí),通過檢測隱藏信息判斷文檔內(nèi)容是否被篡改了。現(xiàn)有的文本數(shù)字水印技術(shù)攜帶隱藏信息的方式主要有:利用文本的字間距、行間距來嵌入水印信息;以標(biāo)點(diǎn)信息編碼、字符的字體編碼來攜帶水印信息;改變部分字符筆劃的長度或整個(gè)字符的高度來嵌入水印信息等。但是這些方法給用戶帶來的視覺上的影響較大、載體文件攜帶水印信息的容量小,不適宜用戶對(duì)文檔進(jìn)行二次編輯的需求。而且上述方法面臨著文本數(shù)字水印的嵌入算法運(yùn)行困難、魯棒性差、水印信息檢測困難等諸多問題。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的目的是提供一種檢測文本文檔是否被篡改的方法。
[0007]為了達(dá)到上述目的,本發(fā)明的一個(gè)技術(shù)方案是提供了一種計(jì)算文本文檔的各粒度指紋的方法,各粒度指紋包括句子指紋、段落指紋及文檔指紋,其特征在于,步驟為:
[0008]步驟1、若當(dāng)前文本文檔為中文文本文檔,則利用分詞系統(tǒng)將中文文本文檔中的各個(gè)中文詞分割開,進(jìn)入步驟2,若當(dāng)前文本文檔為外文文本文檔,則直接進(jìn)入步驟2 ;
[0009]步驟2、對(duì)中文文本文檔中的每個(gè)中文詞或外文文本文檔中的每個(gè)外文詞編碼;
[0010]步驟3、利用每個(gè)中文詞或每個(gè)外文詞及其對(duì)應(yīng)的編碼計(jì)算得到中文文本文檔或外文文本文檔中每個(gè)句子的句子指紋,當(dāng)且僅當(dāng)兩個(gè)句子中每個(gè)中文詞或每個(gè)外文詞及其位置相同時(shí),兩個(gè)句子的句子指紋相同;
[0011]步驟4、利用句子指紋計(jì)算得到中文文本文檔或外文文本文檔中每段中文或每段外文的段落指紋,當(dāng)且僅當(dāng)兩段中文或兩段外文中每個(gè)中文詞或每個(gè)外文詞及其位置相同時(shí),兩段中文或兩段外文的段落指紋相同;
[0012]步驟5、利用段落指紋計(jì)算得到中文文本文檔或外文文本文檔的文檔指紋,當(dāng)且僅當(dāng)兩個(gè)中文文本文檔或兩個(gè)外文文本文檔中每個(gè)中文詞或每個(gè)外文詞及其位置相同時(shí),兩個(gè)中文文本文檔或兩個(gè)外文文本文檔的文檔指紋相同。
[0013]優(yōu)選地,在所述步驟3中,利用Karp-Rabin哈希函數(shù)計(jì)算所述句子指紋;和/或在所述步驟4中,利用Karp-Rabin哈希函數(shù)計(jì)算所述段落指紋;和/或在所述步驟5中,利用Karp-Rabin哈希函數(shù)計(jì)算所述文檔指紋。
[0014]優(yōu)選地,利用Karp-Rabin哈希函數(shù)計(jì)算所述句子指紋的公式為:
[0015]Sentencefingerprint (W1W2...Wn) = (w12n_1+w22n_2+...+Wn^12^wn)modp,式中,Wi 為每個(gè)中文詞或每個(gè)外文詞,Wi是中文詞或外文詞Wi的編碼,P為一個(gè)足夠大的隨機(jī)素?cái)?shù);
[0016]利用Karp-Rabin哈希函數(shù)計(jì)算所述段落指紋的公式為:
[0017]Paragraphfingerprint (S1S2...Sm) = (3^^^822°1-2+...+s^^^sjmod p,式中,S1,S2,..., Sffl是當(dāng)前段落中的m個(gè)句子,Si是句子S1的句子指紋;
[0018]利用Karp-Rabin哈希函數(shù)計(jì)算所述文檔指紋的公式為:
[0019]Documentfingerprint (P1P2...Pq) = (p12q_1+p22r2+...+PtrPkpq)modp,式中,P1, P1,...,Pq是當(dāng)前中文文本文檔或外文文本文檔中的q個(gè)段落,Pi是段落Pi的段落指紋。
[0020]本發(fā)明的另一個(gè)技術(shù)方案是提供了一種采用上述的計(jì)算文本文檔的各粒度指紋的方法的服務(wù)器端使用篡改檢測方法,其特征在于,步驟為:
[0021]第一步、用戶將中文文本文檔或外文文本文檔從客戶端上傳到服務(wù)器端之后,使用上述的計(jì)算文本文檔的各粒度指紋的方法計(jì)算生成當(dāng)前中文文本文檔或外文文本文檔的句子指紋、段落指紋及文檔指紋;
[0022]第二步、計(jì)算完句子指紋、段落指紋及文檔指紋之后,服務(wù)器將所有句子指紋、段落指紋及文檔指紋發(fā)回給客戶端,用戶保存接收到的句子指紋、段落指紋及文檔指紋;
[0023]第三步、當(dāng)用戶訪問在第一步中上傳至服務(wù)器端的中文文本文檔或外文文本文檔時(shí),先在服務(wù)器端利用上述的計(jì)算文本文檔的各粒度指紋的方法重新計(jì)算該中文文本文檔或外文文本文檔的句子指紋、段落指紋及文檔指紋,然后與用戶保存的句子指紋、段落指紋及文檔指紋比對(duì),比對(duì)時(shí),先比對(duì)文檔指紋,若相同,則表示當(dāng)前中文文本文檔或外文文本文檔沒有被篡改,用戶可以放心訪問,否則,逐段比對(duì)段落指紋,找出不相同的段落指紋所對(duì)應(yīng)的段落,這些段落為被篡改段落,再在每個(gè)被篡改段落中逐句比對(duì)句子指紋,找出不相同的句子指紋所對(duì)應(yīng)的句子,從而定位至當(dāng)前中文文本文檔或外文文本文檔中的哪些段落的哪些句子被篡改,通過客戶端向用戶提供篡改證據(jù)。
[0024]優(yōu)選地,在所述第三步后還包括:
[0025]第四步、對(duì)于第三步中用戶可以放心的中文文本文檔或外文文本文檔,若用戶將其下載到客戶端后進(jìn)行了二次編輯,則將該二次編輯后的中文文本文檔或外文文本文檔再存儲(chǔ)到服務(wù)器端后,使用上述的計(jì)算文本文檔的各粒度指紋的方法重新計(jì)算生成當(dāng)前中文文本文檔或外文文本文檔的句子指紋、段落指紋及文檔指紋,并將其保存到客戶端,用于下次檢測。
[0026]本發(fā)明的另一個(gè)技術(shù)方案是提供了一種采用上述的計(jì)算文本文檔的各粒度指紋的方法的客戶端使用篡改檢測方法,其特征在于,步驟為:
[0027]第一步、用戶在客戶端新建、編輯生成中文文本文檔或外文文本文檔后,在當(dāng)前中文文本文檔或外文文本文檔上傳到服務(wù)器端之前,使用如權(quán)利要求1所述的計(jì)算文本文檔的各粒度指紋的方法計(jì)算當(dāng)前中文文本文檔或外文文本文檔的文檔指紋、段落指紋及句子指紋,并將它們保留在客戶端;
[0028]第二步、文檔指紋、段落指紋及句子指紋存儲(chǔ)后,用戶將當(dāng)前中文文本文檔或外文文本文檔上傳到服務(wù)器端;
[0029]第三步、當(dāng)用戶再次訪問上傳到服務(wù)器端的中文文本文檔或外文文本文檔時(shí),先將它下載到客戶端,利用上述的計(jì)算文本文檔的各粒度指紋的方法計(jì)算該中文文本文檔或外文文本文檔的文檔指紋、段落指紋及句子指紋,然后與客戶端保存的文檔指紋、段落指紋及句子指紋比對(duì),比對(duì)時(shí),先比對(duì)文檔指紋,若相同,則表示當(dāng)前中文文本文檔或外文文本文檔沒有被篡改,用戶可以放心訪問,否則,逐段比對(duì)段落指紋,找出不相同的段落指紋所對(duì)應(yīng)的段落,這些段落為被篡改段落,再在每個(gè)被篡改段落中逐句比對(duì)句子指紋,找出不相同的句子指紋所對(duì)應(yīng)的句子,從而定位至當(dāng)前中文文本文檔或外文文本文檔中的哪些段落的哪些句子被篡改。
[0030]優(yōu)選地,在所述第三步后還包括:
[0031 ] 第四步、對(duì)于第三步中用戶可以放心的中文文本文檔或外文文本文檔,若用戶將其下載到客戶端后進(jìn)行了二次編輯,則使用上述的計(jì)算文本文檔的各粒度指紋的方法重新計(jì)算生成當(dāng)前中文文本文檔或外文文本文檔的句子指紋、段落指紋及文檔指紋,并將其保存到客戶端,用于下次檢測后,再將當(dāng)前中文文本文檔或外文文本文檔上傳至服務(wù)器端。
[0032]本發(fā)明的工作原理是:分別對(duì)上傳到服務(wù)器端的文本文檔與下載到客戶端的文本文檔,計(jì)算它們的各粒度指紋,包括:文檔指紋、段落指紋和句子指紋。利用指紋的唯一性,判斷出存儲(chǔ)在服務(wù)器端的文本文檔是否被他人篡改過。詳細(xì)的說,在篡改檢測的過程中,為了節(jié)省時(shí)間和提高效率,本發(fā)明先比對(duì)文檔指紋,如果文檔指紋相等,則表示整篇文檔沒有被他人篡改過。否則,繼續(xù)比對(duì)段落指紋。找出對(duì)應(yīng)指紋不同的段落,再逐句比對(duì)段落中的句子指紋,定位到被篡改的具體句子,提供篡改證據(jù)。
[0033]鑒于文本文檔具有信息涵蓋量大、容易被篡改,并且篡改后不易被察覺的特點(diǎn),以及它在云存儲(chǔ)服務(wù)器端(簡稱:服務(wù)器端)反復(fù)存儲(chǔ)和讀取,在用戶所處的客戶端(簡稱:客戶端)反復(fù)編輯的需求,本發(fā)明提出一種檢測文本文檔是否被篡改的方法。該方法確保了用戶知曉,他存儲(chǔ)在云服務(wù)器端的文本文檔是否被他人篡改了。如果被篡改了,該方法能夠?qū)Υ鄹牡奈恢镁_定位,找出篡改證據(jù)。因此,本發(fā)明實(shí)現(xiàn)了在云存儲(chǔ)環(huán)境下對(duì)文本文檔內(nèi)容的安全檢測,維護(hù)了用戶的權(quán)益。從約束篡改行為方面分析,該方法也起到了一定的預(yù)防作用。
[0034]本發(fā)明的有益效果體現(xiàn)在以下幾個(gè)方面:
[0035]1.通過篡改檢測方法的兩種實(shí)施方案:云服務(wù)器使用篡改檢測方法和客戶端使用篡改檢測方法,保障了云存儲(chǔ)環(huán)境下用戶數(shù)據(jù)的安全,維護(hù)了用戶的權(quán)益。
[0036]2.通過篡改檢測方法,一旦發(fā)現(xiàn)用戶文檔被他人篡改了,該方法可以精確定位到被篡改的具體句子,為用戶提供有利的篡改證據(jù)。
[0037]3.在篡改檢測方法中,計(jì)算文檔的各粒度指紋所耗費(fèi)的時(shí)間,以及計(jì)算生成的指紋數(shù)目,都與文檔中的句子個(gè)數(shù)有關(guān)。由于在一篇文檔中句子個(gè)數(shù)是有限的,且數(shù)目不大,因此指紋的計(jì)算時(shí)間便非???。所以,本發(fā)明提供的篡改檢測方法為服務(wù)器端或客戶端帶來的計(jì)算資源的耗費(fèi)完全可以忽略。
[0038]4.在服務(wù)器端使用篡改檢測方法的方案中,由于一篇文檔的指紋個(gè)數(shù)是有限的,且數(shù)目不大,所以在服務(wù)器端與客戶端之間傳輸指紋的過程中,不會(huì)為網(wǎng)絡(luò)帶寬帶來負(fù)擔(dān)。
[0039]5.在篡改檢測方法中,因?yàn)橛?jì)算出一篇文檔的指紋數(shù)目不大,從而客戶端存儲(chǔ)指紋所耗費(fèi)的存儲(chǔ)空間也非常小,所以存儲(chǔ)指紋為客戶端帶來的存儲(chǔ)負(fù)擔(dān)完全可以忽略不計(jì)。
【專利附圖】
【附圖說明】
[0040]圖1a是服務(wù)器端使用篡改檢測方法中用戶存儲(chǔ)文檔過程的體系結(jié)構(gòu)圖;
[0041]圖1b是服務(wù)器端使用篡改檢測方法中用戶讀取文檔過程的體系結(jié)構(gòu)圖;
[0042]圖2a是客戶端使用篡改檢測方法中用戶存儲(chǔ)文檔過程的體系結(jié)構(gòu)圖;
[0043]圖2b是客戶端使用篡改檢測方法中用戶讀取文檔過程的體系結(jié)構(gòu)圖;
[0044]圖3a是計(jì)算指紋預(yù)處理執(zhí)行過程的示例圖;
[0045]圖3b是計(jì)算句子指紋和段落指紋執(zhí)行過程的示例圖1 ;
[0046]圖3c是計(jì)算句子指紋和段落指紋執(zhí)行過程的示例圖2 ;
[0047]圖3d是計(jì)算文檔指紋執(zhí)行過程的示例圖;
[0048]圖4是一篇文檔的指紋表示示例圖;
[0049]圖5是比對(duì)指紋模塊執(zhí)行過程的示例圖;
[0050]圖6是比對(duì)“指紋①”與“指紋②”的具體過程的示例圖。
【具體實(shí)施方式】
[0051]本發(fā)明給出了篡改檢測方法的二種實(shí)施方案。實(shí)施方案一是服務(wù)器端使用篡改檢測方法,實(shí)施方案二是客戶端使用篡改檢測方法。具體說明如下。
[0052]實(shí)施方案一:圖1是服務(wù)器端使用篡改檢測方法的體系結(jié)構(gòu)圖,它包括兩個(gè)子圖,圖1a和圖lb。其中,圖1a是當(dāng)用戶向服務(wù)器端存儲(chǔ)文檔時(shí)使用篡改檢測方法的體系結(jié)構(gòu)圖,圖1b是當(dāng)用戶從服務(wù)器端讀取文檔時(shí)使用篡改檢測方法的體系結(jié)構(gòu)圖。
[0053]結(jié)合圖1說明,本方案包括三個(gè)實(shí)體:用戶1-1,客戶端1-2,服務(wù)器1-3。用戶1_1可以在客戶端1-2實(shí)現(xiàn)以下操作:新建文檔1-4,編輯文檔1-5,將文檔和指紋暫時(shí)保存在臨時(shí)文件系統(tǒng)1-6中,通過瀏覽器1-7訪問服務(wù)器1-3。具體的說,瀏覽器1-7是用戶1-1在客戶端1-2訪問服務(wù)器1-3的媒介。服務(wù)器1-3除了為用戶提供輔助存儲(chǔ)空間即云盤1-8以外,還提供篡改檢測方法1-9。其中,篡改檢測方法1-9具體包括兩個(gè)模塊:計(jì)算指紋模塊1-10和比對(duì)指紋模塊1-11。
[0054]本方案的【具體實(shí)施方式】如下:
[0055]結(jié)合圖1a說明。首先,用戶1-1在客戶端1-2新建1-4和編輯1-5 —篇文檔,完成之后將文檔暫時(shí)保存在臨時(shí)文件系統(tǒng)1-6中。然后,用戶1-1再利用瀏覽器1-7從1-6中取出文檔上傳給服務(wù)器1-3,存儲(chǔ)在云盤1-8中。最后,計(jì)算指紋模塊1-10計(jì)算該文檔的指紋,記為“指紋①”,并將它返回客戶端1-2處,存儲(chǔ)在臨時(shí)文件系統(tǒng)1-6中。
[0056]結(jié)合圖1b說明。當(dāng)用戶1-1需要讀取文檔時(shí),先通過瀏覽器1-7訪問云盤1-8中的文檔,計(jì)算指紋模塊1-10再次計(jì)算該文檔的指紋,記為“指紋②”,并把它提交給比對(duì)指紋模塊1-11。然后,用戶1-1通過瀏覽器1-7將臨時(shí)文件系統(tǒng)1-6中的“指紋①”發(fā)送給比對(duì)指紋模塊1-11。最后,1-11通過比較“指紋①”與“指紋②”,檢測文檔是否被篡改,并將檢測結(jié)果result返回客戶端1-2,通過瀏覽器1_7呈現(xiàn)給用戶1_1。這時(shí),如果用戶1_1希望下載文檔,也可以通過瀏覽器1-7訪問云盤1-8,把它下載到臨時(shí)文件系統(tǒng)1-6中,再對(duì)它進(jìn)行二次編輯。
[0057]實(shí)施方案二:圖2是客戶端使用篡改檢測方法的體系結(jié)構(gòu)圖,它包括2個(gè)子圖,圖2a和圖2b。其中,圖2a是當(dāng)用戶存儲(chǔ)文檔時(shí)使用篡改檢測方法的體系結(jié)構(gòu)圖,圖2b是當(dāng)用戶讀取文檔時(shí)使用篡改檢測方法的體系結(jié)構(gòu)圖。
[0058]結(jié)合圖2說明,本方案同樣包括三個(gè)實(shí)體:用戶2-1,客戶端2-2,服務(wù)器2_3。用戶2-1可以在客戶端2-2實(shí)現(xiàn)以下操作:新建文檔2-4,編輯文檔2-5,在臨時(shí)文件系統(tǒng)2_6中存儲(chǔ)文檔和指紋文件,通過瀏覽器2-7訪問服務(wù)器2-3,使用篡改檢測方法2-9計(jì)算指紋模塊2-10和比對(duì)指紋模塊2-11。服務(wù)器2-3為用戶提供輔助存儲(chǔ)空間即云盤2-8。
[0059]本方案的【具體實(shí)施方式】如下:
[0060]結(jié)合圖2a說明。首先,用戶2-1在客戶端2-2新建2-4和編輯2-5 —篇文檔,之后將它暫時(shí)保存在臨時(shí)文件系統(tǒng)2-6中。然后,計(jì)算指紋模塊2-10計(jì)算該文檔的指紋,記為“指紋①”,并同樣將“指紋①”保存在臨時(shí)文件系統(tǒng)2-6中。最后,用戶2-1通過瀏覽器2-7取出該文檔上傳給服務(wù)器2-3,存儲(chǔ)在云盤2-8中。
[0061]結(jié)合圖2b說明,當(dāng)用戶2-1需要訪問云盤2-8中的文檔時(shí),首先通過瀏覽器2_7將文檔下載到臨時(shí)文件系統(tǒng)2-6中。然后,計(jì)算指紋模塊2-10計(jì)算該文檔的指紋(1),記為“指紋②”。并把它發(fā)送給比對(duì)指紋模塊2-11。用戶2-1再通過瀏覽器2-7去臨時(shí)文件系統(tǒng)2-6中取出“指紋①”提交給比對(duì)指紋模塊2-11。最后,2-11通過比較“指紋①”與“指紋②”,檢測文檔是否被篡改,并將檢測結(jié)果result通過瀏覽器2-7呈現(xiàn)給用戶2_1。這時(shí),用戶2-1可以對(duì)該文檔進(jìn)行二次編輯(2)。
[0062]分析上述兩種方案可知,不管是服務(wù)器端使用篡改檢測方法,還是客戶端使用篡改檢測方法,計(jì)算指紋模塊和比對(duì)指紋模塊是本發(fā)明的關(guān)鍵。下面給出它們的具體實(shí)施方案。
[0063]1.計(jì)算指紋模塊。該模塊的目標(biāo)是計(jì)算文檔的各粒度指紋,具體包括以下五個(gè)步驟。
[0064](I)分詞。本發(fā)明采用的分詞系統(tǒng)是中科院開發(fā)的漢語詞法分析系統(tǒng)ICTCLAS3.0,該系統(tǒng)分詞正確率高達(dá)97.58 %,分詞精度98.45 %,單機(jī)分詞速度最快為996KB/S, API小于200KB,各種詞典數(shù)據(jù)壓縮后小于3MB。特別說明的是,分詞只限于處理文檔中的中文文本,而對(duì)于英文文本,跳過此步驟,直接執(zhí)行第(2)步。這是因?yàn)橛⑽牡脑~與詞之間有明顯的分割標(biāo)志。
[0065](2)詞語編碼。本發(fā)明采用的是Unicode編碼,該編碼為各種語言(包括:英語、漢語、日語、法語、西班牙語等)中的每個(gè)字符設(shè)定了統(tǒng)一并且唯一的二進(jìn)制編碼,它解決傳統(tǒng)字符編碼方案的局限性,滿足跨語言、跨平臺(tái)進(jìn)行文本轉(zhuǎn)換和處理的需求,在國際上得到廣泛的應(yīng)用。
[0066](3)計(jì)算句子指紋。本發(fā)明利用Karp-Rabin哈希函數(shù)計(jì)算句子指紋,計(jì)算公式表示如下:
[0067]Sentencefingerprint (W1W2-..Wn) = (w12n_1+w22n_2+...+Wn^2^wn) modp (1.1)
[0068]其中,Wi為經(jīng)過分詞處理后在句子中切分出來的詞,Wi是詞Wi的編碼,P為一個(gè)足夠大的隨機(jī)素?cái)?shù)。
[0069](4)計(jì)算段落指紋。把第(3)步中計(jì)算的句子指紋作為輸入,再次利用Karp-Rabin哈希函數(shù)計(jì)算段落指紋,計(jì)算公式表示如下:
[0070]Paragraphfingerprint (S1S2...Sm) = (3^^+822°1-2+...+s^^^sjmodp (1.2)
[0071]其中,S1, S2,…,Sm是段落中的m個(gè)句子,&是由公式(1.1)計(jì)算得到的句子指紋。
[0072](5)計(jì)算文檔指紋。把第(4)步中計(jì)算的段落指紋作為輸入,再次利用Karp-Rabin哈希函數(shù)計(jì)算文檔指紋,計(jì)算公式表示如下:
[0073]Documentfingerprint (P1P2...Pq) = (p12q_1+p22r2+...+P^^^P^modp (1.3)
[0074]其中,P1, P2, , Pq是文檔中的q個(gè)段落,Pi是由公式(1.2)計(jì)算得到的段落指紋。
[0075]下面通過具體案例(如圖3所示)進(jìn)一步闡述計(jì)算指紋模塊的具體實(shí)現(xiàn)。其中步驟(I)?(2)屬于計(jì)算指紋的準(zhǔn)備工作,即預(yù)處理工作,如圖3a所示。步驟(3)?(5)屬于計(jì)算指紋工作,如圖3b、3c和3d所示。
[0076]結(jié)合圖3a說明。3-1是用戶創(chuàng)建并編輯的一篇文檔,長度為二段,共五句。計(jì)算指紋模塊的目標(biāo)就是計(jì)算該文檔的各粒度指紋。首先,利用ICTCLAS3.0系統(tǒng)對(duì)該文檔的文本內(nèi)容進(jìn)行分詞,3-2是分詞之后的結(jié)果。然后,利用Unicode編碼函數(shù)將每一個(gè)詞語轉(zhuǎn)換為它的Unicode碼,3-3是對(duì)詞語編碼之后的結(jié)果。下面開始計(jì)算指紋。
[0077]結(jié)合圖3b說明。計(jì)算指紋是按照句子、段落、文檔的順序依次計(jì)算。以第I段3-4為例,首先計(jì)算第I段中兩個(gè)句子的指紋,根據(jù)句子指紋的計(jì)算公式(1.1),給出第I句和第2句的句子指紋計(jì)算表達(dá)式3-5,得出句子指紋的計(jì)算結(jié)果3-6。然后,再根據(jù)段落指紋的計(jì)算公式(1.2),給出第I段的段落指紋的計(jì)算表達(dá)式3-7。最后,得出第I段的段落指紋 3-8。
[0078]同理,文檔3-1的第2段的各粒度指紋計(jì)算結(jié)果如圖3c所示。3_9是對(duì)第2段詞語編碼之后的結(jié)果,3-10是句子指紋計(jì)算結(jié)果,3-11是段落指紋計(jì)算結(jié)果。
[0079]計(jì)算文檔3-1的文檔指紋的過程如圖3d所示。3-12是文檔3_1的段落指紋,根據(jù)公式(1.3),給出文檔指紋的計(jì)算表達(dá)式3-13,得出文檔指紋3-14。
[0080]2.比對(duì)各粒度指紋
[0081](I)指紋表示
[0082]文檔指紋是一個(gè)整數(shù)D ;段落指紋是一個(gè)m維行向量(列向量亦可),表示為:
[0083]P= (P1 p2 …pm)τ (1.4)
[0084]其中,Pi表示第i段的指紋。句子指紋向量表示為:
) ^lI %...-vIn
[0085]_ '?2 1= %(1-5)
*.* I■ ■...*..β* λ m
、Sm)Sm2 ***
[0086]Si表示第i段的句子指紋向量,Sij為Si的分量,即第i段第j句的句子指紋。
[0087]圖4表示了文檔3-1的各粒度指紋。其中文檔指紋是4-1,段落指紋是4-2,句子指紋是4_3。
[0088](2)比對(duì)指紋
[0089]定義:設(shè)Θ是定義在實(shí)數(shù)集合上的二元運(yùn)算,對(duì)于實(shí)數(shù)集合M中任意元素m和實(shí)數(shù)集合N中任意元素η,當(dāng)m = n時(shí),πιΘη = I,當(dāng)m古η時(shí),ηιΘη = 0,稱Θ是實(shí)數(shù)集合上的比對(duì)運(yùn)算。
[0090]下面給出比對(duì)指紋的具體算法如下:
[0091]算法:比對(duì)指紋算法。
[0092]輸入:待檢測的文檔a,已經(jīng)計(jì)算過的文檔a的篇指紋D,段落指紋
[0093]P= (P1 p2...Pm),句子指紋 S ;
[0094]輸出:詳細(xì)的檢測結(jié)果。
[0095]具體步驟為:
[0096]步驟1:對(duì)待檢測文本分詞,抽取篇指紋Q、段落指紋R = (r, r2…rm)T和句子指紋N ;
[0097]步驟2:如果AOQ為I則轉(zhuǎn)到步驟6,否則進(jìn)入步驟4 ;/*文本數(shù)據(jù)沒有被篡改是所有者的原始數(shù)據(jù)*/
? rI I' ?γ!Θ(α Pi …A?)]
[0098]步驟4: Λ?P=卜?(p〗ρ2...pm)= rjB^Pl Pl…定位被篡改數(shù)據(jù)的
I I* *?I
UJPl …Pm))
段落直 r!、r」...和 P1、P」...Pn ;
[0099]/*其中,F(xiàn)1 (P1 p2…pj的運(yùn)算結(jié)果是每個(gè)元素由m位二進(jìn)制數(shù)字組成的矩陣序列,O代表在此位置不匹配,I代表在此位置匹配,最終檢測結(jié)果為η個(gè)m位的二進(jìn)制數(shù)。若A Θρ」=1,但i古j,記錄1、j的值(文本的段落順序被調(diào)整),將R和P中對(duì)應(yīng)比較結(jié)果值為I的段落去掉,這樣就大大減少了系統(tǒng)的計(jì)算時(shí)間,下面將進(jìn)行句子指紋矩陣的運(yùn)算*/
V
[0100]步驟5:檢測對(duì)應(yīng)A、rj...rk的句子指紋j (吟*7...定位被篡改句子的位置 nim, nJs...nkp ;
[0101]步驟6:返回檢測結(jié)果的具體信息。
[0102]下面通過具體案例進(jìn)一步闡述比對(duì)指紋模塊的具體實(shí)現(xiàn)。結(jié)合圖5說明。5-1是文檔3-1存儲(chǔ)在服務(wù)器端被篡改之后的文檔,5-2是文檔5-1的指紋,S卩“指紋②”。假設(shè)圖4是文檔3-1的“指紋①”。比對(duì)“指紋①”與“指紋②”的具體過程如圖6所示。首先比對(duì)文檔指紋6-1,由于兩次計(jì)算的文檔指紋不同,因此確定文檔被篡改了。為了定位篡改位置,繼續(xù)比對(duì)段落指紋6-2,根據(jù)比對(duì)結(jié)果,得知第2段被篡改了。下面進(jìn)一步比對(duì)第2段的句子指紋6-3,確定出第3句被篡改了。所以得出結(jié)論:文檔的第2段第3句被篡改。
【權(quán)利要求】
1.一種計(jì)算文本文檔的各粒度指紋的方法,各粒度指紋包括句子指紋、段落指紋及文檔指紋,其特征在于,步驟為: 步驟1、若當(dāng)前文本文檔為中文文本文檔,則利用分詞系統(tǒng)將中文文本文檔中的各個(gè)中文詞分割開,進(jìn)入步驟2,若當(dāng)前文本文檔為外文文本文檔,則直接進(jìn)入步驟2 ; 步驟2、對(duì)中文文本文檔中的每個(gè)中文詞或外文文本文檔中的每個(gè)外文詞編碼; 步驟3、利用每個(gè)中文詞或每個(gè)外文詞及其對(duì)應(yīng)的編碼計(jì)算得到中文文本文檔或外文文本文檔中每個(gè)句子的句子指紋,當(dāng)且僅當(dāng)兩個(gè)句子中每個(gè)中文詞或每個(gè)外文詞及其位置相同時(shí),兩個(gè)句子的句子指紋相同; 步驟4、利用句子指紋計(jì)算得到中文文本文檔或外文文本文檔中每段中文或每段外文的段落指紋,當(dāng)且僅當(dāng)兩段中文或兩段外文中每個(gè)中文詞或每個(gè)外文詞及其位置相同時(shí),兩段中文或兩段外文的段落指紋相同; 步驟5、利用段落指紋計(jì)算得到中文文本文檔或外文文本文檔的文檔指紋,當(dāng)且僅當(dāng)兩個(gè)中文文本文檔或兩個(gè)外文文本文檔中每個(gè)中文詞或每個(gè)外文詞及其位置相同時(shí),兩個(gè)中文文本文檔或兩個(gè)外文文本文檔的文檔指紋相同。
2.如權(quán)利要求1所述的一種計(jì)算文本文檔的各粒度指紋的方法,其特征在于,在所述步驟3中,利用Karp-Rabin哈希函數(shù)計(jì)算所述句子指紋;和/或在所述步驟4中,利用Karp-Rabin哈希函數(shù)計(jì)算所述段落指紋;和/或在所述步驟5中,利用Karp-Rabin哈希函數(shù)計(jì)算所述文檔指紋。
3.如權(quán)利要求2所述的一種計(jì)算文本文檔的各粒度指紋的方法,其特征在于,利用Karp-Rabin哈希函數(shù)計(jì)算所述句子指紋的公式為:
Sentencefingerprint (W1W2...Wn) = (w12n_1+w22n_2+...modp,式中,Wi 為每個(gè)中文詞或每個(gè)外文詞,Wi是中文詞或外文詞Wi的編碼,P為一個(gè)足夠大的隨機(jī)素?cái)?shù); 利用Karp-Rabin哈希函數(shù)計(jì)算所述段落指紋的公式為:
Paragraphfingerprinr (S1S2...Sm) = (s^h+s;^111-2+...+sm—f+sjmodp,式中,S1, S2,..., Sm是當(dāng)前段落中的m個(gè)句子,Si是句子Si的句子指紋; 利用Karp-Rabin哈希函數(shù)計(jì)算所述文檔指紋的公式為:
Documentfingerprint (P1P2...Pq) = (PftrWpJtr2+...+PtrPkpq) modp,式中,P1, P2,...七是當(dāng)前中文文本文檔或外文文本文檔中的q個(gè)段落,Pi是段落Pi的段落指紋。
4.一種采用如權(quán)利要求1所述的計(jì)算文本文檔的各粒度指紋的方法的服務(wù)器端使用篡改檢測方法,其特征在于,步驟為: 第一步、用戶將中文文本文檔或外文文本文檔從客戶端上傳到服務(wù)器端之后,使用如權(quán)利要求1所述的計(jì)算文本文檔的各粒度指紋的方法計(jì)算生成當(dāng)前中文文本文檔或外文文本文檔的句子指紋、段落指紋及文檔指紋; 第二步、計(jì)算完句子指紋、段落指紋及文檔指紋之后,服務(wù)器將所有句子指紋、段落指紋及文檔指紋發(fā)回給客戶端,用戶保存接收到的句子指紋、段落指紋及文檔指紋; 第三步、當(dāng)用戶訪問在第一步中上傳至服務(wù)器端的中文文本文檔或外文文本文檔時(shí),先在服務(wù)器端利用如權(quán)利要求1所述的計(jì)算文本文檔的各粒度指紋的方法重新計(jì)算該中文文本文檔或外文文本文檔的句子指紋、段落指紋及文檔指紋,然后與用戶保存的句子指紋、段落指紋及文檔指紋比對(duì),比對(duì)時(shí),先比對(duì)文檔指紋,若相同,則表示當(dāng)前中文文本文檔或外文文本文檔沒有被篡改,用戶可以放心訪問,否則,逐段比對(duì)段落指紋,找出不相同的段落指紋所對(duì)應(yīng)的段落,這些段落為被篡改段落,再在每個(gè)被篡改段落中逐句比對(duì)句子指紋,找出不相同的句子指紋所對(duì)應(yīng)的句子,從而定位至當(dāng)前中文文本文檔或外文文本文檔中的哪些段落的哪些句子被篡改,通過客戶端向用戶提供篡改證據(jù)。
5.如權(quán)利要求4所述的一種服務(wù)器端使用篡改檢測方法,其特征在于,在所述第三步后還包括: 第四步、對(duì)于第三步中用戶可以放心的中文文本文檔或外文文本文檔,若用戶將其下載到客戶端后進(jìn)行了二次編輯,則將該二次編輯后的中文文本文檔或外文文本文檔再存儲(chǔ)到服務(wù)器端后,使用如權(quán)利要求1所述的計(jì)算文本文檔的各粒度指紋的方法重新計(jì)算生成當(dāng)前中文文本文檔或外文文本文檔的句子指紋、段落指紋及文檔指紋,并將其保存到客戶端,用于下次檢測。
6.一種采用如權(quán)利要求1所述的計(jì)算文本文檔的各粒度指紋的方法的客戶端使用篡改檢測方法,其特征在于,步驟為: 第一步、用戶在客戶端新建、編輯生成中文文本文檔或外文文本文檔后,在當(dāng)前中文文本文檔或外文文本文檔上傳到服務(wù)器端之前,使用如權(quán)利要求1所述的計(jì)算文本文檔的各粒度指紋的方法計(jì)算當(dāng)前中文文本文檔或外文文本文檔的文檔指紋、段落指紋及句子指紋,并將它們保留在客戶端; 第二步、文檔指紋、段落指紋及句子指紋存儲(chǔ)后,用戶將當(dāng)前中文文本文檔或外文文本文檔上傳到服務(wù)器端; 第三步、當(dāng)用戶再次訪問上傳到服務(wù)器端的中文文本文檔或外文文本文檔時(shí),先將它下載到客戶端,利用如權(quán)利要求1所述的計(jì)算文本文檔的各粒度指紋的方法計(jì)算該中文文本文檔或外文文本文檔的文檔指紋、段落指紋及句子指紋,然后與客戶端保存的文檔指紋、段落指紋及句子指紋比對(duì),比對(duì)時(shí),先比對(duì)文檔指紋,若相同,則表示當(dāng)前中文文本文檔或外文文本文檔沒有被篡改,用戶可以放心訪問,否則,逐段比對(duì)段落指紋,找出不相同的段落指紋所對(duì)應(yīng)的段落,這些段落為被篡改段落,再在每個(gè)被篡改段落中逐句比對(duì)句子指紋,找出不相同的句子指紋所對(duì)應(yīng)的句子,從而定位至當(dāng)前中文文本文檔或外文文本文檔中的哪些段落的哪些句子被篡改。
7.如權(quán)利要求6所述的一種客戶端使用篡改檢測方法,其特征在于,在所述第三步后還包括: 第四步、對(duì)于第三步中用戶可以放心的中文文本文檔或外文文本文檔,若用戶將其下載到客戶端后進(jìn)行了二次編輯,則使用如權(quán)利要求1所述的計(jì)算文本文檔的各粒度指紋的方法重新計(jì)算生成當(dāng)前中文文本文檔或外文文本文檔的句子指紋、段落指紋及文檔指紋,并將其保存到客戶端,用于下次檢測后,再將當(dāng)前中文文本文檔或外文文本文檔上傳至服務(wù)器端。
【文檔編號(hào)】G06F21/10GK104239753SQ201410315438
【公開日】2014年12月24日 申請(qǐng)日期:2014年7月3日 優(yōu)先權(quán)日:2014年7月3日
【發(fā)明者】劉國華, 王檸, 盧婷 申請(qǐng)人:東華大學(xué)