Showing posts with label papers. Show all posts
Showing posts with label papers. Show all posts

Sunday, December 15, 2013

Paper: BMP 隱寫工具之嵌入簽章與安全分析

這是我們發表在 2013 全國計算機會議 (National Computer Symposium) 的論文:

BMP 隱寫工具之嵌入簽章與安全分析
Embedding Signature and Staganalysis of BMP Steganographic Tools
李慧娟、李遠坤、蔡振揚
銘傳大學資工系

中文摘要

本論文針對可從網路下載的 BMP 影像隱寫工具進行安全性檢測。首先,針對隱寫工具所產生的 BMP 偽裝影像進行嵌入簽章的萃取實驗。接著,針對嵌入簽章的所在位置與檔頭格式進行比對,提出各個隱寫工具所使用的特定輸出模式。最後,再透過簽章驗證實驗來評估特定輸出模式對安全性的影響。

實驗結果顯示 10 個隱寫工具只有 3 個隱寫工具沒有在檔頭留下任何簽章;其中 2 個隱寫工具是將機密訊息藏在檔案尾端,偽裝影像很容易被辨識出來。因此,只有 1 個隱寫工具所使用的輸出模式是真正安全的。所萃取出的 7 組嵌入簽章,透過簽章驗證實驗結果歸納出當隱寫工具所採用的輸出模式愈特殊時,透過嵌入簽章來篩選偽裝影像的正確率也會愈高。因此,隱寫工具除了將機密訊息嵌入到數位媒體內容之外,在輸出偽裝媒體時,絕對不可採用特定的輸出模式,以避免在檔案標頭區域留下簽章,成為安全漏洞。



投影片下載

Tuesday, August 31, 2010

Paper: Resampling and the Detection of LSB Matching in Colour Bitmaps

Andrew D. Ker
Oxford University Computing Laboratory, Parks Road, Oxford, England

Security, Steganography, and Watermarking of Multimedia Contents VII,
San Jose, CA, USA., 17-20 January 2005, pp. 1-15

(Original SPIE Digital Library Link)

Abstract

We consider the problem of detecting the presence of hidden data in colour bitmap images. Like straightforward LSB Replacement, LSB Matching (which randomly increments or decrements cover pixels to embed the hidden data in the least significant bits) is attractive because it is extremely simple to implement. It has proved much harder to detect than LSB Replacement because it does not introduce the same asymmetries into the stego image. We expand our recently-developed techniques for the detection of LSB Matching in grayscale images into the full-colour case. Not everything goes through smoothly but the end result is much improved detection, especially for cover images which have been stored as JPEG files, even if subsequently resampled. Evaluation of steganalysis statistics is performed using a distributed steganalysis project. Because evaluation of reliability of detectors for LSB Matching is limited, we begin with a review of the previously-known detectors.

1. INTRODUCTION: LSB STEGANOGRAPHY
1.1. LSB Replacement and LSB Matching
1.2. Detectors for LSB Matching
1.3. Evaluation Methodology

2. DETECTORS BASED ON CLOSE COLOUR PAIRS
2.1. Westfeld’s Detector
2.2. Performance Analysis

3. HISTOGRAM CHARACTERISTIC FUNCTION DETECTORS
3.1. Harmsen’s HCF COM Detectors
3.2. Performance Analysis

4. NOVEL DETECTORS
4.1. HCF COM Detectors Calibrated by Resampling
4.2. Alternative Methods of Calibration
4.3. Totalling Colour Components

5. CONCLUSIONS

Saturday, August 21, 2010

Paper: A Method for Automatic Identification of Signatures of Steganography Software

Graeme Bell and Yeuan-Kuen Lee
IEEE Transactions on Information Forensics and Security
Volume 5, Issue 2 (June 2010) pp. 354 - 358.
( Original IEEE Xplore Link )

Abstract

A fully automated, blind, media-type agnostic approach to steganalysis is presented here. Steganography may sometimes be exposed by detecting automatically characterized regularities in output media caused by weak implementations of steganography algorithms. Fast and accurate detection of steganography is demonstrated experimentally here across a range of media types and a variety of steganography approaches.



From StegoRN

這篇論文在該本期刊的 Top Accessed Articles July 2010, 目前排名第 8 位, 還算不錯! (2010/08/21)

Thursday, July 29, 2010

The purpose of steganography is to conceal the very presence of secret information.

剛剛收到的 空中英語教室電子報 200 期, 內容剛好是在討論 very 的形容詞用法, 內容如下:

The U.N.'s Law of the Sea Treaty aims to resolve this very question. (p. 50, line 2)

句中的 very 是形容詞、比較不常見的用法,它有「正是」的強調意味。

例句:

-- The topic you brought up is the very thing we discussed at our last meeting.

-- Barbara realized that her children had done the very thing she feared: they had all moved far from home.

在我的印象中, 我所讀的 steganography papers 中, 的確常常出現這樣的用法:

例如, 在 Jessica Fridrich 所寫的論文 "A New Steganographic Method for Palette-Based Images" 的 Introduction 中, 第二句就是這樣用的:
The purpose of steganography is to conceal the very presence of secret information.

From StegoRN

另外, 在 The Code Breakers 這本書中, Chapter 16 CENSORS, SCRAMBLERS, AND SPIES (P. 513) 中的第一段也有這樣的用法:
CIPHER IS THE LANGUAGE OF SPIES - and usually they must talk in whispers. A spy's success, his very existence, depends on his not being seen or heard. Sending messages in obviously cryptographic form would alert counterespionage to him as effectively as wearing a cloak and dagger. Yet he must transmit, else he is useless. So he eschews the overt methods of secret communications for the covert. He resorts to open codes, hollow heels, invisible inks, microscopically small missives - the steganographic methods that conceal the very fact that a message is being sent. He seeks to communicate unnoticed.

From StegoRN

最近在看的這本書 "Steganography in Digital Media" 中, 第 2 頁的第 2 段, 也是有相同的用法:
Note that the hidden message is unrelated to the content of the letter, which only serve as a decoy or "cover" to hide the very fact that a secret message is being sent. ...


如果你用 "to conceal the very existence" 當關鍵字在 Google 中搜尋, 相信也可以搜尋到許多 steganography 相關的論文或文章呢!

Friday, February 05, 2010

An Overview of Steganography for the Computer Forensics Examiner

Gray C. Kessler,
"An Overview of Steganography for the Computer Forensics Examiner,"
Forensic Science Communications, Volume 6, Number 3



Abstract

Steganography is the art of covered or hidden writing. The purpose of steganography is covert communication - to hide the existence of a message from a third party. This paper is intended as a high-level technical introduction to steganography for those unfamiliar with the field. It is directed at forensic computer examiners who need a practical understanding of steganography without delving into the mathematics, although references are provided to some of the ongoing research for the person who needs or wants additional detail. Although this paper provides a historical context for steganography, the emphasis is on digital applications, focusing on hiding information in online image or audio files. Examples of software tools that employ steganography to hide data inside of other files as well as software to detect such hidden files will also be presented.

這篇文章是專門為不熟悉 steganography 這個領域的人寫的, 想要一探 steganography 領域, 又不想被複雜的數學給牽絆住的人, 很適合從這篇起步。

Contents

1. Introduction
2. Null Ciphers (延伸閱讀)
3. Digital Image and Audio
4. Digital Carrier Methods
5. Steganography Examples
 a. Gif-It-Up
 b. JP Hide-&-Seek (JPHS) (延伸閱讀)
 c. S-Tools (延伸閱讀)
6. Detecting Steganography
7. Steganography Detection Tools
8. Summary and Conclusions
 
 [Original Link]
 

Wednesday, October 07, 2009

Arabic Text Staganography Using Multiple Diacritics

Adnan A. Gutub, Yousef S. Elarian, Sameh M. Awaideh and Aleem K. Alvi, 'Arabic Text Staganography Using Multiple Diacritics,' 2008 5th IEEE International Workshop on Signal Processing and Its Applications (WoSPA 2008), 18-20 March 2008, University of Sharjah, Sharjah, United Arab Emirates. [ PDF ]

Abstract

Steganography techniques are concerned with hiding the existence of data in other cover media. Today, text steganography has become particularly popular. This paper presents a new idea for using Arabic text in steganography. The main idea is to superimpose multiple invisible instances of Arabic diacritic marks over each other. This is possible because of the way in which diacritic marks are displayed on screen and printed to paper. Two approaches and several scenarios are proposed. The main advantage is in terms of the arbitrary capacity. The approach was compared to other similar methods in terms of overhead on capacity. It was shown to exceed any of these easily, provided the correct scenario is chosen.

要弄懂這篇論文所提出來的嵌入技術之前, 確實是需要對阿拉伯文的組成有些基本了解。論文的第二節就提供了關於阿拉伯文的背景知識。

點(dots) 和連接符號(connectivity) 是阿拉伯文字演進所遺留下的兩項特性。

有些阿拉伯字母有 1 個點, 有些有 2 個點, 有些則有 3 個點, 點的旁邊還可以再加上音標(diacritic marks), 我們可以從 Fig. 7 中看到一些例子, 包括點還有出現在文字上下的扭曲音標符號。

From StegoRN

在 21 世紀電腦辭典中, Hamzah 是阿拉伯文字中, 代表閉鎖音之符號;
Merriam-Webster 線上字典的解釋如下:
Hamzah
the sign for a glottal stop in Arabic orthography usually represented in English by an apostrophe

連接符號(connectivity)是書寫阿拉伯文所自然產生的特性, 可將字母完美地連接在一起, 在文件中是完全沒有意義的, 一般稱為 Kashida。

這篇論文的主要構想(idea)來自於電腦如何顯示(或)列印這些阿拉伯文音標!

當電腦要顯示一篇阿拉伯文章時, 讀取下一個內碼, 如果是一個音標, 音標顯示完成後, 游標並不會往前移動, 而是留在原處不動, 並繼續讀取下一個內碼。因此, 如果檔案中存在連續好幾個相同的音標, 或是只存在一個音標, 螢幕顯示的結果都是完全一樣的。因此, 如果用人眼看, 是完全看不出異樣的!

作者提出了 2 個方法來實作這個構想: 文字法(textual approach) 和 影像法(image approach)。

文字法最主要是討論如何將機密訊息編碼, 再嵌入到文章之中。以機密訊息為 110001 為例: 由於二進位的 110001 等於十進位的 49, 因此最簡單的做法就是直接將額外的 49 個相同音標放到文件的第一個音標之後。這樣做的好處是可以嵌入任意大小的機密訊息, 完全不受限制。然而, 機密訊息越長, 要嵌入的音標個數會呈指數成長, 實際上並不可行。

一個變通的方法就是將機密訊息切成一個一個區塊 , 再將區塊中的機密訊息轉成十進位數字, 然後再將額外的音標, 增加到文章中不同的音標後面。同樣以機密訊息 110001 為例, 如果區塊大小為 2, 那麼就會切成 (11)=3, (00)=0, (01)=1, 那麼文章中第 1 個音標後面就會再增加 3 個相同音標, 文章的第二個音標就會增加 0 個音標, 文章中第 3 個音標就會增加 1 個額外的相同音標。所增加的音標總數為 3 + 0 + 1 = 4。

作者提出另一種編碼的方式是同值長度編碼(run length encoding, RLE), 同樣以機密訊息 110001 為例, 經過 RLE 編碼後, 得到 2, 3, 1 , 由於每個 run 的長度不可能為 0, 因此, 只要將每個音標的個數變成 2, 3, 1 即可, 換句話說, 文章中第 1 個音標後面就會再增加 1 個相同音標, 文章的第 2 個音標就會增加 2 個音標, 文章中第 3 個音標就會增加 0 個額外的相同音標, 所增加的音標總數為 (2-1) + (3-1) + (1-1) = 3。

影像法是用來處理文件列印的情況, 分成 softcopy 和 hardcopy 兩種, 前者指的是將文件輸出成列印的檔案, 如 PDF 檔案; 後者則是確實輸出到紙張上。

作者指出在同一個位置重覆列印音標確實會使得該音標看起來較暗一些, 由於亮度並不容易區別, 因此建議採用較小的區塊(2 位元)來編碼, 換句話說, 重覆列印的次數不大於 4 次。

論文的 § 5 Comparison to Similar Techniques, 作者從 capacity 的角度和其他方法做比較。但我還是覺得如果沒有解決 security 的問題, 即使 capacity 再大, 也是枉然。基本上, 作者所提出的技術演算法公開了, stego-text 是很容易被自動分辨出來的, 所以並不符合所謂的「柯克霍夫原則 (Kerckhoffs' Principle)」。

PS: 柯克霍夫原則 (Kerckhoffs' Principle)
密碼系統的安全性不在於防止敵人洞悉密碼演算法, 鑰匙的保密才是決定密碼安全性的唯一關鍵。The Security of cryptosystem must not depend on keeping secret of crypto-algorithm. The security depends only on keeping secret the key.

Monday, September 28, 2009

Arabic Diacritics Based Steganography

Mohammed A. Aabed, Sameh M. Awaideh, Abdul-Rahman M. Elshafei and Adnan A. Gutub, 'Arabic Diacritics Based Steganography,' 2007 IEEE International Conference on Signal Processing and Communications (ICSPC 2007), 24-27 November 2007, Dubai, United Arab Emirates. [ PDF ]

Abstract

New steganography methods are being proposed to embed secret information into text cover media in order to search for new possibilities employing languages other than English. This paper utilizes the advantages of diacritics in Arabic to implement text steganography. Diacritics - or Harakat - in Arabic are used to represent vowel sounds and can be found in many formal and religious documents. The proposed approach uses eight different diacritical symbols in Arabic to hide binary bits in the original cover media. The embedded data are then extracted by reading the diacritics from the document and translating them back to binary.

Diacritics 就是音標的意思, 換句話說, 就是出現在文字旁邊用來表示不同發音的發音符號。作者在 Table 1 中列出了阿拉伯文的 8 種主要的音標。阿拉伯人用這些音標來改變發音或是用來區別不同字義但拼法卻相似的文字(to alter the pronunciation of a phoneme or to distinguish between words of similar spelling)。由於這些音標在文章中是可有可無的(optional), 因此, 作者提出了本篇利用音標來嵌入機密訊息到阿拉伯文章的論文。

From StegoRN

根據作者的統計分析指出, 上述 8 個音標, 出現頻率最高的是 Fatha, 幾乎等於其他 7 種音標出現的總合。因此, 機密訊息 1 被指定嵌入於 Fatha 所出現的位置中, 機密訊息 0 則被指定嵌入於其他 7 種音標所出現的位置。

本篇論文所提出的 嵌入程序(embedding process) 如下:

選定一篇所有文字都標有音標的掩護文章(a fully diacritized Arabic text), 然後從文章的開頭開始向下搜尋,

如果要嵌入的機密訊息是 1, 掩護文章中所遭遇的文字的音標剛好也是 Fatha, 那就完全不更改掩護文章上的文字, 如果所遭遇的文字的音標不是 Fatha, 而是其他 7 種音標, 則刪去該音標; 然後, 繼續在掩護文章中尋找下一個文字, 如果還是其他 7 種音標, 繼續刪去音標, 直到遭遇帶有 Fatha 的文字;

如果要嵌入的機密訊息是 0, 掩護文章中所遭遇的文字的音標並不是 Fatha, 而是其他 7 種音標, 那就完全不更改掩護文章上的文字, 如果所遭遇的文字的音標是 Fatha, 則刪去 Fatha 音標; 然後, 繼續在掩護文章中尋找下一個文字, 如果還是 Fatha , 則繼續刪去, 直到遭遇其他 7 種音標為止。

萃取程序(extracting process)

要取出機密訊息則是從文章的開頭開始向下搜尋帶有音標的文字, 只要判斷該音標為何? 就可以知道此位置所藏的機密訊息為何?

嵌入容量

這篇論文所提出的嵌入技術, 嵌入容量其實非常容易估計, 只要去算算整篇文章最後留下多少音標, 就是嵌入機密訊息的長度。理論上, 假使音標是隨機出現, 藏入的 0, 1 機密訊息也是隨機的, 那就是有 50% 的音標會被保留下來; 然而, 作者在論文中指出, 平均嵌入容量約為 26.16% (= 50% * 3.27% / 6.25% ), 個人覺得應該是阿拉伯文中存在某種的發音特質, 使得音標出現的次序並不是隨機的, 造成嵌入容量無法達到理論值的緣故。

這篇論文最有趣的一點是作者指出所提出的隱藏技術可能會引起別人的注意:

From StegoRN

換句話說, 當你需要使用隱藏技術來掩護秘密通訊的行為時, 你敢使用這篇論文所提出的技術嗎?

恐怕, 作者自己都不敢!

但, 作者很誠實就是了 :)

Wednesday, September 23, 2009

A Novel Arabic Text Steganography Method Using Letter Points and Extensions

Adnan A. Gutub and Manal M. Fattani, 'A Novel Arabic Text Steganography Method Using Letter Points and Extensions,' WASET International Conference on Computer, Information and Systems Science and Engineering (ICCISSE 2007), 25-27 May 2007, Vienna, Austria. [ PDF ]

Abstract

This paper presents a new steganography approach suitable for Arabic texts. It can be classified under steganography feature coding methods. The approach hides secret information bits within the letters benefiting from their inherited points. To note the specific letters holding secret bits, the scheme considers the two features, the existence of the points in the letters and the redundant Arabic extension character. We use the pointed letters with extension to hold the secret bit ‘one’ and the un-pointed letters with extension to hold ‘zero’. This steganography technique is found attractive to other languages having similar texts to Arabic such as Persian and Urdu. Keywords — Arabic text, Cryptography, Feature coding, Information security, Text steganography, Text watermarking.

論文的 Introduction 中, 作者討論到隱藏學(or 偽裝學, steganography) 這個領域應該要從三個角度來探討: 嵌入容量(capacity), 安全性(security) and 強韌性(Robustness)。作者也討論到 steganography 與 cryptography, 還有與 watermarking 之間的差異。

然而, 比較可惜的一點是作者並沒有指出不同的應用, 對各種需求有極大的差異。例如: steganography 的目的是秘密通訊, 要求整個通訊行為絕對不可以引起監控人員(or一般人)的絲毫懷疑。如果沒有辦法做到這一點, 換句話說, 在沒有保證絕對安全(security)的情況下, 縱使有再大的嵌入容量, 終究也是一套完全沒用的技術。

這篇論文所提出來的技術, 用到了阿拉伯文(Arabic)的兩個特徵:
1. 28 個阿拉伯文字母中, 有 15 個字母有點, 其餘 13 個則沒有點。(Fig.1)
2. 可以在字母前後加入不影響語意的擴充文字(extension)。

From StegoRN

因此, 本篇論文所提出的 嵌入程序(embedding process) 如下:

從文章的開頭開始向下搜尋,

如果想要嵌入的機密訊息為 1, 則尋找下一個有點文字(pointed letter), 如果這個有點文字允許加入擴充文字, 則加入擴充文字, 代表此處嵌有機密訊息, 如果不允許加入擴充文字, 則放棄, 再尋找下一個有點文字;

如果想要嵌入的機密訊息為 0, 則尋找下一個無點文字(un-pointed letter), 如果這個無點文字允許加入擴充文字, 則加入擴充文字, 代表此處嵌有機密訊息。同樣地, 如果這個無點文字並不允許加入擴充文字, 則放棄, 再尋找下一個無點文字。

萃取程序(extracting process)

要取出機密訊息則是從文章的開頭開始向下搜尋擴充文字, 當找到擴充文字時, 只要判斷該文字是否為有點或無點文字(pointed or un-pointed letter), 就可以知道此位置所藏的機密訊息為何?

這篇論文完全沒有討論到一篇加入不少擴充文字(extensions)的文章是否會引起別人的懷疑, 在阿拉伯文中, 擴充文字的使用狀況為何? 總之, 一個隱藏技術所應該面對的安全問題, 卻完全沒有討論, 真的很可惜 !

Monday, September 21, 2009

About Arabic Text Steganography (1)

Prof. Adnan Abdul-Aziz Gutub 是沙烏地阿拉伯(Saudi Arabia) 法德國王石油與礦物大學(King Fahd University of Petroleum and Minerals) 電腦工程學系(Computer Engineering Department) 的主席。

最近連續研讀了四篇 Prof. Adnan Abdul-Aziz Gutub 所發表的研討會論文, 論文主軸都是圍繞在 Arabic Text Steganography, 也就是將機密訊息藏在 Arabic Text 檔案之中, 希望達到秘密通訊的目的。

這四篇論文分別如下:

1. Adnan A. Gutub and Manal M. Fattani,
'A Novel Arabic Text Steganography Method Using Letter Points and Extensions,'
WASET International Conference on Computer, Information and Systems Science and Engineering (ICCISSE 2007),
25-27 May 2007, Vienna, Austria. [ PDF ]

2. Mohammed A. Aabed, Sameh M. Awaideh, Abdul-Rahman M. Elshafei and Adnan A. Gutub,
'Arabic Diacritics Based Steganography,'
2007 IEEE International Conference on Signal Processing and Communications (ICSPC 2007),
24-27 November 2007, Dubai, United Arab Emirates. [ PDF ]

3. Adnan A. Gutub, Yousef S. Elarian, Sameh M. Awaideh and Aleem K. Alvi,
'Arabic Text Staganography Using Multiple Diacritics,'
2008 5th IEEE International Workshop on Signal Processing and Its Applications (WoSPA 2008),
18-20 March 2008, University of Sharjah, Sharjah, United Arab Emirates. [ PDF ]

4. Fahd Al-Haidai, Adnan A. Gutub, Khalid Al-Kahsah and Jameel Hamodi,
'Improving Security and Capacity for Arabic Text Steganography Using Kashida Extensions,'
2009 IEEE/ACS International Conference on Computer Systems and Applications,
10-13 May 2009, Rabat Morocco. [ PDF ]

Sunday, December 14, 2008

Defending Against Statistical Steganalysis (part 3)

本篇文章延續 part 2 的討論, 將焦點鎖定在 Section 7 Analysis, 一篇完整的論文, 一定要從各方面去分析所提出的方法, 是否禁得起各方面的考驗。

作者首先交代實驗的影像來源為何?
To evaluate our correction algorithm, we embedded data into 54 pictures taken with a Fuji MX-1700 digital camera around Ann, Arbor, Michigan. The sizes of images is 640*480 pixels.


將照片從數位相機下載到電腦後, 作者設定壓縮品質參數為 75, 將影像重新壓縮, 用來模擬沒有嵌入任何機密訊息的影像。

這組影像中, 可用來嵌入機密訊息的 DCT 係數, 平均為 46,000 個, 最低為 30,000 個, 最高為 97,000。每一個 DCT 係數則提供了一個冗餘位元。 在還沒嵌入機密訊息之前, 作者注意到這些冗餘位元具有較多的 1 (a strong correlation toward one):
On average 63.8% of all the bits are set with a standard derivation of 3.4% between images.
接著, 作者將 Lewis Carroll (愛麗絲夢遊仙境 作者)所著的 "The Hunting of the Snark" 第一章內容 壓縮, 得到 14,700 位元的機密訊息。


Figure 7: Comparison between unmodified images, images with data embedded but without ststistical corrections, and finally images with data embedded plus statistical corrections.

Figure 7 顯示只針對冗餘位元運算的簡單統計結果。針對一個完全隨機, 8 位元大小的資料來源做 Maurer test 的實驗結果是 7.184。在沒有使用校正轉換 (No corrections) 的情況下, 我們注意到 entropy 是從 6.732±0.233 增加到 6.976±0.168, 在 One-Correlation 方面, 也是從 63.41%±3.50% 減少到 59.10%±3.19%; 然而, 當使用校正(Corrections)時, 不管是 One-Correlation 還是 Maurer test, 實驗結果都非常接近沒有嵌入機密訊息的 unmodified images。若僅僅針對那些具備 a priori estimate 的影像實驗, 作者注意到使用校正的實驗結果, 不管是 One-Correction 還是 Maurer test, 實驗結果都更接近未嵌入機密訊息的原始影像。因此, 可以知道使用簡單的統計測試是偵測不到機密訊息的。


Figure 8: The extended Chi-square test detects the embedding for image that has no statistical corrections. Our naive correction is even more detectable. However, an image that receives the proper statistical correction can not be distinguished from an unmodified image.

接下來, 作者要討論的對象是 DCT 係數直方圖 (DCT frequency histogram)。作者指出在使用校正功能的情況下, 將直方圖直接畫出來是無法注意到和原始影像的差別的。Figure 8 則顯示出針對 extended Chi-square test 的實驗結果, 作者指出使用 Algorithm 1 做校正, extended Chi-square test 在影像的每一部分所計算出的嵌入機率(probability of embedding)都是接近 0 的。

Back to: Defending Against Statistical Steganalysis (part 1)
Back to: Defending Against Statistical Steganalysis (part 2)


Niels Provos, "Defending Against Statistical Steganalysis,"10th USENIX Security Symposium, August 13-17, 2001.

Thursday, December 04, 2008

Defending Against Statistical Steganalysis (part 2)

本篇文章延續 part 1 的討論, 將焦點鎖定在 Section 6 Correcting Statistical Deviations, 探討 OutGuess 0.2 是如何做到將掩護影像(cover-images) 的直方圖特性保留在偽裝影像(stego-images) 之中。

從 part 1 的討論, 我們知道 OutGuess 0.2 並沒有把所有的冗餘位元(redundant bits) 都拿來作為機密訊息嵌入之用。在 Selection process 中, 最多只允許一半的冗餘位元放置機密訊息。

隱藏學這個研究領域有一項要特別注意的就是: 通常我們並不知道將來對手會用什麼的統計測試(statistical tests) 來偵測機密訊息是否被嵌入到媒體之中。假設我們已經知道一些特定的攻擊手法, 自然就可以事先防範, 同樣用一些冗餘位元來將這些因為嵌入動作而產生的統計偏差(statistical deviation) 給修正回來。

作者首先考量的是 one-correlation 和 Maurer test。作者在本篇論文 Section 1 Introduction 中曾提及:
For example, ones and zeros are equally likely in a message that has been encrypted. However, the redundant data being replaced might have a strong correction towards either zero or one. Embedding the encrypted message weakens that correction.
Maurer test 則是一個用來測試所產生的二元亂數資料是否符合良好亂數的規範的工具 (Ueli M. Maurer, "A Universal Statistical Test for Random Bit Generators," Journal of Cryptography, Vol. 5, pp 89-105, 1992 )。基本上, 當有一個冗餘位元從 0 被改成 1, 作者便嘗試在附近找到另一個冗餘位元將其從 1 改成 0, 這樣做的優點是可以避免增加冗餘位元的亂度(entropy), 確保機密訊息無法從這種統計方式偵測出來。然而, 使用上述的方法, 針對 JPEG 影像, 會使得 DCT 係數直方圖走樣(distortion), 如 Figure 5 中的 DCT 係數 -2 與 -1 比 Figure 3 更接近, DCT 係數 2 與 3 則幾乎相同。


Figure 5: The naive statistical corrections cause the frequency of adjacent DCT coefficients to be equalized. It is immediately evident that the image is modified.

要避免 DCT 係數直方圖走樣的情況發生, 勢必要進行其他的校正(correction)工作來維持住 DCT 係數的分布。舉例來說, 如果要嵌入機密訊息到第 j-th 個 DCT 係數, 令這個係數值為 DCT(j), 假設 DCT(j) = 2i, 那這個 DCT 係數就會被改成 2i+1。要校正這個嵌入動作所產生的走樣, 就要在臨近位置找一個 DCT 係數, 其值剛好為 2i+1, 然後將其值改成 2i。令所找到的這個位置為 k, 那麼 DCT(k) 將由 2i+1 改變成 2i。如果在每一個改變原值的嵌入動作後, 就立刻執行這項校正工作, 那所產生偽裝影像的 DCT 係數直方圖將與原始的掩護影像一模一樣。

再者, 校正轉換(correcting transform) 基本上就是要保持所有的 DCT 係數 (即 frequency counts) 維持不變。因此, 以 frequency counts 為基礎的統計方式是無法偵測出原始媒體與偽裝媒體之間的差異的。

令 f 表示在直方圖中的一個 frequency count, 而 g 為其相鄰的 frequency count, 在不失其一般性的情況下, 令 f > g。令 α 表示冗餘位元用於嵌入機密訊息的比例。在嵌入機密訊息後, frequency count 變成:
f* = f - α ( f - g ) / 2 ,
g* = g + α ( f - g ) / 2 .
我們知道當嵌入量 α 為 0% 時, f 與 g 之間的差距為 ( f - g ), 當 α 越來越大時, f* 與 g* 會越來越接近, 當 α 達到 100% 時, 則
f* = f - ( f - g ) / 2 = ( f + g ) / 2 ,
g* = g + ( f - g ) / 2 = ( g + f ) / 2 .
換句話說, 當全部的冗餘位元都拿來做為嵌入機密訊息之用時, f* = g* = ( g + f ) / 2.

OutGuess 為了維持 DCT 係數直方圖不變, 必須保留足夠的冗餘位元可以在嵌入機密訊息後, 做為校正轉換之用, 因此底下的式子必須成立:
(1- α ) g ≥ α ( f - g) /2
上述式子可以化簡得到 α 的預先估計值(a priori estimate), 做為嵌入機密訊息時的參考:
α ≤ 2 g / (f + g)
給定一個機密訊息, 我們可以使用這個估計值來選擇一個用有足夠冗餘位元來保持原始 frequency counts 的掩護影像。有趣的是, 擁有更多 DCT 係數的影像, 並不代表擁有更多可供嵌入機密訊息的冗餘位元, Figure 6 說明了此一現象。Figure 6 中的每一個圈圈代表一個影像, 橫軸表示其擁有的 DCT 係數的總數, 總軸表示經過上述公式計算後, 所得到可以用來嵌入機密訊息的比例(fraction)。


Figure 6: The fraction of the DCT coefficients that can be used for data hiding does not increase linearly for images with more coefficients.

作者希望提出的校正轉換(correcting transform) 能夠具備下列兩個需求(requirements):
1. For any part of the image, the distribution of the DCT coefficients should be similar to the unmodified image.

2. The number of corrections necessary to preserve statistical properties should be small.
仔細剖析這兩個需求, 要同時達到最佳狀況是不可能的。因為如果要讓第二個需求 - 校正個數達到最小, 就要先分析整體的嵌入狀況, 再著手校正所產生整體誤差, 在這種情況下, 很可能發生某些部分影像 DCT 係數的分布, 無法跟原始分布一樣。換句話說, 要做到任何部分影像的 DCT 係數分布和原始分布一樣, 就必須在這個部分影像中, 立即把嵌入機密訊息的走樣修正回來。如此, 就不可能使校正數目達到最小。作者針對這個問題, 提出一個妥協的方法, 為每個頻率(frequency) 定義了一個臨界值 (threshold), 來表示該 frequency count 可容忍的誤差值。


Algorithm 1: This transform preserves the statistical properties of an JPEG image. It keeps track of differences in the frequency counts between original and stego medium. If the differences exceed a certain threshold, the frequency count is adjusted.

作者宣稱 Algorithm 1 可以滿足上述兩項需求。Algorithm 1 是在整個機密訊息嵌入完成之後, 才開始執行校正的。在論文中, Algorithm 1 註記了 5 個標記, 我們在此分別說明這些關鍵步驟:
標記 1 : 從原始掩護影像中, 計算 DCT 頻率的直方圖, 並將之存放於陣列 N 之中。

標記 2 : 決定每一個頻率可容忍的誤差值, 並將之存放於陣列 N* 之中。
    計算方式如下:
    k ← number of coefficients in image;
    α← 0.03 * 5000 / k ;
    N*(i) = α * N(i);
    用陣列 N error 記錄每個 DCT 係數目前的累積誤差。
    Nerror (i) ← 0;

標記 3 : AdjDCT ← DCT(i) ⊕ 1;
Algorithm 1 針對每一個可供嵌入的位置, 從影像的開端開始處理, 如果找到一個 DCT 係數遭到修改, 他並不會直接就去想辦法校正回來, 而是看看這個修改是否已經超出可容忍的程度, 如果只是就先去看看與其配對的 DCT 係數 AdjDCT (標記 3) 是否也存在誤差值, 如果也存在誤差值 (標記 4), 那就正好可以抵銷, 不需另外做修正, 以滿足第二個需求 - 校正越少越好。如果 AdjDCT 並不存在誤差值, 再加上本身的誤差尚未超出容忍值 (標記 5), 則暫時先不做校正動作, 僅是累計其誤差值 increment Nerror [DCT(i)]。如果誤差已經超出容忍值 N*[DCT(i)] 了, 為了滿足第一項需求, 必須要立即執行校正程序: 在附近找到配對的係數修正回來, 也就是執行 Algorithm 2: exchDCT(i, DCT(i)); 如果找不到配對的係數, 則記錄其誤差, 留待最後階段再一起做大範圍 (從影像末端 k, 開始往前找) 的校正工作。

如果想要更進一步了解 Algorithm 1 中 threshold frequencies 作用的讀者, 可以嘗試將 α 值先設定為 0, 觀察執行情形, 然後將 α 值先設定為 1, 再觀察其變化, 應該就能比較了解 α 所扮演的角色。


Algorithm 2: Find a specific DCT coefficient and change it to its adjacent DCT coefficient.

Algorithm 1 在兩種情況下會呼叫 Function exchDCT() 進行實際校正的動作:

1. 當累積的誤差 Nerror 已經超過可容任的範圍, 則會立即進行校正動作, 以免累機誤差太大, 不符合需求 1。
If the number of errors for the coefficient, Nerror[DCT(i)], can be incremented without exceeding its threshold value. If another increment is possible, we continue with the next modification. Otherwise, we have to correct the current modification in the image. The exchDCT algorithm is responsible for that.
2. 最後階段, 進行大範圍的搜尋, 將所有的誤差都校正回來。雖然, 並不是所有的誤差都可以校正回來, 但只要能夠將大部分的誤差都校正回來, 就不會被偵測出來。
After all modifications have been examined, we need to correct all remaining errors. Not all the corrections might be possible. However, if we are able to correct most of the errors, changes in the histogram are not detectable.
 
Back to: Defending Against Statistical Steganalysis (part 1)
Go to: Defending Against Statistical Steganalysis (part 3)


Niels Provos, "Defending Against Statistical Steganalysis,"10th USENIX Security Symposium, August 13-17, 2001.
 

Saturday, November 01, 2008

Paper: Detecting Low Embedding Rates


Author: Andreas Westfeld

Information Hiding Workshop 2002 (IHW 2002)
Noordwijkerhout, The Netherlands, 7–9 October 2002

Springer-Verlag Berlin Heidelberg,
LNCS 2578, pp. 324–339, 2003.



Abstract

This paper shows three approaches for detecting steganograms with low change density. MP3Stego is a steganographic algorithm with a very low embedding rate. The attack presented here is a statistical analysis of block sizes. It is able to detect 0.001 % of steganographic payload in MP3 files. The second approach is the use of hash functions to combine sample categories for the chi-square attack. One of these hash functions enables us to detect about 0.2 bits per pixel in true colour images. Another algorithm (Hide) was presented at the last workshop and constructed to be secure against visual and statistical chi-square attacks. The detection method for Hide combines the three colour components of each pixel to recognise an increased number of "neighbour colours".

From StegoRN



這篇論文提出三個偵測低嵌入量(改變量)的隱藏分析技術:

1. 針對 MP3Stego -
分析 MP3 檔案中, 每一個 block 的大小, 透過統計的方式找到一般 MP3 檔案不會出現的特徵, 藉此判定是否被 MP3Stego 這個隱藏工具嵌入機密訊息。實驗結果顯示, 當嵌入量為 MP3 檔案所能提供嵌入量的 0.001% 時, 此論文所提出的方法就可以辨識出來。

2. 提升卡方攻擊法(Chi-Square Attack)的偵測能力
第二個技術是透過雜湊函數(hash function) 整合樣本分群(sample category), 然後再使用原來的卡方攻擊法分析。本論文提到透過某種雜湊函數確實可以使卡方攻擊法偵測出儘含有 0.2 bpp 的彩色影像(true color image)。

3. 針對 Hide
Hide 是 IHW 2001 所提出來的隱藏軟體, 其使用的 LSB Matching 的技術可以抵抗卡方攻擊法的分析。這篇論文透過觀察每個色彩的臨色總數(the number of neighbor colors), 發現嵌有機密訊息的影像, 臨色總數明顯增加許多。

From StegoRN

From StegoRN

From StegoRN

Monday, October 27, 2008

An Advanced Least-Significant-Bit Embedding Scheme for Steganographic Encoding

Authors: Yeuan-Kuen Lee, Graeme Bell, Shih-Yu Huang, Ran-Zan Wang and Shyong Jian Shyu

The 3rd Pacific-Rim Symposium on Image and Video Technology ( PSIVT 2009 )
Tokyo, Japan, January 13th - 16th, 2009
Official Website: http://psivt2009.nii.ac.jp/

Abstract

The advantages of Least-Significant-Bit (LSB) steganographic data embedding are that it is simple to understand, easy to implement, and it results in stego-images that contain hidden data yet appear to be of high visual fidelity. However, it can be shown that under certain conditions, LSB embedding is not secure at all. The fatal drawback of LSB embedding is the existence of detectable artifacts in the form of pairs of values (PoVs). The goals of this paper are to present a theoretic analysis of PoVs and to propose an advanced LSB embedding scheme that possesses the advantages of LSB embedding suggested above, but which also provides an additional level of communication security. The proposed scheme breaks the regular pattern of PoVs in the histogram domain, increasing the difficulty of steganalysis and thereby raising the level of security. The experimental results show that both the Chi-square index and RS index are less than 0.1, i.e., the hidden message is undetectable by the well-known Chi-square and RS steganalysis attacks.



這篇就是我們即將在 PSIVT 2009 發表的論文, 其實內容就是 95 學年度 國科會計畫 的結案報告改寫成論文發表。

國科會計畫編號: NSC 95-2221-E-130-014
最低位元嵌入法的修正模型與安全分析
A Modified LSB Embedding Scheme of Steganography and its Security Analysis
執行期間: 2006/08/01 ~ 2007/10/31
計劃書中文摘要下載:

Comments of Reviewer 1

SUMMARY AND CONTRIBUTIONS: This paper proposed an improved LSB steganographic method. The contribution is that both the Chi-square and RS steganalysis attacks can be resisted.
OVERALL EVALUATION: 7 (strong accept)

COMMENTS ON OVERALL EVALUATION: LSB-basd embedding methods seem to be impractical because an image is usually compressed before transmission.
ORIGINALITY: 3 (moderately original)
REFERENCE TO PRIOR WORK: 4 (excellent reference to prior work)
RELEVANCE/IMPORTANCE TO PSIVT: 3 (of sufficient interest)
CLARITY OF PRESENTATION: 3 (is clear enough)
TECHNICAL CORRECTNESS: 3 (probably correct)
EXPERIMENTAL EVALUATION: 4 (sufficient evaluation or theoretical paper)

Comments of Reviewer 2

SUMMARY AND CONTRIBUTIONS: The author(s) of this paper touch(es) on the simplicity of least significant bit (LSB) embedding and highlight(s) its weakness in the form of pairs of values (PoVs) as steganographic encoding artifacts. A new technique using pseudorandom number generator (PRNG) is employed in an algorithm to modify the method of embedding the secret message bits in the LSB of the target image. This method breaks the correlation between the frequency of these pairs of values commonly caused by LSB embedding. The result of the paper is promising and shows resistance to both the Chi-square and RS steganalysis attacks.

OVERALL EVALUATION:
7 (strong accept)

COMMENTS ON OVERALL EVALUATION: This paper establishes a good model for analysing the effect of PoVs and ventures from there to find a method to avoid the pitfalls of LSB embedding by captilising on the property of pseudorandom number generator. The proposed algorithm effectively prevents successful attacks from both Chi-square and RS steganalysis.

ORIGINALITY:
4 (very original)
REFERENCE TO PRIOR WORK: 3 (references adequate)
RELEVANCE/IMPORTANCE TO PSIVT: 3 (of sufficient interest)
CLARITY OF PRESENTATION: 4 (easy to read)
TECHNICAL CORRECTNESS: 3 (probably correct)
EXPERIMENTAL EVALUATION: 4 (sufficient evaluation or theoretical paper)

Comments of Reviewer 3

SUMMARY AND CONTRIBUTIONS: The Least-significant-bit embedding method is well-known technique in data embedding field, however, this paper proposes an advanced LSB embedding method to improve the lack of traditional LSB embedded method. And the experimental results are enough to verify the goals. The paper is esay to read and understand.

OVERALL EVALUATION:
6 (accept)

COMMENTS ON OVERALL EVALUATION: This system is valuable to data embeddubg scheme.

ORIGINALITY: 3 (moderately original)
REFERENCE TO PRIOR WORK: 3 (excellent reference to prior work)
RELEVANCE/IMPORTANCE TO PSIVT: 3 (of sufficient interest)
CLARITY OF PRESENTATION: 4 (references adequate)
TECHNICAL CORRECTNESS: 3 (probably correct)
EXPERIMENTAL EVALUATION: 4 (sufficient evaluation or theoretical paper)

Comments of Reviewer 4

SUMMARY AND CONTRIBUTIONS: The paper describes a known weakness of LSB embedding, and proposes two counter measures.

OVERALL EVALUATION:
4 (borderline)

COMMENTS ON OVERALL EVALUATION:
The main idea is simple and interesting. However, there are many methods proposed in the past few years and I'm not sure whether the method described here have been studied before. Furthermore, there is a problem with the boundary cases, pixels with value 0 and 255. Using the proposed method will create artifacts that look like salt and pepper noise.

ORIGINALITY: 2 (minor originality)
REFERENCE TO PRIOR WORK: 3 (refer)
RELEVANCE/IMPORTANCE TO PSIVT: 3 (of sufficient interest)
CLARITY OF PRESENTATION: 3 (is clear enough)
TECHNICAL CORRECTNESS: 3 (probably correct)
EXPERIMENTAL EVALUATION: 4 (sufficient evaluation or theoretical paper)

PSIVT 2009 received 247 submissions, and accepted 40 papers for oral presentations and 58 for poster presentations. The acceptance rate is slightly less than 40%.
 

Tuesday, September 23, 2008

Feature-Based Steganalysis for JPEG Images and Its Implications for Future Design of Steganographic Schemes


Author: Jessica Fridrich

Information Hiding Workshop 2004
Toronto, Ontario, Canada
23 - 25, May, 2004

Lecture Notes in Computer Science, Vol. 3200



Abstract

In this paper, we introduce a new feature-based steganalytic method for JPEG images and use it as a benchmark for comparing JPEG steganographic algorithms and evaluating their embedding mechanisms. The detection method is a linear classifier trained on feature vectors corresponding to cover and stego images. In contrast to previous blind approaches, the features are calculated as an L1 norm of the difference between a specific macroscopic functional calculated from the stego image and the same functional obtained from a decompressed, cropped, and recompressed stego image. The functionals are built from marginal and joint statistics of DCT coefficients. Because the features are calculated directly from DCT coefficients, conclusions can be drawn about the impact of embedding modifications on detectability. Three different steganographic paradigms are tested and compared. Experimental results reveal new facts about current steganographic methods for JPEGs and new design principles for more secure JPEG steganography.

Sunday, August 31, 2008

An Implementation of Key-Based Digital Signal Steganography

Author: Toby Sharp

Information Hiding Workshop 2001
Pittsburgh, PA, USA, April 25–27, 2001

Spring LNCS 2137, pp. 13-26, 2001

Abstract
A real-life requirement motivated this case study of secure covert communication. An independently researched process is described in detail with an emphasis on implementation issues regarding digital images. A scheme using stego keys to create pseudorandom sample sequences is developed. Issues relating to using digital signals for steganography are explored. The terms modified remainder and unmodified remainder are defined. Possible attacks are considered in detail from passive wardens and methods of defeating such attacks are suggested. Software implementing the new ideas is introduced, which has been successfully developed, deployed and used for several years without detection.

在談論這篇論文所使用的嵌入技術之前, 必須要先弄清楚 Pseudo-Random Sequence Generator 的運作方式。作者運用一個 Linear Feedback Shift Register (LFSR) 及使用傳訊者(sender) 和接收者(receiver) 所共同擁有的 stego-key 來建立與初始化這個 LFSR, 產生一連串的擬隨機序列。

使用 LFSR 所產生的擬隨機序列, 就可以決定要將訊息嵌入到 cover signal 的哪些 samples 之中, 作者稱造訪次序(visiting order) 為 sample sequence。假設 cover signal 一共有 P 個 samples, 令 t = log2(P), 因此我們就可以用 LFSR 所產生的 t 個位元來代表一個數字 k , 所以, 下一個要造訪的就是第 k 個 sample。作者在論文中還提到: 如果已經嵌入 x 位元, 剩下 (P-x) samples, 因此只要使用 t' = log2(P-x) 個擬隨機位元就可以決定下一個要造訪的 sample 了。

由上面的討論我們知道 sample sequence 是和 stego-key 值相關的, stego-key 不同, 所造訪的次序就不相同。除了和 stego-key 相關, 為了讓 sample sequence 也與 cover signal 及 embedded data相關, 作者還將所造訪的 sample value 的 Most significant Bit (MSB) 及 Least Significant Bit (LSB) 分別取出, 做為下一個擬隨機次序的前兩個位元。 而 MSB 所代表的就是 sample value, LSB 所代表的就是 embedded data。

這篇論文最重要的核心嵌入技術描述在 p. 15 的最後一段:
When a sample is visited, its data value is modified so that its least significant bit (LSB) is equal to the next bit of the secret data. The LSBs are not simply replaced; instead the whole sample value is incremented or decremented if the LSBs differ. This avoids the "pairs of values" statistical attack introduced in [9]. At each sample, one operation bit is taken from the generator and, if required, is used to determine whether to increment or decrement the sample value.
很可惜地, 論文中提到的隱藏工具 Hide, 網路上已經找不到下載點了。A. Westfeld 在 IHW 2002 年所提出的論文 "Detecting Low Embedding Rates" 中有一張執行的初始畫面(Fig. 6),

 
在本篇論文的 Fig.4 則是展示使用者介面。 
 
 

Sunday, March 30, 2008

Defending Against Statistical Steganalysis (part 1)

N. Provos 在 10th USENIX Security Symposium, August 13-17, 2001 發表了 "Defending Against Statistical Steganalysis" 這篇論文, 內容就是闡述 OutGuess 0.2 這個隱藏軟體是如何運作的。

本篇文章所要討論的主軸是論文中有關 OutGuess 核心技術的部分 - Section 3 。

Section 3 Embedding Process

作者將 embedding Process 切割成兩個獨立的步驟:

1. Identification of redundant bits.
Redundant bits can be modified without detectably degrading the cover medium.
作者指出所謂的冗餘位元(redundant bits) 就是經過修改也不會在掩護媒體中產生會被偵測出來的品質下降現象(degrading)。

2. The selection of bits
in which the hidden information should be placed.

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

Section 3.1 Identification of Redundant Bits

作者闡述了一個觀念, 用來嵌入機密訊息的冗餘位元通常和影像的儲存格式相關。整個嵌入程序自然也和輸出格式有關。通常壓縮程序也包含其中。要最小化對掩護媒體(cover-medium)的修改(modification), 必須具備有關冗餘位元的相關知識才做得到, 作者提到 OutGuess 實作了整個輸出影像的運算。
For example, the OutGuess system performs all operations involved in created the output object and saves the redundant bits encountered. For the JPEG image format, this might be the LSB of the discrete cosine transform coefficients.

Section 3.2 Selection of Bits

探討如何從影像的 redundant bits 中選取一些 bits 來嵌入機密訊息。OutGuess 是使用 RC4 串流加密器(stream cipher)對機密訊息加密, 同時也用 RC4 來建立一個 PRNG (pseudo-random number generator), 然後再將選定的 seed 餵進這個 PRNG 來選擇冗餘位元。

32 state bits = 16-bit seed + 16 bit integer
16-bit seed: 由於不同的 seeds 會選取不同的冗餘位元來作為嵌入機密訊息之用, 因此, 不同的 seeds 自然對原始影像造成的 change, 也會有所不同。當接收端(receiver)收到偽裝影像(stego-image)後, 必須知道當初所選定的 seed, 因此必須把這16-bit seed 也嵌入到掩護影像(cover-image) 之中。
16-bit integer: containing the length of the hidden message.

冗餘位元的選取方式是利用上述的 PRNG 來計算下一個 bit 的隨機距離(random offset) R i(x),

 b0 = 0,
 bi = bi-1 + Ri(x)  for i = 1, 2, ... , n

bi 表示第 i 個選取位元的位置, Ri(x) 表示與上個選取位元之間的隨機距離, 值介於 [1, x] 之間。x 為最大的間隔(interval), 這個值在每嵌入 8 個位元, 就會重新使用下列的公式重新計算, 目的就是讓所有的機密訊息可以分布到整個可以使用的位元中。

 interval = 2 * remaining redundant bits / remaining length of message.

用上述的方法來設定 interval, 會使得機密訊息的長度限制在 50% 嵌入空間之內。

Section 3.3 Beneficial Reseeding of the PRNG


談論如何靠著選擇不同的 seeds, 智慧地選擇不同的嵌入位置的子集合, 不但可以讓 changed bits 的總數降低, 而且使得嵌入行為較不容易被偵測出來 (Detectability is also used as a bios in the selection process.)。

由於掩護影像(cover-image)中的冗餘位元, 不是 1 就是 0, 加上要嵌入的資料先用 RC4 stream cipher 加密, 變成一串二元的隨機資料流(binary random stream), 將機密訊息嵌入到冗餘位元, 造成這些冗餘位元被改變的機率期望值為 0.5。因此, 統計學中的二元分布(binomial distribution)正好可以用來描述一般的 LSB 嵌入行為。

假設, 我們從冗餘位元之中, 將一個 seed 餵進 PRNG 選擇了 4430 個位元, 並將同樣長度的機密訊息嵌入其中, 便可以去計算此次嵌入動作一共改變了多少個 redundant bits。注意: 不同的 seed 餵進同一個 PRNG 將使得所選擇的嵌入位置不同。Figure 1 就是重複使用不同的 seeds 來統計這 4430 個redundant bits 被改變的總數, 累計其統計值所畫出來的結果。


Figure 1: Probability distribution of changed bits for different seeds compared to a binomial distribution with n=4430 and p=0.5.

不管是從 binomial distribution 公式推論, 或是從 Figure 1 中的實驗中, 我們都可以觀察到當我們選定一個 seed 時, changed bits 的個數是以 n/2 = 2215 的可能性(機率)最高, 不過, 還是存在一些 seeds 會使得 changed bits 的個數小於 2150。論文中是這樣討論的:
Picking a seed that represents the changed bits at the lower end of the binomial distribution allows us to reduce the number of bits that have to be changed; see Figure 1. It becomes harder to detect the modifications, as more of the hidden message is already naturally represented in the redundant bits.
除了降低修改之外, 可偵測性(detectability)也是 selection process 要考量的一個因素。
Detectability is also used as a bias in the selection process. The selector does not try to reduce only the number of changed bits but also the overall detectability. Whenever a bit has to be modified, its detectability will be added to a global bias. A higher accumulated bias reduces the likelihood that this specific embedding will be used.

Section 3.4 Choices with Coding Theory

作者在這邊提到 Coding Theory 的考量為使用 PRNG 去選擇冗餘位元就無可避免地選到
1. locked bits
2. bits with a high detectability
上述兩類冗餘位元是作者不想去更改的。因此, 作者想使用錯誤更正碼(error-correcting codes)來解決上述問題。

[n, k, d] coding 指的是長度為 k 位元的機密訊息(k-bit data block), 將被編碼成長度為 n 位元的編碼區塊(n-bit code block), 每個 code 之間的 Hamming distance 至少是 d, 假設 d = 2t + 1, 那麼這個編碼就具備了可以更正 t 個錯誤位元的能力。換句話說, n 個位元的編碼區塊之中, 如果發生 t 個位元的錯誤, 那麼使用解碼程序, 就可以偵測出哪 t 個位元發生錯誤, 進而更正回來, 因此原先的 k 位元的資料, 是可以完全解碼出來的。

將機密訊息用錯誤更正碼來編碼, 無疑也會增加要嵌入的長度。然而, 觀察整個嵌入過程獲知:
1. 有一半的資訊嵌入是不會改變到冗餘位元的 ( n / 2),
2. 可以有 t 個位元可以不用嵌入(更改冗餘位元)
因此, 假如
 ( n /2 ) - t = ( k / 2 )
成立, 那麼作者希望嵌入 n 位元的編碼區塊需要修改的位元數(上述式子的等號左邊)要和嵌入未經編碼的 k 位元的資料區塊需要更改的位元數(上述式子的等號右邊)相等。將上述式子通分得到 n -2t = k, 並將 d+1 = 2t 帶入可以得到
 d = n - k + 1,
剛好就是 MDS (maximum distance separable) code 的 Singleton bound。因此, 作者在這邊得到一個結論就是只要選擇 MDS codes, 就可以滿足上述作者期望的。

不幸地, 值得一提的(non-trivial)二元 MDS code 就只有重複碼(repetition code), 主要缺點就是編碼必須將資料重複 n 次, 因此, 重複碼僅使用在隱藏訊息很小的情況。

資料經過編碼後, 每個編碼區塊可以選擇 t 個位元不去修改冗餘位元。作者所使用的選擇策略是:
欲嵌入的位元與冗餘位元不同(conflict), 且冗餘位元先前已經被嵌入過資料, 被 locked bits 鎖住。

OutGuess 所使用的技術與 Ross J. Anderson and Fabien A. P. Petitcolas 發表在 Journal on Selected Areas in Communication, 16(4): 474-481, May, 1998 的論文 On the Limits of Steganography 中所建議的 parity encoding 相似。然而, 使用 error-correcting codes 的好處要比使用 parity encoding 多。透過選擇一種不是 MDS 的 code, 我們可以犧牲些許的嵌入容量(capacity) 而得到更高的安全性(security)。除此, 對照使用 parity encoding 必須 lock 住 n 個位元, 使用 error-correcting codes 則僅僅需要 lock 住 n-t 個位元。

Section 3.5 Plausible Deniability

為了嵌入機密訊息, 我們修改掩護媒體中的冗餘位元。這些冗餘位元可能存在一些我們沒有感知, 或是對手比我們了解的自然統計特質。假如嵌入程序改變了上述特質, 在這方面知識淵博的觀察者, 不用指出哪些特定位元被改變, 就可以推論出隱藏訊息是存在的。

偽裝媒體的創造者必須面對的是: 欲隱藏的通訊行為可能被揭露出來。然而, 我們假設觀察者僅僅可以確定的事實是掩護媒體被更改了。假如傳訊者嵌入多重訊息, 其中可以包含一份無害的訊息, 讓它和真正想要傳送的訊息(request)攪在一起, 然後宣稱沒有任何訊息隱藏在偽裝媒體之中, 偽裝媒體並沒有遭受破壞(沒有遭到修改, 換句話說就像原始掩護影像一樣, 沒有破壞原先存在的特質)。這就是所謂的似乎合理的可否認性(plausible deniability)。

  

實際上, 整個 Section 3 所描述的技術已經隱含地支援上述所提到的似乎合理的可否認性。可以隱藏不只一份的訊息, 使用 locked bits 來避免先嵌入的訊息被後嵌入的訊息覆蓋掉。即使是與嵌入訊息的大小相關, 不與先前 locked 住的冗餘位元重疊的可能性是很小的, 在這種情況下, 使用 error-correcting codes 則是可以增加選擇的彈性。

Section 3.6 Hidden Message Determines Cover

針對特定的隱藏訊息, 可以在不同的掩護媒體中, 選擇一個機密訊息對掩護媒體本身影響較小(with minimal modification)的掩護媒體, 來嵌入機密訊息。這和 Section 3.3 中有關 binomial distribution 的系列討論是差不多的。

Go to: Defending Against Statistical Steganalysis (part 2)

Go to: Defending Against Statistical Steganalysis (part 3)

Niels Provos, "Defending Against Statistical Steganalysis,"10th USENIX Security Symposium, August 13-17, 2001.
 

Monday, November 05, 2007

關於 JPHide 的點點滴滴 (一) : N. Provos

Niels Provos 在 "Detecting Steganographic Content on the Internet" 這篇論文的 Section 5.2 整節都在談論 JPHide 這個隱藏軟體。內文如下:
 JPHide is a steganographic system by Allan Latham. There are two versions: 0.3 and 0.5. Version 0.5 supports additional compression of the hidden message. As a result, they use slightly different headers to store embedding information. Before the content is embedded, it is Blowfish encrypted with a usersupplied pass phrase.

Because the DCT coefficients are not selected continuously from the beginning, JPHide is more difficult to detect.

The program uses a fixed table that defines classes of DCT coefficients to determine in which order to modify the coefficients. All coefficients in the current class are used first to hide information before the next class is chosen. As a result, coefficients are selected in such a way that they those likely to be numerically high are used first.

One artifact of the implementation is that the information hiding continues in the current coefficient class even after the complete message has been embedded. The first class in the table are the DC coefficients of color component zero. An image with a resolution of 600 * 480 has approximately five thousand DC coefficients. Even if the message is only eight bits long, JPHide modifies all five thousand coefficients in such an image.
這邊提到 JPHide 有一個特殊方式來定義嵌入次序, JPHide 使用一個固定的表格來將 DCT 係數分成不同的 classes, 整張影像相同 class 中的 DCT 係數會依序拿來嵌入機密訊息, 直到此 class 的係數用完了, 才會動用到下一個 class 的 DCT 係數。接著, 相同 class 的係數, 數值較大者也會優先拿來嵌入機密訊息。個人覺得這樣做是有道理的, 因為嵌入影響對較大值的係數來說, 比例相對較小, 因此優先使用。

另外一點令人匪宜所思的是: 即使所有的機密訊息已經嵌入完畢了, JPHide 依然會繼續修改目前這個 class 的所有 DCT 係數。論文中提到一個例子, 第一個 class 就是 DC 係數, 假設一張 600*480的影像, 就會有 (600/8)*(480/8)= 75*60 = 4500 個 DC 係數, 那麼即使機密訊息只有 8 bits, JPHide 依然會去修改這所有的 DCT 係數。
 A pseudo-random number generator determines if coefficients are skipped. The probability of skipping bits depends on the length of the hidden message and how many bits have been embedded already.

JPHide modifies not only the least-significant bits of the DCT coefficients, it can also switch to a mode where the second-least-significant bits are modified.
如其他軟體一般, JPHide 用一個 PRNG 來決定哪些係數該跳過不嵌入機密訊息。然而, 較特殊的作法是跳過的機率是和 1) 機密訊息的長度, 2) 已經嵌入多少資料量。這代表每嵌入 1 個位元, 機率值就隨時進行更新, 用以控制所有的訊息可以完全順利嵌入。另外, JPHide 也會將機密訊息嵌入到次低位元中。

From StegoRN
Figure 6: JPHide has a signature similar to JSteg. The major difference is the order in which the DCT coefficients are modified.
Figure 6 shows the probability of embedding for an image containing information hidden with JPHide. Because JPHide can skip DCT coefficients, the probability is not as high as with JSteg.
Figure 6 是使用 Chi-Square Attack 來針對 JPHide stego-images 分析, 橫軸是將影像平分成 100 等份, 每一等份都用 Chi-Square Attack 計算嵌入機率 p。由於 JPHide 會跳過部份的 DCT 係數不藏, 因此所得到的 P 值並不像 Jsteg 那麼高。


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

Sunday, November 04, 2007

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


這張圖出現在 Niels Provos & Peter Honeyman 的 2002年 ISOC NDSS'02 研討會論文 "Detecting Steganographic Content on the Internet" 中 ( Figure 4, P. 4 )。原文是這樣描述的:
 Figure 4 shows the result of the X²-test for an image that contains information hidden with JSteg. In this case, the first chapter of “The Hunting of the Snark” has been bzip2 compressed prior to embedding. The low probability at the beginning of the graph is caused by the dictionary at the beginning of a bzip2 compressed file. The dictionary does not look like encrypted data and is not detected by the test.
這邊提到 bzip2 這個壓縮軟體, 作者先將機密訊息 “The Hunting of the Snark” 的 第一章內容 用 bzip2 壓縮至 15 KB, 然後用 Jsteg 將其藏到影像中。由於 bzip2 壓縮檔的檔頭存放著解壓縮時需要用到的 dictionary, 因此在 Figure 4 的最左端 - 約 5% 的影像 - 用 X²-test 所得到的 p 值並不像 5% ~ 25% 區間的 p = 100% 那麼高。


Figure 5: Using JSteg-Shell with RC4 encryption causes the probability of embedding to be high for all embedded data.

這張圖則是針對 Jsteg-Shell stego-image 分析所得到的結果。原文描述如下:
 JSteg-Shell is a Windows user interface to JSteg developed by Korejwa. It supports encryption and compression of the content before embedding the data with JSteg. JSteg-Shell uses the RC4 stream cipher for encryption. However, the RC4 key space is restricted to 40 bits.

 When encryption is being employed, we expect the probability of embedding to be high at the beginning of the image. There should be no exception.

 An example of JSteg-Shell is shown in Figure 5. Just observing the graph allows us to determine the size of the embedded message. Later we show how this can help to improve the automatic detection of steganographic content.
JSteg-Shell 在隱藏前, 針對機密訊息提供壓縮和加密的功能。因此, 沒有意外地, Figure 5 從一開始就有很高的 p 值。觀察上圖, 我們很容易就可獲知嵌入的資料量, 這項資訊可以用來改善自動偵測隱藏的訊息。

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

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









(未完待續)

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 的學術搜尋上查到的數據 ), 顯示了此篇論文的重要性。