Showing posts with label JPEG steganography. Show all posts
Showing posts with label JPEG steganography. Show all posts

Saturday, January 21, 2012

Package: File Camouflage

Want to save a copy of your personal file on a usb pendrive but you are worried that, in case of theft, someone will be able to access your data?

With Free File Camouflage you can hide your files inside a jpeg image!

The software can be used with the main interface or via the explorer "send to" context menu (the first time you only need to select a directory with some images).

All the files are encrypted using AES and hidden inside an image.

What happens if someone tries to open a camouflaged image? Well... nothing! He will only see the image.

Download

中文網頁介紹

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
 
 

Monday, October 23, 2006

JPHIDE and JPSEEK Offical Website

1999年 8 月推出的 JPHIDE and JPSEEK,
作者: Allan Latham ( alatham@flexsys-group.com ),
官方網站網址: http://linux01.gwdg.de/~alatham/stego.html
在官網中, 作者對於這個隱藏軟體的描述如下:
JPHIDE and JPSEEK are programs which allow you to hide a file in a jpeg visual image. There are lots of versions of similar programs available on the internet but JPHIDE and JPSEEK are rather special. The design objective was not simply to hide a file but rather to do this in such a way that it is impossible to prove that the host file contains a hidden file. Given a typical visual image, a low insertion rate (under 5%) and the absence of the original file, it is not possible to conclude with any worthwhile certainty that the host file contains inserted data. As the insertion percentage increases the statistical nature of the jpeg coefficients differs from "normal" to the extent that it raises suspicion. Above 15% the effects begin to become visible to the naked eye. Of course some images are much better than others when used a host file - plenty of fine detail is good. A cloudless blue sky over a snow covered ski paradise is bad. A waterfall in a forest is probably ideal.
其大意是這樣的:
JPHIDE and JPSEEK 是一個可以將檔案藏進 JPEG 影像的程式。在 Internet 上, 有許多類似程式及其各種版本, 然而, JPHIDE and JPSEEK 卻相當特別!JPHIDE and JPSEEK 的設計目的並不僅是簡單地隱藏檔案, 反而是進一步要表達: 要證明某張偽裝影像嵌有檔案是不可能的。給定一個嵌有低嵌入比例 (低於 5% ) 的影像, 在沒有原始影像的情況下, 並沒有辦法去判斷這張影像嵌有訊息的。當嵌入比例增加時, JPEG 係數的統計特性偏離了原來的正常範圍, 就會引起懷疑。超過 15% 的嵌入比例時, 對於影像品質的影響是肉眼可見的。當然, 擁有較多細節的影像是比較適合用來做掩護影像 ( host ) 的。例如: 一張藍天無雲的滑雪天堂的圖片, 就不太適合用來嵌入訊息; 在森林中瀑布拍攝的圖片就是一張理想的掩護影像。
JPHIDE and JPSEEK 有兩個版本:
1. JPHS 0.3 是 Linux 版本, Download: JPHS 0.3 & Signature
2. JPHS 0.5 則是 Window 版本, Download: JPHS 0.5

JPHS 0.5 的執行畫面如下:
From StegoRN

Steganographic Tools for JPEG Images

JPEG standard 是 Internet 上使用最廣泛的影像儲存格式。因此, 網路上也有許多隱藏軟體 ( steganographic software ) 可以將訊息藏到 JPEG 影像中, 然後透過 Internet 傳送秘密訊息。

Niels Provos & Peter Honeyman 在 2002 年 ISOC NDSS'02 研討會提出 " Detecting Steganographic Content on the Internet " 這篇論文, 文中 P.4 提到了三個在 Internet 上較普及的隱藏軟體。
There are three popular steganographic systems available on the Internet that hide information in JPEG images:

• JSteg, JSteg-Shell

JPHide

All of these systems use some form of leastsignificant bit embedding and are detectable by statistical analysis except the latest release of OutGuess. In the following, we describe the specific characteristics of these systems and show how to detect them.

Niels Provos and Peter Honeyman, "Detecting Steganographic Content on the Internet,"ISOC NDSS'02, San Diego, CA, February 2002.

Sunday, March 19, 2006

關於 Jsteg 的點點滴滴 (六) : A. Westfeld

Andreas Westfeld & Andreas Phitzmann 在 IHW99 的論文 "Attacks on Steganographic System" 中, 曾經三次提到 Jsteg:

1. 在 P.3 提到 Tinsley 的年度報告中有介紹一種關於 Jsteg 的攻擊方法。其實, Tinsley 另外還提出 j1, j2 兩個新嵌入法。
Related to this work is Final Year Project of Tinsley on Steganography and JPEG Compression. He describes statistical attacks applied to Jsteg using a different statistical model.
2. P.8 說明為什麼提出來的 Visual Attack 無法運用在破解 Jsteg。
Jsteg - embedding in a transformed domain. Jsteg embeds in JPEG images. In JPEG images, the image content is transformed into frequency coefficients to achieve storage as compact as possible. There is no visual attack in the sense presented here, because one steganographic bit influences up to 256 pixels.
3. P.12 最後, 運用作者所提出來的 Chi-Square Attack, 就可以成功破解 Jsteg。
Jsteg - embedding in a transformed domain. As already noted in Sect. 3, visual attacks do not work concerning Jsteg. Since Jsteg (as EzStego) embeds bits continuously, we use the former presentation of Fig. 16 in Fig 17, Fig. 18 and Fig. 19. The show that our statistical test is quite effective concerning Jsteg as well.


Andreas Westfeld 在 IHW01 的論文 "F5 - A Steganographic Algorithm High Capacity Despite Better Steganalysis" , 也有一整個章節在介紹 Jsteg, Figure 4 甚至將 C 的程式碼給貼出來, 最後, Westfeld 還自己在 IHW99 提出來 Chi-Square Attack 來說明 Jsteg 是不夠安全的。對了, 值得一提的是在判斷 DCT 係數不等於 0 或 1 的方法, Westfeld 的 C 程式是這樣寫的 if ((inval & 1) != inval), inval 就是 DCT 係數, ( inval & 1 ) 是用 bitwise operator & 將 LSB 前面的 bits 通通設為 0 了, 如果這樣做之後, inval 的值仍然沒有改變, 表示一定等於 0 或 1。一般簡單又明瞭的寫法是 if (( inval !=0)||(inval!=1)), 大家可以比較參考一下。
This algorithm made by Derek Upham serves as a starting point for the contemplation here, because it is resistant against the visual attacks presented in [5], and nevertheless offers an admirable capacity for steganographic messages (e. g., 12.8 % of the steganogram’s size). After quantisation, Jsteg replaces the least significant bits (LSB) of the frequency coefficients by the secret message. The embedding mechanism skips all coefficients with the values 0 or 1. Fig. 4 shows Derek Upham’s embedding function of Jsteg in C source code.

However, the statistical attack [5] on Jsteg reliably discovers the existence of embedded messages, because Jsteg replaces bits and, thus, it introduces a dependency between the value’s frequency of occurrence, that only differ in this bit position (here: LSB). Jsteg influences pairs of the coefficient’s frequency of occurrence, as Fig. 5 shows.

關於 Jsteg 的點點滴滴 (五) : N. Provos

Niels Provos & Peter Honeyman 在 2001 年的技術報告 "Detecting Steganographic Content on the Internet" 中是這樣描述 Jsteg 的:
[ P.4 ]
JSteg is an addition by Derek Upham to the Independent JPEG Group's JPEG Software library. The DCT coefficients are modified continuously from the beginning of the image. JSteg does not support encryption and has no random bit selection.

The message data is prepended with a variable size header. The first five bits of the header express the size of the length field in bits. The following bits contain the length field that expresses the size of the embedded content.


IEEE Security & Privacy 在 2003 May/June 這一期中有一篇文章 "Hide and Seek: An Introduction to Steganography", 在 P. 34 的 Figure 3 中, 提到 Jsteg 的演算法。Niels Provos & Peter HoneyMand 是這樣描述 Derek Upham 的 Jsteg 嵌入法:
Derek Upham's JSteg was the first publicly available steganographic system for JPEG images. Its embedding algorithm sequentially replaces the least-significant bit of DCT coefficients with the message's data (see Figure 3). The algorithm does not require a shared secret; as a result, anyone who knows the steganographic system can retrieve the message hidden by JSteg.

Thursday, March 16, 2006

關於 Jsteg 的點點滴滴 (四) : J. Fridrich

Jessica Fridrich 在她 2006 年 Fundamentals of Steganography 課程, Lecture 4 投影片 中, P. 7 談到 Jsteg 的作法, 從投影片中我們清楚的知道 Jsteg 並沒有考慮到四捨五入所造成的影響。完全是針對四捨五入後的 DCT 係數根據要藏入的訊息去修改係數。

Tuesday, March 14, 2006

關於 Jsteg 的點點滴滴 (二) : G. Tena

Guillermito Zone 的作者是 Guillaume Tena, 是法國資訊安全專家, 目前在美國 Harvard Medical School (HMS) 任職。

http://www.guillermito2.net/stegano/jsteg/index.html
這個網頁是我看過描述 JPEG steganography 最詳盡的網頁了, 網頁中我個人覺得很精采的部份, 分別如下:

1. 首先 Tena 將 Internet 上, 可以將訊息嵌入到 JPEG 影像的軟體, Open Source 都列出來, 並仔細說明其狀況為何。

2. 對 JPEG 壓縮技術的解說也非常詳盡, 例子更是清楚。尤其在解釋為什麼要先將 RGB 轉換成 YCbCr 的理由, 為什麼要對 Chrominance 做 subsampling, 更是用圖片解釋得讓你一清二楚。

3. 對 DCT 轉換的解釋, 也讓我佩服。用 y = ax + b 描述一條直線的觀念, 直接點破為什麼要做轉換, 這是我覺得看這個網頁收穫最大的地方。( 因為有關 Jsteg 或 JPEG 的資料, 我已經看過太多了!) 這個例子要學起來, 以後教學生時, 就可以派上用場。

4. Quantization 中, 對於 wavelet 的圖片與說明, 更讓我對 wavelet 更能捉得住感覺。
The higher the values on this table, the more details you will eliminate. You're actually going to eliminate the high frequency coefficients: think about removing the small wavelets on top of a big wave.
5. 在 Lossless compression 這段, 清楚地說明了三個壓縮技術 RLE (Run-Length Encoding), DPCM (Differential Pulse Code Modulation), Huffman coding 分別用在哪邊。之前, 我自己的報告中常忽略的 RLE 與 DPCM, 只是強調 Huffman coding 是不夠清楚的。

6. 網頁最後關於 Field A, B, C 的例子, 更是說明的一清二楚!

另外, 有一件事值得一提, 如果你到 Google 查 Guillaume Tena, 你會發現 Tena 最近很可憐, 他被法國法院判需要賠償一家 Anti-Virus 的軟體公司 (Tegam) 14,300 歐元, 原因是他在 2001 年公佈了他所發現關於 Tegam's Viguard anti-virus software 的瑕疵。為了指出他說的漏洞是確實存在的, Tena 一併公佈需要的 65 bytes 的原始碼。Tegam 因此對 Tena 提出違反著作權的官司, 並求償 900,000 歐元。判決前一陣子下來了, Tena 輸掉了著作權的官司!

天ㄚ, Tena 提出的是該公司軟體的安全漏洞耶!

Tena 在他的 Guillermito Zone 網站入口, 請求大家幫他購買一個新的防毒軟體, 原因是法國規定不可以針對罰金進行募款。募款迅速累積超過一萬歐元了, 網站中每天都有統計, 直到目標值 14,299 歐元達到, 將立即停止募款。

很離譜的法國法院吧!完全不懂什麼是資訊安全!

相關新聞:
1. Harvard University researcher punished for finding bugs (28 February 2006)
2. Donations flood in for 'guilty' security researcher (02 March 2006)