2007年3月22日 星期四

Week 3 : 想一個破解LSB的方法

Week 3 from 2007/03/15 - 2007/03/21

GIF 屬於調色盤(Palette-based format) 類型的影像資料,支援 256 色。

所謂的256色是指,整張圖片上所有的顏色種類不超過256種顏色。

256 色圖中的每個像素值的範圍都介於 0~255 之間,

256 色圖的像素值,並非代表色彩,而是色彩的編號。

假若一張圖只有 40 種顏色,則在256色圖必須在像素外,紀錄另外一張表格,

這張表格稱為 調色盤 (Palette)。

調色盤上面最多只能紀錄 256 種顏色。

每一張 256 色的圖都有自己的調色盤。


了解了調色盤以後,接著要了解LSB的藏匿方式,

了解了 LSB 後,要破解LSB最直覺的方式,

就是直接把圖片的每個像素中的最後一個位元取出來,

如果取出來後能夠形成一張圖片,或是隱約形成某個圖案,

則說這張圖有藏匿影像。

當然這樣做有它的缺點,

因為機器無法判斷取出來的訊息是有意義的圖片,

圖片也可能藏匿加密過後的影像或是訊息,如果直接取最後一個位元,

取出來仍然看不出來是一張圖片,或是取出看不懂的訊息。

到此,我們了解到,資訊隱藏不一定是藏圖或是文字檔,

有可能是藏匿另外一個已經加密過的資料,這樣的作法讓破解更加的困難。

而取出每個像素的最後一個位元,對於LSB的變形演算法,未必可行,

我所謂的LSB變形的演算法是指,訊息在不一定是隱藏在最後一個位元,

有可能按照別的方式,例如藏在像素的倒數第二個位元,

或是每兩個像素才藏匿一次位元,

或是將原先由左而右藏位元的方式,改成由上而下藏位元。

指由 Row-Major 藏位元的方式改成 Colunm-Major 的方式。

所以這個方法並不是很恰當。


而另外一種方式,檢查偽裝圖片的調色盤,看看是否被分成了32個群。

但是若被嵌入的圖片,原先的色彩就少於32 種顏色,

則無法用這個方式判斷藏匿了資料。

當藏匿的圖片本身顏色數目就很少,資料量不大時,

則看不出來調色盤變成了32 群(小於32群)。

有時候,甚至只是藏匿幾個Bytes的訊息,例如藏匿一句英文。

這種看查看調色盤的方式也會失敗。

2 則留言:

王小華Blogger 提到...

若最後一位元無法得到結果,便嘗試取最後兩個位元或三個位元,或其他的方式,猜測所有可能的隱藏方式加以破解,也許的得到驚人的結果!

Rex 提到...

與其是完一個bit晉身到2個bit...不如直接把圖切成位元平面用visual attack的方式去判定,再者LSB匿藏的編排方式也不見得是固定的,所以就一張m*n的圖像去分析是否有information hiding則有mn!的方式須需要去查...