的情況下,解碼時(shí)所使用的特征也是片段中的所識別字符的數(shù)量的奇偶性。例如,當(dāng)在編碼時(shí)將片段的總字符數(shù)的奇偶性作為特征的情況下,解碼時(shí)所使用的特征也是片段的總字符數(shù)的奇偶性。
[0074]如參照圖1和圖2所描述的那樣,根據(jù)每個(gè)片段的特征,在對該片段進(jìn)行編碼時(shí)采用不同的對應(yīng)關(guān)系。在解碼時(shí),根據(jù)每個(gè)片段的特征可以獲得在編碼時(shí)針對該片段所采用的對應(yīng)關(guān)系。
[0075]在一個(gè)例子中,在編碼時(shí),在片段中的所識別字符的數(shù)量為奇數(shù)的情況下,針對該片段,可以使所識別字符的初始編碼被相應(yīng)候選編碼所替換對應(yīng)于第一位值,而使所識別字符的初始編碼不被相應(yīng)候選編碼所替換對應(yīng)于第二位值。在片段中的所識別字符的數(shù)量為偶數(shù)的情況下,針對該片段,可以使所識別字符的初始編碼被相應(yīng)候選編碼所替換對應(yīng)于第二位值,而使所識別字符的初始編碼不被相應(yīng)候選編碼所替換對應(yīng)于第一位值。相應(yīng)地,在解碼時(shí),在片段中的所識別字符的數(shù)量為奇數(shù)的情況下,針對該片段,將所識別字符的初始編碼被相應(yīng)候選編碼所替換理解為表示第一位值,而將所識別字符的初始編碼不被相應(yīng)候選編碼所替換理解為表示第二位值。同樣,在解碼時(shí),在片段中的所識別字符的數(shù)量為偶數(shù)的情況下,針對該片段,可以將所識別字符的初始編碼被相應(yīng)候選編碼所替換理解為表示第二位值,而將所識別字符的初始編碼不被相應(yīng)候選編碼所替換理解為表示第一位值。
[0076]在一個(gè)例子中,在編碼時(shí),在片段中的所識別字符的數(shù)量為奇數(shù)的情況下,針對該片段,可以使所識別字符的初始編碼被相應(yīng)候選編碼所替換對應(yīng)于第二位值,而使所識別字符的初始編碼不被相應(yīng)候選編碼所替換對應(yīng)于第一位值。在片段中的所識別字符的數(shù)量為偶數(shù)的情況下,針對該片段,可以使所識別字符的初始編碼被相應(yīng)候選編碼所替換對應(yīng)于第一位值,而使所識別字符的初始編碼不被相應(yīng)候選編碼所替換對應(yīng)于第二位值。相應(yīng)地,在解碼時(shí),在片段中的所識別字符的數(shù)量為奇數(shù)的情況下,針對該片段,將所識別字符的初始編碼被相應(yīng)候選編碼所替換理解為表示第二位值,而將所識別字符的初始編碼不被相應(yīng)候選編碼所替換理解為表示第一位值。同樣,在解碼時(shí),在片段中的所識別字符的數(shù)量為偶數(shù)的情況下,針對該片段,可以將所識別字符的初始編碼被相應(yīng)候選編碼所替換理解為表示第一位值,而將所識別字符的初始編碼不被相應(yīng)候選編碼所替換理解為表示第二位值。
[0077]無論采用上述兩種對應(yīng)關(guān)系中的哪種,由于預(yù)先知道特征對對應(yīng)關(guān)系的決定性,因而,根據(jù)特征就可以知道在編碼時(shí)采用了哪種對應(yīng)關(guān)系。
[0078]在步驟S304-6中,可以根據(jù)對應(yīng)關(guān)系從文本中解碼出包含水印信息的位值序列。如前所述,位值序列由第一位值和第二位值排列組合構(gòu)成。
[0079]此外,還可以通過檢查位值序列的完整性來判斷是否存在篡改。
[0080]例如,可以根據(jù)位值序列中連續(xù)的O和連續(xù)I各自的出現(xiàn)次數(shù)來判斷是否存在篡改。
[0081]統(tǒng)計(jì)提取出的位值序列中連續(xù)I的出現(xiàn)次數(shù)和連續(xù)O的出現(xiàn)次數(shù),分別得到連續(xù)I的最大出現(xiàn)次數(shù)和連續(xù)O的最大出現(xiàn)次數(shù)。令連續(xù)I的最大出現(xiàn)次數(shù)為a,連續(xù)O的最大出現(xiàn)次數(shù)為b。取平均數(shù)count = (a+b)/2,對每count為碼元作判斷。如果這count位全為O或I,則可判斷水印信息沒有被篡改。如果這count位不全為O或I,則可判斷水印信息被篡改。
[0082]在判斷不存在篡改的情況下,對位值序列進(jìn)行在編碼時(shí)所采用的間隔編碼的逆向轉(zhuǎn)換和在編碼時(shí)所采用的重復(fù)編碼的逆向轉(zhuǎn)換來獲取加密算法的密文。
[0083]首先,進(jìn)行在編碼時(shí)所采用的間隔編碼的逆向轉(zhuǎn)換。例如,可以根據(jù)count的值,每循環(huán)count-1位去除后面一位,得到去除間隔碼的序列。
[0084]在得到去除間隔碼的序列之后,將每count-1位合并成一位,去除重復(fù)編碼。若這count-Ι位不全為O或不全為I,則通過判斷I的個(gè)數(shù)和O的個(gè)數(shù)的大小決定去重后的碼元,若I的個(gè)數(shù)大于O的個(gè)數(shù),則這一位為1,反之,這一位為O。最終,得到二進(jìn)制的密文。
[0085]在得到密文之后,使用加密算法的密鑰對密文進(jìn)行解密來獲取水印信息。解密過程為加密過程的逆過程。如果在加密時(shí)使用異或循環(huán)加密,則在解密時(shí),對提取出的二進(jìn)制密文循環(huán)與密鑰的每一位進(jìn)行異或,得到解密后的水印信息。
[0086]通過上述過程,可以判斷水印信息是否已被篡改,并且在未被篡改的情況下提取出水印信息。
[0087]以上參照圖1和圖2描述了在文本中嵌入水印信息的方法,并參照圖3和圖4描述了從文本中提取水印信息的方法。在下文中,在不重復(fù)上文中已經(jīng)討論過的某些細(xì)節(jié)的情況下,將參照圖5-圖8來描述在文本中嵌入水印信息的裝置,參照圖9-圖12來描述從文本中提取水印信息的裝置。
[0088]圖5是示出根據(jù)本發(fā)明又一個(gè)實(shí)施例的在文本中嵌入水印信息的裝置500的框圖。
[0089]如圖5所示,裝置500包括識別模塊502和編碼模塊504。
[0090]識別模塊502被配置為在文本中識別這樣的字符:每個(gè)字符的編碼屬于一個(gè)集合,集合包含初始編碼和至少一個(gè)候選編碼,初始編碼和候選編碼屬于同一字符編碼集合但表示具有相同字形的字符。
[0091]編碼模塊504被配置為通過用識別模塊502所識別字符的初始編碼是否被相應(yīng)候選編碼所替換來表示第一位值和第二位值,將水印信息編碼到文本中。具體而言,可以用識別模塊502所識別字符的初始編碼被相應(yīng)候選編碼所替換來表示第一位值和第二位值中的一個(gè)位值,用識別模塊502所識別字符的初始編碼未被相應(yīng)候選編碼所替換來表示第一位值和第二位值中的另一個(gè)位值。
[0092]圖6是示出根據(jù)本發(fā)明又一個(gè)實(shí)施例的在文本中嵌入水印信息的裝置500’的框圖。
[0093]如圖6所示,裝置500’包括識別模塊502和編碼模塊504。
[0094]識別模塊502被配置為在文本中識別這樣的字符:每個(gè)字符的編碼屬于一個(gè)集合,集合包含初始編碼和至少一個(gè)候選編碼,初始編碼和候選編碼屬于同一字符編碼集合但表示具有相同字形的字符。
[0095]編碼模塊504可以包括提取單元504-2、對應(yīng)關(guān)系確定單元504_4和編碼單元504-6 ο
[0096]提取單元504-2可以被配置為從文本中提取包含識別模塊502所識別的字符的多個(gè)片段。
[0097]對應(yīng)關(guān)系確定單元504-4可以被配置為根據(jù)提取單元504-2所提取的多個(gè)片段的每個(gè)片段的特征來確定識別模塊502所識別字符的初始編碼被相應(yīng)候選編碼所替換和所識別字符的初始編碼不被相應(yīng)候選編碼所替換與第一位值和第二位值之間的對應(yīng)關(guān)系。片段的特征例如可以是片段中的字符的數(shù)量的奇偶性。
[0098]編碼單元504-6可以被配置為根據(jù)對應(yīng)關(guān)系確定單元504-4所確定的對應(yīng)關(guān)系將水印信息編碼到提取單元504-2所提取的片段中。
[0099]圖7是示出根據(jù)本發(fā)明又一個(gè)實(shí)施例的在文本中嵌入水印信息的裝置500’,的框圖。
[0100]如圖7所示,裝置500’ ’可以包括識別模塊502、編碼模塊504、密文生成模塊506和位值序列生成模塊508。
[0101]密文生成模塊506可以被配置為根據(jù)可逆的加密算法,利用密鑰對作為明文的水印信息進(jìn)行加密以生成密文。
[0102]位值序列生成模塊508可以被配置為根據(jù)密文生成模塊506所生成的密文來生成包含水印信息的位值序列。例如,位值序列生成模塊508可以被配置為對密文生成模塊506所生成的密文進(jìn)行重復(fù)編碼和間隔編碼來生成包含水印信息的位值序列。
[0103]識別模塊502被配置為在文本中識別這樣的字符:每個(gè)字符的編碼屬于一個(gè)集合,集合包含初始編碼和至少一個(gè)候選編碼,初始編碼和候選編碼屬于同一字符編碼集合但表示具有相同字形的字符。
[0104]編碼模塊504被配置為通過用識別模塊502所識別字符的初始編碼是否被相應(yīng)候選編碼所替換來表示第一位值和第二位值,將位值序列生成模塊508所生成的包含水印信息的位值序列編碼到文本中。
[0105]圖8是示出根據(jù)本發(fā)明又一個(gè)實(shí)施例的在文本中嵌入水印信息的裝置500’,,的框圖。
[0106]如圖8所示的裝置500’’’與圖7所示的裝置500’’的區(qū)別在于,裝置500’’’還包括重復(fù)編碼次數(shù)確定模塊510。
[0107]重復(fù)編碼次數(shù)確定模塊510可以被配置為根據(jù)水印信息的長度和識別模塊502所識別的字符的數(shù)量來確定重復(fù)編碼的次數(shù),并將所確定的次數(shù)發(fā)送給位值序列生成模塊508。位值序列生成模塊508在執(zhí)行重復(fù)編碼時(shí)采用重復(fù)編碼次數(shù)確定模塊510所確定的次數(shù)。
[0108]圖9是示出根據(jù)本發(fā)明又一個(gè)實(shí)施例的從文本中解碼出水印信息的裝置900的框圖。
[0109]如圖9所示,裝置900包括識別模塊902和解碼模塊904。
[0110]識別模塊902被配置為在文本中識別這樣的字符:每個(gè)字符的編碼屬于一個(gè)集合,集合包含初始編碼和至少一個(gè)候選編碼,初始編碼和候選編碼屬于同一字符編碼集合但表示具有相同字形的字符。字符編碼集合例如可以是統(tǒng)一碼集合。
[0111]解碼模塊904被配置為通過根據(jù)識別模塊902所識別字符的