文字水印技術與網路安全通訊 (轉)

worldblog發表於2007-12-13
文字水印技術與網路安全通訊 (轉)[@more@] 

與通訊:namespace prefix = o ns = "urn:schemas--com::office" />

  何南忠  李聲濤

Huazhong University of Science and Technology  Wuhan 430074, People's Republic of China

 E- : lst_foxhust@263

 

 

摘要

  針對現在的數字水印技術在數字圖象水印上的發展,本文提出利用行移編碼,字移編碼,特徵編碼實現的文字水印技術.這種水印技術比圖象水印技術有著實現簡單,小量,高等優點。

關鍵字

行移編碼 字移編碼 特徵編碼 不可否認

 

正文

  為簡單起見,現將模型中編碼,金鑰,反編碼省去。即為:資訊→嵌入演算法(載體)→隱秘載體→提取演算法(載體)→資訊。

  在當今電子資料大量代替傳統的紙張文件交換的同時,對資料安全性要求越來越高。我們利用傳統的數字演算法和數字資訊隱藏技術相結合的辦法使資料的安全性得到更大的提高。同時我們利用文字作為載體,這比圖象水印節約儲存空間,同時還提高了運算效率。而且在現實生活中,文字比圖象應用的頻率更高,更為廣泛。  利用文字水印不但實現資訊的安全通訊,同時還可以保護載體文字的版權,也可以結合傳統的加密演算法實現數字簽名等傳統加密演算法的一些功能。

演算法實現:

要把資訊嵌入到文字中,當然我們可以先對資訊進行預處理,比如加密,格式化等等,假象資訊被格式化為二進位制碼,然後在利用不同的規則將二進位制資訊嵌入到文字中,其中這些規則有:

1、行移編碼
行移編碼,他是透過垂直移動文字行的位置來嵌入水印資訊的.水印資訊和秘鑰共同規定了文件中哪些文字行將被移動.如,我們可以規定上移表示”0”,下移表示”1”,當然這僅僅只是一種事先的約定.這樣沒三行就可以嵌入一位的資訊。
當然,座標記的文字行本身和相鄰兩行都應該足夠長(保證不會被小範圍的修改而縮排),相鄰行為控制行,不作任何移動.這樣就可以透過控制行和標記行來確定嵌入的資訊.
例如:A thermal lattice BGK model with a robust boundary scheme is developed for the Boussinesq

incompressible fluids. In the model the velocity and temperature fields are solved by two independent

lattice BGK equations which are combined into a coupled one for the whole system. The 2D natural

從上面的資訊我們顯然可以得到前兩行的距離比後兩行的距離短,我們根據實現約定好的規則就可以得到這三行文字嵌入的位資訊為“0”;

 

2、  字移編碼
字移編碼,是透過平行移動文字中字元的位置來嵌入水印資訊的.和行移動編碼相似,我們可以事先約定移動的規則。採用這種方法時,相鄰字元之間的距離是不一定相同的.(當然我們用手動的方法也可以嵌入水印資訊);
字移動的話,嵌入每一位資訊需要三個字塊.其中中間的位標記位,與之相鄰的位控制位.(當然這只是針對英文文件)如果是中文文件,我們就需要利用特徵編碼.
例如:

 convection  flow of air in  a differentially heated  cavity of  ect ratio 4 is simulated  for values  of the Rayleigh  number up to 1010.

為簡單期間我們沒有用密碼直接安文字的間隔嵌入水印。如果文字左移為“1”,右移為“0”,我們可以知道上面文字嵌入的資訊位為“ 0110100”

2、  特徵編碼
特徵編碼,是透過改變文字中的各種屬性來嵌入水印資訊.特徵可以是制定字元的位置,字型,段落,字元高度等等(其實上面的行移編碼和字移編碼都屬於特徵編碼範疇).我們還可以透過同義詞替換文字中某些詞彙來嵌入資訊;而且可以定義制定詞彙的間距來控制資訊的嵌入。
例如:

Huazhong University of Science and Technology

上面的資訊水印我們利用字元大小來嵌入,當然我們還有更多的方法。字元比左邊一個大,就為“1”,反之為“0”;這樣我們只需要兩個字元就可以嵌入一位的資訊。我們只在第一個文字Huazhong嵌入資訊,顯然第一字元H為小三號字,第二個字元為四號字。第三個字元為四號字,第四個字元為小四號字……我們的水印資訊顯然為“1001”。

為了容易理解,段落和字元間距變化很大,如果在正規的文字中,這種差異更不容易看出來。以上的資訊嵌入我們都不需要原文件來提取水印資訊,稱之為盲隱藏。我們當然也不是從第一段或第一個字元到最後一段或一個字元沒有規則的嵌入資訊,我們要利用秘鑰K來確定資訊嵌入的位置或者方式。這樣資訊就可能隱藏在文字的每一個地方,從而提高安全性。

 

文件水印資訊的安全性:

要使文件水印資訊具有安全性,那就必須結合完備的密碼體系和傳輸來完成。我們要保證水印資訊的完整性,防止第三方的截獲,修改,刪除和重構。由於水印資訊和文件資訊密不可分,我把水印資訊的保護歸結為對文件的保護。

文件資料的安全性:

文件資料的安全性可分為單機上的文件安全性和網路通訊上的文件安全性,單機的文件安全性可以利用經典的加密演算法來保證,很多其他的文章上都提到了,我們重點來談談網路通訊上的文件安全性

1、  假設:
存在第三方,他可以截獲,修改,刪除和重構在網路輸的所有資訊。

資訊的安全性僅僅基於對私有金鑰的安全性,即,加密演算法和通訊協議四公開的,且加密演算法很強。

以上兩條假設很強,如果在這兩條假設的基礎上可以實現安全通訊,那文件在網路上的安全通訊也成為可能。

2、實現

網路通訊的文件完整性的定義為,即傳送方傳送文件,接收方收到文件後可以確定文件的來源,內容和是否被替換,修改。在通訊中我們還利用到共有金鑰加密。保證通訊的文件完整性可以歸結為防止網路上第三方發起的中間人。

中間人攻擊:(傳送方:Alice  接收方: Bob  第三方:Mallory)

(1)Alice將她的公開金鑰傳送給Bob。Mallory擷取了這個金鑰並將自己的公開金鑰傳送給Bob。

(2)Bob將他的公開金鑰傳送給Alice。Mallory擷取這個金鑰,並將自己的公開金鑰傳送給Alice。

(3)當Alice將用“Bob”的公開金鑰加了密的資訊傳送給Bob時,Mallory擷取它。由於資訊實際上是用Mallory的公開金鑰加密的,他就用自己的私鑰。再用Bob的公開金鑰對資訊重新加密,並將它傳送給Bob。

(4)當Bob將用“Alice”的公開金鑰加密的資訊傳送給Alice時,Mallory擷取它。由於資訊實際上是用他自己的公開金鑰加密的,他用他的私鑰解密資訊,再用Alice的公開金鑰重新加密,並將它傳送給Alice。

即使Alice和Bob的公開金鑰儲存在中,這種攻擊也是可行的。Mallory能夠擷取Alice的資料庫查詢,並用自己的公開金鑰代替Bob的公開金鑰,對Bob他也能做同樣的事情,用自己的公開金鑰代替Alice的公開金鑰。他也能秘密地侵入資料庫,用他自己的金鑰代替Alice和Bob的金鑰。接下來他就簡單地等著Alice和Bob互相談話,然後擷取和修改資訊,他成功了!

 

我們看看一下的連鎖協議:

(1)Alice將她的公開金鑰傳送給Bob。

(2)Bob將他的公開金鑰傳送給Alice。

(3)Alice用Bob的公開金鑰加密她的報文,並將加密報文的一半傳送給Bob。

(4)Bob用Alice的公開金鑰加密他的報文,並將加密報文的一半傳送給Alice。

(5)Alice將加了密的另一半報文傳送給Bob。

(6)Bob將Alice的兩半報文合在一起,並用他的私鑰解密;Bob將他加了密的另一半報文傳送給Alice。

(7)Alice將Bob兩半報文合在一起,並用她的私鑰解密。

這裡重要的一點是:只有報文的一半,沒有另一半,報文是毫無用處的。Bob只有到步驟(6)步才能讀Alice的報文,Alice只有到步驟(7)步才能讀Bob的報文。有很多辦法實現它:

(1)如果採用分組加密演算法,每一分組的一半(例如,每隔一位元)能在每半個報文中傳送。

(2)報文的解密依賴於初始向量,初始向量可以在報文的另一半中傳送。

(3)首先傳送的一半報文可能是加密報文的單向hash,並且加密報文字身可能是另一半。

連鎖協議雖然可以防止第三方對資訊的修改再傳送。但是不能防止他閱讀資訊。我們根據兩條假設何以知道,接收方收到的資訊,第三方必然知道,如果要實現安全通訊,只有再通訊前接收方和傳送方有一個共享的金鑰或資訊(直接用共享金鑰解密傳送就可以了);但這和假設一矛盾了,不過在現實生活中,我們仍有辦法辦到,我們可以透過其他的通訊發放例如信件等等。在這兩條假設下,我們無法實現安全通訊,不過我們可以加大第三方的攻擊難度這是我們可以做到的。

我們利用多路通訊協議和秘密分割協議就可以做到這一點。

(1)  Alice將她的公開金鑰透過秘密分割協議分為n組。Bob只有收到所有的n組或者其中的一部分才能恢復Alice的公開金鑰。

(2)  Alice透過多路通訊協議將所有的金鑰分組發給Bob。即透過不同的通道,例如透過,電話,或者用信鴿等等把分組資訊發給Bob;

(3)  Bob將他的公開金鑰用同樣的方法傳送給Alice。

(4)  Alice用Bob的公開金鑰加密她的報文,並用秘密分割協議分為m組。

(5)  Alice同樣用多路通訊協議分別將加密報文的分組1傳送給Bob。

(6)  Bob用Alice的公開金鑰加密她的報文,並用秘密分割協議分為m組。

(7)  Bob同樣用多路通訊協議分別將加密報文的分組1傳送給Alice。

(8)  Alice將其他分組分別傳送給Bob。

(9)  Bob將其他分組分別傳送給Alice。

…………

(6)Bob收到最後一份分組以後將Alice的所有報文合在一起,並用他的私鑰解密;Bob將他加了密的最後一組報文傳送給Alice。

(7)Alice將Bob所有的報文合在一起,並用她的私鑰解密。

如果想為Mallory帶來更多的麻煩,我們可以隨機在通道集合裡面隨機選取通訊方式,而且在傳送報文秘密分組時同樣透過秘密分割和多路通訊協議傳送。

 

 

 

一些問題的討論:

文字水印理論上和圖象水印相似,但缺少了象傅立葉變換等經典的處理方法,從而在某些方面要比數字圖象水印要欠缺。例如在抗干擾方面。但是我們可以利用多種嵌入方法的結合也可以有效的解決這個問題。當然對應於圖象處理方法的文字處理方法我們值得進一步的探討和研究。

 

參考書目

資訊隱藏技術的實現和應用

應用密碼學

 

 

 



 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-992648/,如需轉載,請註明出處,否則將追究法律責任。

相關文章