2008年9月2日 星期二

Working - Jiayu 11

時間:2008/09/02
進度:windows環境下argv內容測試

內容:

一、第一種argv輸出方式
 ①撰寫輸出argv內容的程式
  
 ②編譯執行以產生.exe的執行檔(本例為TEST1.exe)。
 ③打開命令提示字元(開始>>附屬應用程式>>命令提示字元)。
 ④更改路徑為TEST1.exe所在目錄, 或將TEST1.exe移至預設目錄。
 ⑤輸入指令:TEST1 -k "123" -d message.txt original.jpg stego.jpg
 ⑥顯示argv的輸出:
  TEST1 -k "123" -d message.txt original.jpg stego.jpg
 []顯示各參數時, 程式裡是以" "空格區隔兩參數



二、第二種argv輸出方式
 ①撰寫輸出argv內容的程式
  
 ②編譯執行以產生.exe的執行檔(本例為TEST2.exe)。
 ③打開命令提示字元(開始>>附屬應用程式>>命令提示字元)。
 ④更改路徑為TEST2.exe所在目錄, 或將TEST2.exe移至預設目錄。
 ⑤輸入指令:TEST2 -k "123" -d message.txt original.jpg stego.jpg
 ⑥顯示argv的輸出:
  T - 1 - m o s
 []顯示各參數時, 程式裡是以" "空格區隔兩參數



三、測試結果
 

2008年8月21日 星期四

Defending Against Statistical Steganalysis - 心得與筆記(1)

關於OutGuess的Embedding Process

整段文章中,最常使用的關鍵字為「redundant bits」,關於「redundant bits」,在老師的blog有一段文章如下:『冗餘位元(redundant bits) 就是經過修改也不會在掩護媒體中產生會被偵測出來的品質下降現象(degrading)。』
而OutGuess的理念就是將機密訊息嵌入到Redundant Bits。

寫在隱藏之前,作者提到了他將Embedding Process切割成兩個步驟:
1. Identification of redundant bits. (將redundant bits辨別出來)
2. The selection of bit in which the hidden information should be placed.(挑選適合放置隱藏訊息的地點)

關於切割成這兩個步驟的理由,老師的blog提到:『切割成兩個步驟的好處是容易取代(easy replacement), 如果要將本篇論文提出的方法在別的資料格式中實作出來, 只要將 identification algorithm 換掉, 然後用新的選擇策略(selection strategy)即可。』

也就是說,由於cover medium的並非只有JPEG這種格式,雖然本篇論文是以針對JPEG格式來撰寫的,切割成這兩個步驟的狀況下,只要修改一下演算法,也可在其他不同格式的cover medium實做OutGuess的理念。

3.1 Identification of Redundant Bits

一份資料的redundant bits建立在cover medium的輸出格式上,不同格式的cover medium所能計算出的redundant bits不同。此外,也必須思考「cover medium在轉換成最終格式時的資料壓縮如何做到最低程度的修改。」

引用自老師的blog:
作者闡述了一個觀念, 用來嵌入機密訊息的冗餘位元通常和影像的儲存格式相關。整個嵌入程序自然也和輸出格式有關。通常壓縮程序也包含其中。要最小化對掩護媒體(cover- medium)的修改(modification), 必須具備有關冗餘位元的相關知識才做得到, 作者提到 OutGuess 實作了整個輸出影像的運算。

在3.1的最後一段提到了:
A bit is locked when the bit has already been used to carry hidden information. This can occur when more than one message is hidden in the cover medium.
這段文字剛好是我長久以來的問題,「如果已經有人針對一個cover medium做了information hiding,但是有人並不知道這件事情,而繼續對同一個cover medium做information hiding的事情,那麼原本的訊息是會被修改掉,還是並存?」
這篇論文提到,他會將已經嵌入資料的部分上鎖,因此如果同一個cover medium都使用OutGuess隱藏訊息的狀況下,資料是有可能並存的(?)

3.2 Selection of Bits
這小節主要是介紹如何挑選redundant bits。

該文章提到,在選擇redundant bits之前,OutGuess先將我們要隱藏的機密訊息用RC4來進行加密,此外也使用RC4的演算法來建立一個PRNG。

在隱藏機密訊息之前,OutGuess會先藏入一個32 state bits來做紀錄之用,其中16-bit用於紀錄亂數seed,另外16-bit用於紀錄隱藏訊息的長度。

關於Seed。
在計算出該cover medium的redundant bits後,將Seed丟入上述利用RC4所產生的PRNG之中,來挑選嵌入訊息的redundant bits的random offsets(隨機距離)。

問題:
在老師的blog中提到,經由文章中所提到的公式計算之後,嵌入的機密訊息的長度會被有效的控制在可嵌入空間的50%之內?

未完 - 待續 (?)

2008年8月12日 星期二

Working - Jiayu 10

時間:2008/08/12
進度:outguess.c
   ① line 1-11
   ② line 13-41
   ③ line 766-786

備註:有一些C的語法想了一陣子, 進度有點緩慢, 請見諒。

2008年8月7日 星期四

Meeting - Jiayu 11

時間:2008.08.05 - 06
地點:S棟六樓
備註:本次為小組研究

內容:
1.產生以OutGuess方法嵌入訊息的圖片
 ①開始安裝Cygwin
 ②Cygwin安裝套件加選OutGuess套件。
  Step1.點選View。
  
  Step2.找到OutGuess,修改Skip選項。
  

 ③將掩護媒體與訊息放在Cygwin目錄底下的home資料夾裡。     
 ④開啟Cygwin,輸入執行OutGuess的指令。
  outguess -k "(自訂的secret key)" -d message.txt Original.jpg Stego.jpg
  

2.畫出藏訊息前後的DCT係數histogram
 ①下載Matlab JPEG Toolbox,放至MATLAB Current Directory目
  錄裡。
 ②讀圖。
  Original = jpeg_read
   ('C:\cygwin\home\Administrator\Original.jpg');
  Stego = jpeg_read
   ('C:\cygwin\home\Administrator\Stego.jpg');

 ③畫histogram。