Saturday, June 30, 2007

Detecting LSB Steganography in Color and Gray-Scale Images (RS steganalysis)

Detecting LSB Steganography in Color and Gray-Scale Images
Jessica Fridrich, Miroslav Goljan, Rui Du
Magazine of IEEE Multimedia, Special Issue on Security,
October-November 2001, pp. 22-28.

這篇論文將一張影像中的連續像素切割成一個一個的 pixel group G = (x1, x2, ... xn)。
假設每一個 pixel group 的大小為 2*2, 那麼一張 384*256 大小的影像, 就會有 (384/2)*(256/2) = 24576 個 pixel groups。

針對每個 group, 根據其特性將會被分成 Regular, Singular, Unusable 等三類。用來分類的特性由兩個因素決定:

1. discrimination function f

discrimination function 的目的是評量一個 pixel group 的平坦性(smoothness) 或規則性(regularity)。一般來說, 如果 group 所包含的 noise 愈多, f(G) 就會越大。論文中舉了一個例子, 用相鄰兩個像素值差的總和, 當作 discrimination function 所得到值。

2. flipping: invertible operation F。

flipping 基本上是針對灰階值的一種排列方式(permutation), 且連坐兩次就會回復成原來的灰階值(2-cycles), 即 F(F(x)) = x。論文中定義了三種 flipping operation, 分別為 F1, F-1 及 F0。
The permutation F1: 0←→1, 2←→3, 4←→5, ..., 254 ←→ 255。
The permutation F-1: -1←→0, 1←→2, 3←→4, ..., 255←→256。
 F-1(x) = F1(x+1) -1 , for all x
The identity permutation F0:
 F0(x) = x, for all x

針對每一個 pixel group G, 首先計算 discrimination function f(G) 的值, 然後對 G 做 flipping operation F, 得到 F(G), 然後計算 f(F(G)), 藉由比較 f(G) 與 f(F(G)) 的大小關係, 就可以對 G 進行分類。

 Regular groups: G 屬於 R <=> f(F(G)) > f(G)
 Singular groups: G 屬於 R <=> f(F(G)) < f(G) 
 Unusable groups: G 屬於 U <=> f(F(G)) = f(G)

F(G) 所代表的意思是針對 pixel group G = (x1, x2, ... xn) 中的每一個 xi, 都分別使用相同的 flipping operation F。要針對不同的 xi, 使用不同的 flipping operation F, 必須再提供一個 mask M 來指明。M 是一個 n-tuple 的向量, 每個值都由 -1, 0, 1 所組成。假設 n=4, M=( 0, 1, -1, 0),

FM(G) 所代表的意思就是:
x1 做 F0 的 flipping operation;
x2 做 F1 的 flipping operation;
x3 做 F-1 的 flipping operation;
x4 做 F0 的 flipping operation。

使用 FM 的用意是模擬不可逆雜訊干擾行為(invertible noise adding) 對 pixel values 的影響。

RM 表示在針對 FM , 影像中 regular group 數量所佔的百分比 (percent of all group);
SM 則是 singular group 數量所佔的百分比。因此,

 RM + SM ≤ 1 and R-M + S-M ≤ 1 ( -M: negative mask )

針對作者所提出的方法, 有一個統計假設前提(statistical hypothesis)是:

 RM ~= R-M and SM ~= S-M









(未完待續)

News: 興大生化所教授張OO論文 國科會證實部分造假

新聞原文連結
(中時電子報 2007/06/29 04:39 記者 李宗祐 台北報導)

中興大學生物化學研究所教授張OO,去年十月在國際頂尖學術期刊《細胞》(Cell)發表論文,被檢舉涉嫌變造實驗數據及圖片,引發違反學術倫理風波。國科會歷經半年調查後,確認張OO發表的論文有部分實驗數據造假,裁定停權三年處分;由國科會補助經費正在執行中的研究計畫,也必須全面停止。

掛名學生 追回博士學位

張OO原是我國第一位在《細胞》發表論文的學者,但遭大陸學者質疑,也成為第一個被迫在國際知名期刊撤除論文的學者。

國科會日前召開學術倫理委員會,做成決議,張OO的停權處分追溯自今年元月生效,直至九十八年十二月卅一日為止。期間不得向國科會申請研究計畫補助,連同執行中的卓越計畫也必須全面停止;已審查通過、尚未申請經費補助的研究計畫,不得提出申請。

中興大學也完成內部懲處報告,限制張OO三年內不能升等,不能申請各項獎助。掛名論文第一作者的博士生助理(已畢業,正服役中),追回其博士學位,取消博士學歷資格。

張OO專注生化研究十多年,去年十月與他指導的博士生助理共同掛名,在《細胞》雜誌發表〈發現細菌基因轉錄起始因子作用〉論文,引起國際生物學界高度重視。沒想到,一個多月後,有大陸學者向另一國際知名期刊《科學》(Science)投書,質疑他的實驗數據和圖片經過變造、研究涉及造假。

重做實驗 數據果然不同

面對外界質疑,張OO否認造假,強調是負責實驗操作的博士生助理求好心切,做了些「美化圖片」。但他主動向《細胞》雜誌撤回論文,並要求國科會和中興大學給他三到六個月,重做實驗,提出數據證實研究未造假。

國科會高層官員證實,張OO日前完成重新實驗,把實驗報告交由中興大學五人專案小組審查。該校最近把調查報告呈報國科會學術論理委員會審查。官員表示,張OO重新實驗得出的數據,跟先前在《細胞》雜誌發表的論文不一樣,但還是可以推論出相同結論。但中興大學五人小組及國科會學術倫理委員會均認為,張OO先前發表的論文,確實有部分數據造假。

停權三年 張應不會申覆

官員表示,張OO的博士生助理接受調查時坦承,有些數據是他「自己弄上去的」,這種做法不是張OO說的「美化圖片」而已,而是更嚴重的造假。因此,國科會決定給予停權三年處分。據了解,張OO應該不會提出申覆。

相關新聞: 中興大學知名生化教授張OO撤銷 Cell 雜誌論文

Friday, June 29, 2007

關於 QIM 的點點滴滴(二): G. Wornell

Quantization Index Modulation: A Class of Provably Good Methods for Digital Watermarking and Information Embedding
IEEE Trans. on Information Theory, Vol. 47, No. 4, May 2001
Brian Chen, Gregory W. Wornell

這篇論文從 2001 年 5 月發表迄今(2007/6/29) , 總共被引用了 428 次 ( 在 Google 的學術搜尋上查到的數據 ), 顯示了此篇論文的重要性。

Thursday, June 28, 2007

關於 QIM 的點點滴滴(一): H. Noda

High-performance JPEG steganography using quantization index modulation in DCT domain
Pattern Recognition Letters, Vol. 27 , Iss. 5 (April 2006)
Hideki Noda (野田 秀樹), Michiharu Niimi (新見 道治), Eiji Kawaguchi (河口 英二)


Hideki Noda 野田 秀樹

這篇 paper 的 Section 2 大致介紹了 Chen and Wornell 在 2001年 5 月在 IEEE Trans. on Information Theory 所提出的 QIM 嵌入技術。

QIM embedding 使用 2 個 quantizers 來取代原先用於 JPEG 壓縮程序的 1 個 quantizer, 分別用來嵌入 0 與 1。

假設某個 frequency 的 quantization step size 為 8, 那麼用來嵌入 0 的 quantizer 的 codebook C0 就是 2j*8 所形成的集合, j 屬於整數 Z = {... -2, -1, 0, 1, 2 ... }
C0 = { ... -32, -16, 0, 16, 32, ...}
而另一個用來嵌入 1 的 codebook C1 就是 (2j+1)*8 所形成的集合
C1 = { ... -40, -24, -8, 8, 24, 40, ...}

給定一個 DCT 係數 x, 如果要嵌入 0, DCT 係數就會被量化成 2q, 而 q 被定義成 C0 中最接近 x 的那個 code 所使用的 j 值。同樣地, 如果要嵌入 1, DCT 係數就會被量化成 2q+1。

我們用例子說明, 假設 x 為 19, 要嵌入的訊息為 0, 由於 codebook 中最接近 x 的 code 為 16, 而 16 所用的 j 值為 1, 因此 19 就被量化成 2。如果要嵌入的訊息為 1, 在 C1 中最接近的 code 為 24, 24 = (2j+1)*8, j=1=q , 所以 19 會被量化成 2q+1 = 3。

假設嵌入的二元資料中, 0 與 1 的個數是一樣多的, 使用 QIM embedding 嵌入資料前後, DCT 係數 histogram 的變化情況, 則是接下來的討論重點。

令 hi 表示範圍屬於 i-0.5 < x < i+0.5 的 DCT 係數的個數,
  hi- 表示範圍屬於 i-0.5 < x < i 的 DCT 係數的個數,
  hi+ 表示範圍屬於 i < x < i+0.5 的 DCT 係數的個數。

因此, hi = hi- + hi+

使用 QIM embedding 後, 令 hi' 為量化還原後 DCT 係數的個數, 原來的 hi 有一半並不會遭到嵌入更改原來的值, 而屬於 h(i-1)+ 的係數則是有一半會被嵌入更改變成屬於 hi 的範圍, 同理 h(i+1)- 也有一半變成 hi 的範圍。

因此, hi' = hi / 2 + ( h(i-1)+ + (h(i+1)- ) / 2