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。

影像法是用來處理文件列印的情況, 分成 softcopyhardcopy 兩種, 前者指的是將文件輸出成列印的檔案, 如 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.

No comments:

Post a Comment