資料蒐集
浮水印技術的演進
一般的密碼系統均假設加/解密的演算法為大家所知道,唯一的秘密是在解密金鑰的選擇。所以很
多人期盼資料隱藏系統設計者,能公開他們使用的方法,只保留所使用的秘密金鑰。可惜的是,很多資
料隱藏系統的供應商,都有要求系統不公開的協議。因此,我們祇能就幾種已公開的技術,給大家做一
介紹。在傳統的數位浮水印技術方面,所使用的方法包括無形的墨水、微粒照像(Microdot)
和字元秘密的安排和調整。以字元做秘密調整的技術,以1994
年由AT&T
貝爾實驗所開發出的
Line&word shtting[ 2 ]為代表,它可將浮水印加入文字檔(例如Postcript
檔)或黑白文件影像。經
由稍微將一些文字往上移或往下移,往左移或往右移,就可以產浮水印效果。茲舉一例如下,若有一句
子稱為S1
:
“We broadcast new steganographic and cryptographic ideas throughout the
world to leteveryone know and use it.”
若對一些文字做一調整稱為S2
:
“We broadcast new steganographic and cryptographic ideas throughout the
world to leteveryone know and use it.”
然後將S1和S2
重疊,可得到以下結果:
We broadcast new
steganographic and cryptographic ideas throughout the world to
leteveryone know and use it.
這是對S1
中的文字new,
ideas,
to,
everyone 前進一格, 對S2
中的文字new,
ideas,
to,
everyone 後退一格, 即可產生這些密秘文字:
new ideas to everyone .
以上這些方法已經不符合目前較嚴格的數位浮水印要求。目前比較新的數位浮水印方法,
大都基
於以下這些理論基礎, 如密碼學, 展頻通訊(Spread-SprectrumCommunication),和雜訊理論
(Noisy Theory)。在技術上,數位浮水印可被表示成一種雜訊樣式,然後將它加入原始的資訊中。這
些被表示成“雜訊”的浮水印或其被加入的位置,可以由所使用方法或所使用的金鑰來決定。我們以圖二
用雜訊來表示浮水印的觀念,其步驟分別是:(1)將浮水印轉換成”雜訊”形式(2)將此雜訊形式之浮水印
加入原來的影像中(3)加入浮水印後的影像基本上與原來影像沒有差異,且浮水印為肉眼觀查不到的,
並僅能用抽取軟體將之還原。

圖二 具有Watermark 的照片
每一資料隱藏的應用須要有不同程度的抵擋資料修改的能力與資料隱藏能力,
如圖三所示,這兩
個因素構成資料隱藏的理論空間, 但是這兩個因素成反比,
所以所有資料隱藏的技術必須在兩個因素
之間取得平衡。

圖三 資料隱藏的技術考量曲線
3.1 簡單系統
目前有很多電腦程式都可以將浮水印資訊加入一個影像。其中大部份程式,只是將加入浮水印的
位元設在圖片區塊位元的最低位元(Least
Significant Bit)。通常使用將浮水印資料加入,是不易被人
眼所觀察出來的。但也並不是每個位元,都適合加入資料。若改變一些位元在一片同色的區域或在明顯
變化的一邊界上,則可能會被觀察出來。所以有一些系統會使用一些演算法去決定合適被加入的位元,
例如依周圍位元亮度的變化是否太高(在邊界)或,太低(在同色區域)。當一個位元通過以上測試,大可
以將浮水印資訊加入這些適當位元。不幸的是,這些系統都可能被敵人以一些方法來破壞浮水印資料。
例如利用過濾處理(Filtering)都會改變一些最低位元的值以達到破壞浮水印之目的。一種可行的方式是
使用多餘(Redundancy)的方式,它只是將一個浮水印加入好幾次或加入一個錯誤偵碼。舉例來說,
Bender[3]將浮水印的資料加入一個圖像,以增加或減少很多任選位元組的亮差,這種技術也可用在聲
頻浮水印之處理。
3.2 頻域轉換
為了節省空間,大部份檔案都會經過壓縮處理,這對之前所提資料多餘[4]方法會有相當的破壞。
若一個檔案,必須經壓縮和過濾處理,則可利用一些方式去防止資料的破壞。例如,可使用將浮水印放
在多個位置的方法[5][6]。一種更好的方式是將此浮水印加入此信號的頻域,就是將原始信號轉換成頻
域的各個成份加以改變,這個轉換方法目前常用的有DCT(Discrete
Cosine Transform)[ 7 ],
Walsh 轉換[
8 ],Wavelet
轉換[
9 ]等等。這種將浮水印加入原始信號頻域的各個成份的方法通常
稱為展頻技術。在通訊理論中,
展頻通訊是傳送一個窄頻信號在一個較大頻寬上,所以此信號的頻譜
強度在這個通道,看起來很像雜訊。在此種數位浮水印技術中,數位影像或聲頻信號代表寬頻通訊頻
道,而浮水印則代表窄頻信號。
有兩個不同的展頻技術常被很多系統廣泛使用,即直接序列(Direct-Sequence)和跳頻
(Frequency Hopping)方法。在直接序列中,浮水印信號係藉由相位調變原信號(載波信號)與送收兩
方都知道的虛擬號碼序列所隱藏。Digimarc[10]和High
Water FBI(FingerprintedBinary
Information)[11]兩家公司都是使用直接序列將浮水印加入圖像中。而跳頻則是將有用的頻寬分成很
多的頻道,並且跳躍在這些頻道之間,同樣也是使用虛擬號碼序列來觸發,因為跳頻只修改部份位元,
所以它有比直接序列方法更快的速度,但它亦有比較不牢固和容易受攻擊之缺點。將浮水印資料加入轉
換的信號,不只是用在MPEG
壓縮信號,也可用在聲頻信號。一個很有趣的例子是一種在聲頻信號加入
回音的技術稱為“回音隱藏”;此回音信號對信號“0”有0.5ms
的延遲,對信號“1”有1ms
的延遲,因為
這些延遲太短了,故在大部情況都不會被察覺的,只有在cepstral
轉換時,才會被偵測出來。
3.3 金鑰浮水印技術
在現今許多的浮水印系統中,為了使系統更安全,已有一些系統將密碼技術(Cryptography)引
入其中。基於使用密碼技術的不同,數位浮水印也可分為秘密金鑰浮水印系統[12]和公開金鑰浮水印系
統。在秘密金鑰浮水印系統中,送收兩方共同擁有一把秘密金鑰和使用一個傳統祕密金鑰產生器[13],
去產生一串很長的虛擬亂數序列,此虛擬亂數序列可以選擇要將浮水印加入或取樣的位元部份。對於公
開金鑰浮水印系統,假設John
和Mary
沒有機會共同擁有一把秘密金鑰,但Mary
有一把John
公開金
鑰,所以Mary
可以將它要傳送的秘密資料,使用John
的公開金鑰加密,然後將這些密文,依照加入
浮水印的方式加入原來的系統中。由於祇有John
有解密金鑰,故只有John
可以將以信號取出
(extract)。