2015年5月4日

數位影像密碼學

肉眼所見的常常不一定是事實,在影像密碼的領域中更是如此。有時候,危險正潛藏於你所下載的圖片中……

作者/曾正男(臺灣大學數學博士,曾為政治大學教學發展中心數位學習組組長, 現職為政治大學應用數學系副教授,專長為數值分析)

新世代的年輕人從小接觸電腦、手機以及數位相機中的照片,而這些生活中我們熟悉的照片,其實都是以數字的方式被儲存著。靜態的彩色影像在資料結構中通常是以m×n×3(RGB)或是m×n×4(ARGB) 的形式儲存, 其中m與n代表影像在x軸與y軸的像素(Pixel), 這些像素以矩陣的方式密集排列,每一個點會受到RGB或ARGB的控制發出不同的顏色與亮度,集體呈現的結果就是我們看到的圖片。由於光學的三原色是紅色(Red, 簡稱R)、綠色(Green, 簡稱G) 以及藍色(Blue, 簡稱B),這就是我們經常聽到的RGB。由於網頁應用的需求,像素若具有透明度,在不同圖層堆疊時會有更豐富的應用,因此在每一個像素上有時會多一個參數來控制透明度(Alpha, 簡稱A)。

由於人類視覺相較於聽覺是一個很不精準的感官系統,加上視覺受到腦的記憶經驗影響很大,影像作為承載訊息的工具,不單單只是顯示圖像上的內容,其數位訊息中可以附帶的資訊其實比想像中的還多。特別是當現在的影像畫素不斷地提升,影像的檔案大小也隨之增加,越大並且內容越複雜的影像就越能攜帶更多的資訊。以下我將介紹幾種在科幻電影中經常出現的訊息傳遞方法,讓讀者了解數位影像在密碼學上的應用。

視覺密碼
想像一個場景, 幾位軍事將領要開啟核彈的密碼,謹慎起見便將密碼分散在兩位軍事將領手上。他們走到核彈按鈕前,各自從自己的公事包中拿出一張半透明的膠片,膠片上呈現混亂無意義的圖像。當兩位將領將膠片擺放在一起,重疊的膠片上浮現了核彈的密碼。如下圖:
視覺密碼(Visual Cryptography)是1995年由奈爾(Moni Naor)和夏米爾(Adi Shamir)所提出,是一種不需要透過複雜解碼過程就能解密的訊息攜帶形式,通常用在密碼保護,特別是一個密碼的解除需要兩人以上時使用。過去視覺密碼是將加密的內容分散印製在透明的膠卷上,如今我們可以用帶有透明度的數位圖像來代替。解密前的圖像看起來是雜亂無序的圖像,並且是以半色調(halftone)的形式呈現。簡單的原理如下圖:
視覺密碼的問題可以用數學模型來呈現,假設要把訊息分給K個人攜帶, 若影像的大小為m×n, 我們令Ak是給第k個人的圖,Ak(i,j)是第(i,j) 位置的像素,W是一個平均化的算子,我們可以想像他的作用是把圖像從大張縮成小張的圖(例如從m×n縮成m/2×n/2),T是我們期待看到的結果,假設T的大小也是m/2×n/2。由於數位影像疊加之後數值超過255的部分都會以最大值顯示,因此我們定義一個新的加法⊕,當一般的a+b≥255時a⊕b=255。另外我們定一個描述亂度的函數R,當R(Ak) 的值越大,表示圖像越沒有訊息。這樣我們要解的問題就是求min{|T-W(⊕kAk)|-ΣR(Ak)}的最佳化問題,他的限制條件為Ak(i,j) 的值為0 到255的整數。這個目標函數所追求的目標是疊加後的圖經過遠遠的觀看後與期待的訊息近似,並且每一張個別的Ak都是雜亂的。

這類問題的解通常不只一個,在應用上還可以延伸為把訊息分給K個人, 並且任意r個人一起提供圖片便能把密碼解開。甚至是更複雜的形式為,某幾個人的組合可以顯示第一組密碼,另外某幾個人的組合可以顯示第二組密碼,並且有些人是重複的,我們稱為Key man。這類的問題非常有趣,中文的碩士論文也很容易在網路上取得,有興趣的讀者可以在網路上搜尋視覺密碼的關鍵字取得更深入的內容。

數位影像浮水印
浮水印技術最早是用來保護影像的著作權,通常我們可以在網路上看到有些圖片會打上半透明的浮水印用來宣示影像的所有權或出處,如下圖。
這類浮水印技術我們稱為可識的浮水印。由於人的眼睛是一個不甚敏銳的感覺器官,意思是說,眼睛對於圖像的微小變化是難以察覺的,再加上人腦會自動補足許多缺漏的訊息讓人誤以為看見了(錯覺)。利用這種方法修改影像,使影像乍看之下沒有什麼改變,但是其中卻隱含著訊息的技術稱為不可視的數位影像浮水印技術,簡稱數位影像浮水印(Digital Watermarking)。

和視覺密碼不同,數位影像浮水印是在一張圖像內加入訊息,並且在提出訊息時需要特別的演算法來解密。此技術早期是以宣示著作權為主,在應用上是在圖片上加上可視的浮水印,然後又加上不可視的浮水印。當可視的浮水印被人以修圖的方式消除後,不可視的浮水印仍舊存在於圖像之中,因此可以繼續保護圖像的所有權。

數位影像浮水印技術很強調浮水印存在於圖像中的剛性(Robust),亦即加密的內容有一定程度的耐受性,來面對正常的影像處理攻擊。意思是說一個加了訊息的浮水印影像,當我們用一些常用的影像處理方式,例如改變大小、旋轉、平移、改變亮度、改變平滑度、改變對比度等等,在影像內的浮水印不會因為這些簡單的影像處理就被破壞了。

因此,數位影像浮水印技術在數學上也是一個最佳化問題。假設原圖是X,要加密的訊息稱為w,加密後的影像稱為Y,編碼方式為E,其目的是把訊息變成影像。解碼方式為D,其目的是把圖像再轉變為訊息。攻擊法為At,其中的參數t表示不同的攻擊方式。V是我們視覺上可辨認的一個函數,若V(X) ≠ 0 表示人眼看得見。數位影像浮水印的目限制式如:Y = X + E(w),V(X-Y) = 0。其目標函式為:minΣ[|w-D(At(Y)-X)]2

我們希望能找到最一般的E和D使得對於任意的X和w這一組加解密方式都適用,並且對於一般的攻擊都有一定程度的耐受性。例如:
左圖是原圖,右邊是加了數位浮水印的圖。在視覺上我們幾乎
很難看出有什麼差別,但是右邊的圖確實和左邊的圖不一樣。

數位影像浮水印相關的技術不只是用在靜態的數位影像當中,也可以用在數位多媒體的保護,例如動態的影片或是音樂。我們可以想像某人在網路上購買了一個動態影片或是音樂,廠商在多媒體中放入我們感覺不到但確實被加入的訊息,例如購買人的信用卡卡號或是購買的序號。當我們輕易的複製貼上,然後在網路上傳播時,這些看不到訊息在經過廠商解密之後便能查出來當初散播的源頭是誰。建議讀者在散播數位媒體時,要特別留意這些數位媒體的所有權以免觸法。

資料隱藏
倘若我們不考慮影像被破壞的情況下,我們到底可以放進多少資訊而不破壞影像的視覺品質?這個問題即是所謂的資訊隱藏或資料隱藏(Data hiding)。在一般的情況下,越複雜的圖片所能承載訊息的能力就越強,越簡單的圖片就越容易被壓縮。所以,資料隱藏的技術會是搭配壓縮和浮水印所混合而成的技術。亦即,我們希望將隱藏的資訊盡量壓縮,讓資訊的體積越小越好。然後我們希望承載訊息的影像能承載的量越大越好。

資料隱藏的傳統久遠,在很多中古時期的畫作當中,例如:
米開朗基羅畫作隱含意義

不難看出米開朗基羅對於上帝的認識隱含著人類知識的啟蒙,人因為能思考而成為人,人有別於其他生物是因為智力的差異而不是像聖經中所描述,用上帝的魔力,蹦一下,便造出人了。但是這樣的內容不能在當時的宗教與社會氣氛中提出,所以只能隱藏在畫作當中。這是在中古教會畫作中常見的內容,作者把不能明說的道理隱藏在自己的作品裡,希望後人能理解。

這個技術在1980年代因為數位科技的進步又再次被提出來,我們好奇到底一張影像可以夾帶多少資訊?事實上,要把一張圖像藏在另外一張長寬各大一倍的圖像中並不難。如果是一般的文字檔或是excel報表就更容易隱藏了。網路上有一個著名的軟體叫「愛的機器」(love machine), 是由日本人所開發。它可以讓我們把檔案拆解成許多小部分,並且隱藏在圖檔裡面。因此,許多人會把不能公開的私人密帳用這個軟體隱藏在A圖當中,當檢調來查閱時,通常會以為是個人私領域的收藏而忽略。若是把資料藏在個人的家庭照片中,就更不容易被察覺了。

這類技術看起來好像只能作壞事?其實不然,在關於國家安全情報系統的應用上,資料隱藏的技術能保護情治單位人員的人身安全。並且在一個成熟的民主國家中,人民應享有秘密通訊的自由。若我們仍處在一個時常被莫名監聽的環境時,這類技術的發展還是有其必要性。

影像病毒
影像病毒(image virus)難道是病毒藏在影像當中,當我們下載或是瀏覽時就會中毒?聽起來好像有點危言聳聽,到底下載一個圖檔或是瀏覽圖檔時會有什麼危險?

好的作業系統不會讓這件事發生,只要一個圖檔不會突然變成可執行檔並且被執行,照理來說我們應該不用擔心這個議題。但是自動下載圖片和自動執行圖片卻是現今的作業系統和軟體會做的事, 例如Facebook應用軟體每隔一段時間就會自動下載你的塗鴉牆,使得使用者感覺瀏覽速度很順暢。又例如現在的作業系統偵測到圖片時會自動開始匯入的動作或是製作縮圖。這種自動的動作都有機會讓程式受到感染,進而增加影像病毒存在的機會。

影像病毒的概念並不是影像本身成為病毒,確切的說,是影像中隱藏的訊息成為病毒的幹細胞,提供病毒演化與發展的可能。先前的數位影像浮水印技術就可以把病毒需要的原料隱藏在圖片中, 所以病毒本身的程式體積不需要太肥大,如此,病毒就比較容易偽裝並且躲過防毒軟體的偵測。病毒本身只要具有從圖片中辨認出需要的幹細胞的功能,複雜的程式就可以存在這些幹細胞中,讓病毒更能配合作業系統的樣貌,長期潛伏在作業系統內。並且病毒可以隨著不斷提供的圖片,不斷演化,成為各種可能的樣貌。

聽起來好可怕喔!這樣在資訊網路的世界裡不就是處處危機?

是的, 正因為如此我們除了要小心數位資訊的來源之外,我們也更需要新的技術發展, 建立安全圖像的識別方式,甚至是更安全的檔案格式和作業系統要求。數位影像處理不再是屬於資訊工程領域,這裡面的問題涵蓋了數學、資訊、通訊、視覺、人腦、心理與生物等領域。複雜的問題,需要跨領域的知識來面對。


延伸閱讀
1. 張兆元,〈彩色影像視覺密碼的製作〉,2000年。
2. 郭偉晟、胡懷祖、李昱廷,〈強健性雙域數位影像浮水印〉,《國立宜蘭大學電機資訊學報》創刊號,2008年。
3. 陳文淵、卓江南,〈資訊隱藏技術之研究〉,《勤益學報》第二十一卷第一期,2003年。

沒有留言: